도메인 클래스 생성 시 도메인 규칙 검증 신규 프로젝트를 진행 하면서 도메인 객체 생성 시 생성 규칙이 필요함을 느꼈고, javax.validation api를 구현한 hibernate-validator를 사용하여 생성자에서 규칙을 검증하기로 했다. javax.validator.Validator 클래스를 수동으로 불러와 이용하기로 결정 검색 결과 간단히 이런 추상 클래스를 만들었고 public abstract class SelfValidator { private Validator validator; public SelfValidator() { ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); validator = factory.g..
구분하기가 쉽지 않다. 정리해보자. POJO 이상적으로, POJO는 자바 언어 사양 외에 어떠한 제한에도 묶이지 않은 자바 오브젝트라고 할 수 있다. 가독성과 재사용성을 향상시킨다. 아래와 같은 예는 pojo가 아니다. 미리 정의된 클래스의 확장. 예: public class Foo extends javax.servlet.http.HttpServlet { ... 미리 정의된 인터페이스의 구현. 예: public class Bar implements javax.ejb.EntityBean { ... 미리 정의된 애너테이션을 포함. 예: @javax.persistence.Entity public class Baz { ... 그러나 기술적 어려움이나 기타 이유로 인해 POJO 호환으로 기술하고 있는 수많은 소프..
예전에 Immutable / Mutable 클래스에 대해서 들었을 땐 그냥 '아 그렇구나' 하고 넘어갔다. 둘 사이의 차이에 대해 깊게 생각해 본 적 없기 때문에 클래스를 만들 때 기본적으로 @Gettet, @Setter 어노테이션을 붙이고 시작을 했었다. 그러다 스터디 에서 리뷰 중 DTO 클래스는 Immutable한게 좋다는 피드백을 받았고, 최근 제출한 과제에서도 과도한 Setter는 좋지 않다는 피드백을 받아 Effective Java와 인터넷 에서 Immutable 클래스에 대해 좀 찾아보았다. Immutable 클래스란? Immutable 클래스는 객체를 생성 후 수정할 수 없는 클래스다. Immutable 클래스는 어떤 특징을 가지고 있고 어떻게 하면 만들 수 있는 지, 어디에..
Enum에 관하여 Enum... 이란 것을 알고 있긴 했지만 잘 사용하진 않았는데 최근 회사에서 domain 설계를 할 때 enum을 사용할 일이 생겨 공부한 내용을 정리한다. 상수를 표현할 때 사용한 방법 지금 까지는 상수를 표현할 때 private static final int MY_INT_CONSTANTS = 1; private static final String MY_STRING_CONSTANTS = "my string constants"; 이렇게 private static final ~ 을 사용하고 필드 이름을 대문자, 언더바를 써서 정의를 했었다. Enum 이란 것을 알고 있긴 했지만 잘 사용하진 않았었고, 회사 코드도 모두 이런 식으로 구현되어있어서 생각 없이 이렇게 사용하고 있었다. 이 방..
- Total
- Today
- Yesterday