본문 바로가기

Back-End/토비의 스프링3

토비의 스프링 7장(1) - SQL과 DAO의 분리

4,5,6장을 살펴보면서 스프링의 3대 핵심 기술인 IoC/DI, 서비스 추상화, AOP에 대해 간단히 살펴봤다.


스프링이 자신의 핵심 기술을 다양한 분야에 적용했듯이,


스프링을 사용하는 개발자도 스프링이 제공하는 3가지 기술을


필요에 따라 스스로 응용할 수 있어야 한다.


SQL과 DAO의 분리

UerDao에서 반복적인 JDBC 작업 흐름을 템플릿을 이용해 제거했다. 그리고 다른 부분과의 연결을 인터페이스를 통해 DI 되기 때문에 다이나믹하게 관계를 설정할 수 있다.

즉, DAO에는 깔끔하게 다듬어진 순수한 데이터 액세스 코드만 남게 했다.

하지만, DB테이블과 필드정보를 고스란히 담고 있는 SQL 문장이 남아있다.

DB의 테이블, 필드 이름과 SQL 문장의 변경으로 UserDAO를 수정하게 될 수도 있다. 이 과정에서 필드명을 수정하다가 실수를 할 수 있다.

이를 방지하기 위해 SQL문을 DAO 코드에서 적절히 분리하는 방법에 대해 살펴보자.