본문 바로가기

토비의 스프링 정리

토비의 스프링 - 3.7 3장 정리

3.7.1 정리

  1. JDBC와 같은 예외가 발생할 가능성이 있으며 리소스 반환이 필요한 코드는 try/catch/finally 블록으로 관리
  2. 일정한 작업 흐름이 반복되면서 그중 일부만 바뀌는 코드가 존재한다면 전략패턴 적용. 바뀌지 않는 부분은 컨텍스트로, 바뀌는 부분은 전략으로 만들고 인터페이스를 통해 유연하게 전략을 변경할 수 있도록 구성
  3. 인터페이스를 상속한 자바 클래스가 많아진다면, 클라이언트 메소드에서 직접 전략을 정의 및 제공
  4. 익명 내부 클래스를 이용해 전략 오브젝트를 구현하면 코드가 간결해짐
  5. 컨텍스트가 하나 이상의 클라이언트 오브젝트 에서 사용되면 클래스로 분리 해서 여러 클라이언트가 사용할 수 있게 함
  6. 컨텍스트는 빈으로 등록해서 DI를 받거나, 직접 생성해서(new) 수동 DI를 하면 됨
  7. 단일 전략 메소드를 가지고, 익명 내부 클래스를 사용하는 패턴은 템플릿/콜백 패턴이라 한다.
  8. 콜백 코드에서 일정 패턴이 반복되면 콜백을 템플릿에 넣고 재활용
  9. 템플릿과 콜백의 타입이 다양할 수 있으므로 제네릭스를 이용
  10. 스프링은 JDBC를 위한 JdbcTemplate를 기반으로 하는 다양한 템플릿과 콜백을 제공함
  11. 템플릿은 한번에 하나 이상의 콜백을 사용할 수 있고, 하나의 콜백을 여러 번 호출 가능
  12. 템플릿/콜백을 설계할 때 템플릿과 콜백 사이에 주고받는 정보에 관심을 둬야함