본문 바로가기

태그를 입력해 주세요.5

상속 구조의 모델 객체에서 Lombok의 @Builder, @Delegate 사용기 아래 글은 Lombok 1.16.16 기반에서 작성되었다. Lombok에서 @Builder를 사용하다 보니 상속 구조에서 불필요한 코드를 작성해야 하는 경우가 있었다. 예를 들어 아래와 같이 두 모델 객체가 있다고 하자. @Data @AllArgsConstructor public class User { protected String id; protected String name; } @Data public class AdminUser extends User { private String roleId; private String roleName; @Builder public AdminUser(String id, String name, String roleId, String roleName) { super(.. 2017. 4. 21.
Lombok @Builder 사용시 기본값 지정하기 Lombok이 무엇인지 간단히 살펴보고 넘어가자. 어떻게 프로젝트에 적용하는지는 언급하지 않는다. 검색을 통해서 알아보자. 가장 기본적인 기능으로 Lombok은 getter/setter method를 만들어 준다. 예를 들어 아래와 같이 User라는 모델 객체가 있다고 가정하자. public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } @.. 2017. 4. 12.
[자바8 람다의 힘] 4장 람다 표현식을 이용한 설계 이 글은 "자바 8 람다의 힘" 책을 정리한 글입니다. Chapter 4. 람다 표현식을 이용한 설계 앞에서 다른 내용들만 봐도 람다를 이용하여 코드를 좀 더 간결하고 읽기 쉽게 작성할 수 있다는 것을 알았다. 이 장에서는 람다 표현식을 사용하여 여러가지 패턴이나 설계들을 구현하는 방법에 대해서 알아보자. 1. 전략패턴(Strategy Pattern) 클래스를 생성하는 이유 중 하나는 코드를 재사용하기 위함이다. 좋은 의도이긴 하나 항상 그런 것은 아니다. 자산의 총합을 구하는 예제를 통해 클래스 내의 코드 재사용성을 향상시켜 보자. 먼저 Asset 클래스를 생성한다. public class Asset { public enum AssetType { BOND, STOCK }; private final As.. 2016. 2. 10.
오라클 JDBC Driver 11.2.0.4 Release 오라클 DB가 JDBC 버전을 11.2.0.3 으로 Upgrade 한 뒤, Connection을 release하지 못하고 lock이 걸리는 문제가 발생했다. 이로 인해 순간적으로 connection reset으로 DB connection 부족현상을 격으면서 CPU 등이 100%로 was서버가 hang이 걸렸다. 원인을 밝혀내지 못해 JDBC 버전을 10.X 버전으로 롤백해서 임시적으로 해결했었는데, 11.2.0.4 버전이 release되어 변경사항을 확인해보니, 버그였던 것 같다. Oracle JDBC Drivers 11.2.0.4 Readme =================================== Base Readme (11.2.0.1) @ http://download.oracle.com/ot.. 2015. 3. 18.