본문 바로가기

책 정리19

3. 템플릿 0. 템플릿이란 변경이 거의 일어나지 않으며 일정한 패턴으로 유지되는 특성을 가진 부분을 독립시켜서 효과적으로 사용하는 방법 1. 예외처리 기능을 갖춘 DAO 현재까지 구현한 DAO에서는 Connection과 PrepareStatement 를 통해 데이터베이스에서 데이터를 가져온다. 리소스 반환이 필수적이다. pool 방식으로 운영된다. 미리 정해진 풀에 제한된 수의 Connection을 만들어 필요한 경우 사용한다. 예외가 발생할 시, Connection close() 를 해줘야 한다. 2. 리팩토링 1. 템플릿메소드를 통한 리팩토링 자주 변하는 부분 (preparestatement 부분) 에 대해서 상속관계를 통해서 분리한다. 상위클래스의 변경에 민감하게 된다. 유연성 zero 2. 전략 패턴을 통한.. 2021. 1. 23.
2. 테스트 1. JUnit 테스트 수행 방식 수행 방식 @Test 어노테이션이 붙은 void 테스트를 모두 찾는다. 테스트 클래스의 오브젝트를 하나 만든다. @BeforeEach 가 붙은 메소드가 있으면 수행한다. @Test 가 붙은 메소드를 하나 호출하고 결과를 저장한다. @AfterEach 가 붙은 메소드가 있으면 수행한다. 2~5를 반복한다. 모든 테스트의 결과를 반환한다. 이 중에서도, 2번 @Test 를 수행할 때마다 새로운 오브젝트를 만든다. 독립적인 수행을 보장하기 위해서. 2. 테스트를 위한 ApplicationContext 관리 테스트를 만들때마다 새로운 오브젝트를 초기화해주는 과정에서, ApplicationContext를 매번 만드는 것은 빈이 많아지면 시간 / 자원 소모가 크다. 이를 위해서 @.. 2021. 1. 23.
1장 오브젝트와 의존관계 github.com/robin00q/tobyspring robin00q/tobyspring Contribute to robin00q/tobyspring development by creating an account on GitHub. github.com Bean Default 생성를 갖고있어야 한다. (프레임워크가 리플렉션을 통해서 오브젝트를 생성하기 때문) 관심사의 분리 관련이 있는 내용들을 한 객체로 모으고, 다른것은 떨어뜨려 서로 영향을 주지 않도록 하자. 1. 토비의 스프링에 있는 UserDao 관심사의 분리하기 1. 상속을 통한 확장 N, D사의 Connection을 위한 NUserDao, DUserDao 로 분리한다. 템플릿 메소드 패턴을 기반으로 abstract Class인 UserDao 와.. 2021. 1. 19.