Presentation 계층 : 화면에 보여주는 기술 사용, MVC(Servlet/Controller), JSP
Business 계층 : 순수 비지니스 로직, 네이밍은 xxxService
클래스와 xxxServiceImpl
인터페이스로 구성, 메서드 이름은 주로 고객에 사용하는 용어 사용.
Persistence 계층 : 데이터베이스 처리, 개발자가 사용하는 용어 사용. Mapper
인터페이스와 XML
설정파일로 구성함.
xxxController
: Controller 클래스xxxService, xxxServiceImpl
: 비지니스 영역의 인터페이스는 xxxService
, 구현은 xxxServiceImpl
사용xxxVO
: 불변성이 강한 데이터베이스의 테이블의 속성을 옮겨놓은 성격이 강함. read-Only의 목적이 강함.xxxDTO
: 주로 데이터 수집의 용도가 강함. 웹 화면에서 쓰는 속성의 경우.xxxMapper
: Service 인터페이스와 mybatis xml (sql 관리) 파일을 연결하는 인터페이스 파일.org.example.config
: WebConfig.java, RootConfig.java, ServletConfig.java 등 설정 클래스들이 모인 패키지org.example.controller
: xxxController.java 파일이 모인 패키지org.example.service
: xxxService 인터페이스가 모인 패키지org.example.service.impl
: xxxServiceImpl 구현 클래스가 모인 패키지org.example.domain
: xxxVO, xxxDTO 파일들이 모인 패키지org.example.persistence
: MyBatis Mapper 인터페이스 패키지org.example.exception
: 웹 관련 예외 처리 패키지org.example.aop
: 스프링 aop 관련 패키지org.example.security
: 스프링 시큐리티 관련 패키지org.example.util
: 각종 유틸리티 클래스 관련 패키지