스프링(Spring) - 스프링 MVC 프로젝트의 기본 구성
스프링 MVC 프로젝트의 기본 구성
스프링 MVC에서 어떤 단계를 거쳐서 실행되는 지를 이해해야 문제 발생 시 빠른 대처와 대안을 찾을 수 있습니다.
웹 프로젝트는 3-tier(티어)방식으로 구성합니다.
Presentation ↔ Business ↔ Persistence
- Presentation Tier(화면 계층) - 화면에 보여주는 기술을 사용하는 영역입니다.
- Servlet/JSP 혹은 스프링 MVC가 담당하는 영역이며 화면 구성이 이에 속합니다.
-> .jsp
- Servlet/JSP 혹은 스프링 MVC가 담당하는 영역이며 화면 구성이 이에 속합니다.
- Business Tier(비지니스 계층) - 순수한 비지니스 로직을 담고 있는 영역입니다.
- 고객이 원하는 요구사항을 반영하는 계층이기 때문에 중요한 영역입니다.
이 영역의 설계는 고객의 요구사항과 정확히 일치해야 하며, '000Service'와 같은 이름으로 구성합니다.
-> .java
- 고객이 원하는 요구사항을 반영하는 계층이기 때문에 중요한 영역입니다.
- Persistence Tier(영속 계층 or 데이터 계층) - 데이터를 어떤 방식으로 보관하고, 사용하는 가에 대한 설계가 들어가는 계층입니다.
일반적으로 DB를 많이 이용하지만, 상황에 따라서 네트워크 호출 혹은 원격 호출 등의 기술이 접목됩니다.
** 계층 관계도
[Spring MVC] ↔ [Spring Core]
. ↕
[spring-mybatis] ↔ [Mybatis] ↔ [DB]
각 영역은 독립적으로 설계되어 나중에 특정한 기술이 변하더라도 필요한 부분을 전자제품의 부품처럼 쉽게 교환할 수 있게 하자는 방식입니다. 각 연결 부위는 인터페이스를 이용해서 설계하는 것이 일반적인 구성 방식입니다.
Naming Convention(명명 규칙)
-com.mycompany.
config : 프로젝트와 관련된 설정 클래스들의 보관 패키지
controller : 스프링 MVC의 Controller 들의 보관 패키지
service : 스프링 Service 인터페이스와 구현 클래스 패키지
domain : VO, DTO 클래스들의 패키지
persistence : MyBatis Mapper 인터페이스 패키지
exception : 웹 관련 예외처리 패키지
aop : 스프링의 AOP 관련 패키지
security : 스프링 Security 관련 패키지 (자동 로그인, 세션 종료 관련 클래스)
util : 각종 유틸리티 클래스 관련 패키지
비지니스 계층
프레젠테이션 계층과 영속 계층의 중간다리 역할을 한다.
영속 계층은 DB를 기준으로, 비지니스 계층은 로직을 기준으로 처리한다.
예를 들어 쇼핑몰에서 상품 구매 시 포인트 적립을 하나로 가정한다면,
영속 계층(Mapper)의 설계는 '상품', '회원'으로 나누어 설계하지만,
비지니스 계층은 상품 영역과 회원 영역을 동시에 사용해서 하나의 로직을 처리하게 된다.
Business Tier <--- Service <--- Persistence Tier
구매 서비스 상품 처리 객체 / 회원 처리 객체
* 일반적으로 비지니스 영역에 있는 객체들은 서비스(Service)라는 용어를 많이 사용한다.
'⚙️ Backend > 스프링(Spring) Framework' 카테고리의 다른 글
스프링(Spring) -(2) 게시판 만들기 - Service , ServiceImple (0) | 2021.05.10 |
---|---|
스프링(Spring) -(1) 게시판 만들기 - MyBatis + Oracle DB 연동 (0) | 2021.05.10 |
스프링(Spring) - 예외처리, 500 오류 (@ControllerAdvice) (0) | 2021.05.10 |
(Spring MVC) Front-Controller 패턴 (0) | 2021.05.07 |
스프링 - Oracle TimeMapper 예제 (0) | 2021.05.07 |
댓글