3장 템플릿 개방 폐쇄 원칙: 확장에는 자유롭게 열려 있고 변경에는 굳게 닫혀있다. 템플릿 : 바뀌는 성질이 다른 코드 중에서 변경이 거의 일어나지 않으며 일정한 패턴으로 유지되는 특성을 가진 부분을 자유롭게 변경되는 성질을 가진 부분으로부터 독립시켜서 효과적으로 활용할 수 있는 방법이다. 분리와 재사용을 위한 디자인 패턴 적용 내부 클래스 클래스 분리와 DI 템플릿과 콜백 정리 예외처리 예외처리 필요성 : 예외가 발생했을 경우에도 사용한 리소스를 반드시 반환해야 한다. try/catch/finally 코드의 복잡도가 너무 높다. 모든 메소드마다 반복된다. 분리와 재사용을 위한 디자인 패턴 적용 변하는 부분을 변하지 않는 나머지 코드에서 분리 변하는 부분 : 쿼리 수행 변하지 않는 부분 : try/cat..