DAO를 Inject했는데 DAOImpl이 동작? DAO/Service 계층 분리이유?

어떻게 DAO를 주입했는데 DAO Impl이 돌아갈까?
- DAO를 주입한게 아니라 DAO타입의 객체를 주입한 것.
- 스프링에 persistence패키지를 스캔대상으로 등록.
- 이 때 @Repository가 붙은 DAOImpl을 스프링이 스캐닝하고, DAOImpl이 Bean으로 등록된다.

DAO / SERVICE 계층 나누는 이유?
- DAO는 그 자체만으로도 DB에 접근할 수 있게 해주는 계층이다.
- 따라서 어떤 DB건 DAO를 통해 DB에 접근할 수 있다.
- 그리고 Service는 직접 DB에 접근하는 권한이나 역할이 없으며, DAO로 데이터를 전달하거나
DAO로부터 받은 데이터를 가지고 작업을 한다.
- 보안관련문제도 있다. Service계층은 직접 DB 정보를 가지고 있지 않기 때문에 보안에 좀 더 유리하다.

댓글

이 블로그의 인기 게시물

로컬 Tomcat 서버 실행속도 개선

2019.05.23 - SQLAlchemy 의 객체 상태 관리 (expire, refresh, flush, commit) 에 관한 이해

2020.02.17 Python의 multiprocessing 중 Pool.map(), chunksize에 관한 내용