서비스 추상화
- 비즈니스 로직 코드와 데이터 액세스 로직 코드는 깔끔하게 분리되는 것이 바람직하다. 비즈니스 로직 코드 또한 내부적으로 책임과 역할에 따라서 깔끔하게 메소드로 정리돼야 한다.
- 인터페이스와 DI를 잘 활용해서 결합도를 낮춰야 한다.
- DAO를 사용하는 비즈니스 로직에는 단위 작업을 보장해주는 트랜잭션이 필요하다.
- 트랜잭션의 시작과 종료를 지정하는 일을 트랜잭션 경계설정이라고 한다. 주로 비즈니스 로직 안에서 많이 발생한다.
- 트랜잭션 정보를 담은 오브젝트를 파라미터로 전달하는 방법은 매우 비효율적이다. 따라서 스프링이 제공하는 동기화 기법을 활용하는 것이 편리하다.
- 환경과 서버에 따라서 트랜잭션 방법이 변경되면 경계설정 코드도 함계 변경돼야 한다.
토비의 스프링을 공부하며 원초적인 스프링과 이전 JDBC 기술들을 공부하고 있다. 공부를 하며 느낀점은 스프링 부트가 정말 편리하고(빈 등록 @Bean 한번이면 해결됨.. 지금은 직접 XML에 등록중.).. JPA는 정말 엄청난 혁명적인 기술이란것이다.(사실 오래된 기술임...)