사용자관리프로젝트(컨트롤러,서비스,DAO,도메인모델)란?


사용자관리 프로젝트 아키텍쳐

- 계층화(역할별로 나누어서 개발)

3계층과 모든계층에 사용되는 도메인 모델(VO,DTO) 클래스로 구성되어있다.

3계층

-프리젠테이션계층

-서비스계층

-데이터액세스계층

각각계층은 독립적으로 구분에서 구현한다.(각각의 기능과 역할이 다름)


프리젠테이션계층(쉽게말해 컨트롤러)

- 웹클라이언트의 요청 및 응답을 처리한다.

- 상위계층(서비스,데이터액세스계층)에서 발생하는 익셉션 처리한다.

- 최종 UI에서 표현해야 할 도메인 모델 사용한다.

- 최종 UI에서 입력한 데이터에 대한 유효성 검증기능을 제공한다.(타입확인등)

- 비지니스로직과 UI분리한다.(컨트롤러)

- @Controller 어노테이션으로 표현한다.


서비스계층(비지니스 로직)

- 복잡한 처리 구현한다.

- 트랜잭션처리한다.(DB 커밋 및 롤백)

- 프리젠테이션계층과 데이터액세스 계층 사이를 연결하는 역할이다.(직접통신하지않아 유연성증가)

- 다른 계층들과 통신하기 위한 인터페이스를 제공한다.

- Service 인터페이스와 @Service 어노테이션을 사용하여 작성된 Service 구현 클래스이다.


데이터액세스계층

DBMS연동하여 데이터엑세스하는 로직을 담당한다.

- 데이터를 조회 등록 수정 삭제한다.(CRUD)

ORM 프레임워크(Mybatis,Hibernate)를 주로 사용하는 계층이다.

- DAO인터페이스 @Repository 어노테이션을 사용하여 작성된 DAO 구현 클래스이다.


도메인모델클래스

- VO,DTO객체에 해당한다.

- 3개의 계층에 걸쳐 사용한다.

- private 멤버변수있고, getter,setter로 사용한다.



사용자 관리 프로젝트 클래스 설계

테이블 생성


컨트롤러 -> 

서비스(인터페이스) ->

서비스임플(비지니스로직) -> 

DAO(인터페이스) -> 

DAOImpl(db연결 jdbc사용)

UserVO(전구역에걸쳐사용)


UserController

- UI계층과 서비스 계층을 연결하는 역할이다.

- JSP에서 UserController를 통해서 서비스 계층의 UserService를 연결한다.(@autowried사용)

- UserService 를IOC가 주입해준다.



UserService

- 서비스 계층에 속한 상위 인터페이스이다.


UserServiceImpl          

- @Service사용 -> @Component과 같음

- UserService를 구현한클래스이다.

- 복잡한 업무 로직이 있을 경우에는 이 클래스에서 업무 로직을 구현한다.

- 데이터액세스 계층의 UserDao 인터페이스를 구현한 객체를 IoC컨테이너가 주입해준다.(@autowried사용)


UserDao

- 데이터 액세스 계층에 속한 상위 인터페이스


UserDaoImplJDBC 

- @Repository -> @Component역할과 같다.(특별히 데이터엑세스 레파지토리라는 뜻)

- UserDao 인터페이스를 구현한 클래스로 이클래스에서는 데이터 액세스 로직을 구현한다.

- SpringJDBC를 사용하는 경우 DataSource를 IoC컨테이가 주입해준다.

- MyBatis를 사용하는경우에는 SqlSession을 IoC컨테이너가 주입해준다.




+ Recent posts