자동차 경주
- 테스트하기 어려운 구조를 테스트하기
- 메서드로 구체적인 값을 받는 대신 인터페이스를 주입받아 해결하기
- 테스트에서는 람다를 활용하여 원하는 값으로 주입 가능
- 네이밍
- 너무 함축 또는 과한 정보를 담지 않도록 지어야함
- 자료형에 의존하면 안됨
로또
- null 값 반환 금지
NullPointerException
을 발생시킬 위험이 존재. 새로운 값을 반환하거나 예외를 반환
- 생성자에 코드를 넣지 말자
블랙잭
- 불변 객체의 중요성
- 많은 장점 중 미션을 진행하면서 가장 와닿았던 장점은 부수효과를 피해 오류를 최소화 할 수 있다는 것과 Thread-Safe 함
- 상속보다는 조합을 사용
- 상속은 클래스간 의존성 관계를 갖기 때문에 변화에 유연하게 대처하기 어려움
- 네이밍
체스
- Controller와 Service의 역할 분리
- Controller: Client에게 받은 요청을 어떤 service에게 보낼 지 결정과 결과 반환
- Service: 비즈니스 로직을 수행
- try-with-resource
- Java 7부터 제공하며 자동으로
close
를 호출하여 자원을 해제하는 기능 제공
- 장점) 기존 try-catch문에서 finally를 사용하여 close를 하던 일을 잊을 일이 없다. 디버깅이 용이하다. 가독성이 좋다.
- bulk insert
- 한번에 다량의 데이터를 DB에 저장하려고 할 때 유용하다.