테스트 코드
- assertJ를 활용하면 테스트 코드의 가독성이 좋아진다!
- static import로 정적 메서드를 간편하게 호출할 수 있다.
- private도 최대한 테스트 하려고 해야한다.
계산기 과제 피드백
- 메서드 이름에 And가 들어가면 메서드를 더 분리할 수 있는지 확인해보자
- pattern을 쓸 때는 public static final 메소드로 써놓고 matches를 사용하자.
- 자바스럽게 짤 수 있게 하자.
- magic number 보다는 상수나 enum을 활용하자.
- ex) 계산기의 메뉴 선택 숫자
- Optinal은 주로 객체의 null 방지를 위해서 사용된다.
- 객체 분리
- 유틸성 클래스로 분리해도 클래스 분리가 일어난 것이다.
- 유틸성 클래스의 경우 의존관계에서 좀 자유롭게 봐도 무방하다.
- String vs StringBuilder vs StringBuffer
데이터베이스
- Production 데이터베이스는 속도가 중요하다.
- 데이터 분석을 위한 데이터베이스 → 데이터 웨어하우스
- 얼마나 많은 양을 처리할 수 있는지가 중요하다
- 서비스에 꼭 필요한 데이터만 Production 데이터베이스에서 활용하자.
- Star schema와 Denormalized schema
- star schema는 데이터의 중복이 없기 때문에 저장 공간을 효율적으로 활용할 수 있다.
- star schema가 무조건 좋은 것이 아니다. join 과정에서 많은 시간을 소비하기 때문이다.
- Trigger를 활용해서 수정되기 직전의 레코드를 다른 테이블에 백업해 놓을 수 있다.
이펙티브 자바
- private 생성자 사용하기 (#4 인스턴스화를 막으려거든 private 생성자를 사용하라)
- lombok → @NoArgsConstructor(access = AccessLevel.PRIVATE)