생성자에 매개변수가 많다면 빌더를 고려하라

Effective Java 3/E 2장 생성자에 매개변수가 많다면 빌더를 고려하라 정적 팩터리와 생성자에는 똑같은 제약이 하나 있다. 선택적 매개변수가 많을때 대응이 어렵다. 점층적 생성자 패턴도 쓸 수는 있지만 매개변수가 많아지면 클라이언트 코드를 작성하거나 읽기 어려워 진다. public class Hello { private String str; private String str2; private String str3; public Hello(String str) { System.out.println("Hello str" + str); } public Hello(String str, String str2) { System....

June 20, 2019

생성자 대신 정적 팩토리 메서드를 고려하라

Effective Java 3/E 2장 생성자 대신 정적 팩토리 메서드를 고려하라 인스턴스를 얻는전통적 수단은 Public 생성자이다. 클래스는 별도로 정적 팩터리 메서드를 제공 할 수 있다. (클래스의 인스턴스를 반환하는 단순한 정적 메서드) 정적 팩터리 메서드와 팩토리 패턴은 같지 않다. 정적 팩터리 메서드가 생성자보다 좋은점 5가지 이름을 가질 수 없다. 어떤게 더 의미를 잘 설명할 수 있는 가? BigInteger(int, int, Random) BigInteger....

June 19, 2019

JUnit4 assert method 예시

JUnit4 assert method 예시 assertXxx Method 사용 목적 assertArrayEquals("message", A, B) 배열 A와 B가 일치함을 확인한다. assertEquals("message", A, B) 객체 A와 B가 일치함을 확인한다. B를 파라미터로 A의 equals() 메서드를 호출한다(A.equals(B)). assertSame("message", A, B) 객체 A와 B가 같은 객체임을 확인한다. assertEquals 메서드는 두 객체의 값이 같은가를 검사하는데 반해(equals 메서드 사용), assertSame 메서드는 두객체가 동일한, 즉 하나의 객체인가를 검사한다(== 연산자 사용) assertTrue("message", A) 조건 A가 참(true)임을 확인한다....

June 17, 2019

golang go-pg 사용하기

golang에서 postgresql orm go-pg 사용하기 처음 글에서는 go-pg를 사용한 connection과 close에 대해 적어본다 예제 샘플을 따라하면 잘 될것이다. 나는 postgresql을 사용하기 위함이 아니라 cockroach db를 go에서 사용하기 위해 go-pg를 선택했다. go-pg에 대한 링크를 걸어 둡니다. Github / Document 위에 링크를 첨부해 두었다 우선 go-pg에 접속하기 위해서는 다음과 같은 세팅을 잡는다. database.go func Connect() *pg.DB { db := pg.Connect(&pg.Options{ User: "user", Database: "database", Addr: "addr:port" }) if db == nil { log....

March 23, 2019

자바 XML TO JSON 변환 하기

XML TO JSON (AND CUSTOM OBJECT) xml 데이터를 json으로 변환하기 위한 작업이 필요하다. 그러기 위해서 spring framework에서 많이 사용하는 jackson(jackson-dataformat-xml)을 사용해 변환을 해보려 했다. 하지만 jackson 라이브러리를 사용해 xml을 json으로 변환할 때 xml의 multiple child 값들이 다 사라지면서 단일 값이 남게 된다. 그래서 찾아봤다. 똑같은 현상을 가지고 있는 사람을 발견했다. 스택오버플로우 거기에 있는 답변을 참고해보자. org.json 라이브러리를 추가시킨다. org.json 라이브러리와 jackson 라이브러리를 섞어 사용한다. 예제 샘플이다...

March 22, 2019