일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- Pitest
- 코틀린 노트북
- 개인블로그 hugo
- 객체지향
- 코틀린 out
- output stream
- resizer 구현
- 코틀린
- Mutation testing
- JPA
- change refresh rate
- MySQL
- image resizer with go
- Java
- 코틀린 in
- InnoDB
- cli 만들기
- IntelliJ
- resize image with go
- 돌연변이 테스팅
- standard input
- 의존성역전원칙
- 공짜블로그
- kotlin
- 자바
- standard output
- Convariance
- hugo 로 블로그
- ruby
- Test
- Today
- Total
목록Java (19)
Rlog
발단 책 Effective testing 을 보다가 돌연변이 테스트(Mutation testing) 이라는 키워드를 발견했다. 돌연변이 테스트라는 키워드를 발견한 후 키워드가 궁금해서 찾아보게 되었고, 바이트 코드를 조작하여 기존 테스트 케이스들로 인해 "죽은 돌연변이" 들 혹은 "살아남은 돌연변이들", "실행조차 안된 돌연변이" 들 등의 수치들이 있었다. 이 모든 수치들을 보면서 이 수치가 무엇을 의미하는가에 대한 궁금함이 생겼고, 그렇다면 이 돌연변이들의 생사 지표가 어떻게 프로덕션 코드의 퀄리티를 측정할 수 있지? 라는 궁극적인 의문이 생겼다. 개념 기본적으로 Mutation testing 이 동작하는 방식을 설명하자면 기본적으로 바이트 코드를 조작하는 몇가지 동작(Operation) 들이 존재한다..
Java 에서 Collections API 를 통해서 List, Map, Set 등등 의 자료구조를 쉽게 사용할 수 있다. 종종 해당 Collections 에 있는 Data 를 정렬해야 할일이 있는데 어떻게 정렬되는지 한번 알아보도록 하자 Comparable Oracle 문서에 나와있는 정의는 아래와 같다. This ordering is referred to as the class's natural ordering, and the class's compareTo method is referred to as its natural comparison method. 간략하게 이야기 하면 객체의 자연적인 순서(숫자로 치면 1, 2, 3 ... 과 같은) 를 참조하여 정렬한다고 생각하면 될 것 같다. 더 나와 있..
Java GC 정리 서론 Lazily Initialization 이 왜 Memory 상에서 유리한지? 이론적으로 설명하기는 쉽지만 실제로 이를 Monitoring 하는 도구로 수치를 보여주고, 이를 설명하기 위해서는 GC 를 다시 재 정리 할 필요가 있다고 느꼈다. 그래서 GC 를 재 정리 하려고 한다. Garbage Collection 이란? 일단 Garbage Collector 에 대해 알기 전에 Garbage Collection 에 대해 조금 알아보자. Garbage Collection 이란 runtime 에 사용하지 않는 객체의 메모리를 회수해 오는 것을 뜻한다. 보통 C 와 같이 Memory 를 managing 하는 언어에서는 이를 free() 와 같은 키워드를 이용하여 회수한다. 따라서 C 언..
Why we should use interrupt method in java Why we should check thread was interrupted in multi-thread programming? For Example, Can you expected result to this code? When execute code, Thread start sleeping for 10000000 mils. And Main Thread is blocking by Other Thread. The application will not stop. So, we should kill sleeping Thread. In Java, we have two method to kill thread. call Interrupted..
ByteArrayStream ** ByteArrayInputStream / ByteArrayOutputStream ** 은 메모리에 데이터를 입출력하는데 이용하는 스트림이다. 예시코드 public class ByteArrayInputAndOutputStreamExample { public static void main(String[] args) { byte[] inSrc = {0,1,2,3,4,5,6}; byte[] outSrc = null; ByteArrayInputStream inputStream = new ByteArrayInputStream(inSrc); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); int data; /** ..
회사 코드를 작성하다가 DB 에 Json 파일을 업로드 하던 중에 자꾸 'isXXX' 로 적어둔 함수를 Jackson 라이브러리에서 Property 로 만드려고 하는 현상을 목격하였다. 이게 도대체 왜 그런거지? 라는 생각이 들었는데, 기본적으로 get / set / is 의 경우에는 해당 필드가 어떤 값을 나타내는지에 대한 함수라고 생각해서 Jackson 라이브러리가 이렇게 만드는 건가? 라는 생각이 들었다. 하지만 그게 편하다고 보통의 오픈소스 라이브러리에서 그렇게 만들지는 않으므로 무언가 따르는 규칙이 있을거라고 생각했다. 사실 저 위의 문구만 봐도 감이오는 사람이 있을텐데. 바로 자바 빈 규약 (Java Bean notation) 이다. 예전에 한번 본적이 있었는데 한글 블로그에는 대다수가 그렇게..
최근에 영어 공부도 할겸 StackOverflow 활동을 이틀에 하나정도는 답변을 다는 식으로 활동해보려고 한다. 일단 질문은 아래내용이다. https://stackoverflow.com/questions/70973089/using-super-in-child-constructor Is it unnecessary to put super() in constructor? Isn't this one automatically put by the compiler if I don't put it in a subclass's constructor? That means I don't even need to care about it? In some articles they put it out. And if I've got..
코드를 작성하다 보면 포맷팅의 일관성이 무너지고는 합니다. 그래서 JavaScript 에서는 Prettier 를 통해서 Indent 나 Tab Size 를 맞추는데요. Intellij 에서는 Java 에서 자동 포맷팅을 편하게 이용하는 방법이 있습니다. 일단 Preference(설정) - Plugin 에서 Save Actions 를 설치해줍니다. 일단 이 플러그인은 간단하게 설명해서 저장 키 (cmd + s 또는 ctrl + s ) 키를 눌렀을때 특정 액션을 트리거 해주는 플러그인 입니다. 우리는 이 트리거에 저장키를 누르면 코드를 다시 재 배열 해주는 기능을 이용할 것입니다. 만약 설치가 된다면 Intellij 를 다시 재시작 해주시길 바랍니다. 이제 저장했을때 코드를 재배열해주는 기능을 장착하기 위해..