스프링 MVC 프로젝트 기본 구성
Presentation <-> Business <-> Persistence
- Presentation: 화면 계층으로 화면에 보여주는 기술입니다. 스프링 MVC와 JSP를 이용한 화면구성이 이에 속합니다.
- Business: 순수한 비지니스 로직을 담고 있습니다. 고객의 원하는 요구사항을 반영합니다. 주로 Service로 구성되고 메서드 이름은 고객들이 사용하는 용어 그대로 사용합니다.
- Persistence: 영속계층으로 데이터를 어떤 방식으로 보관하고 사용하는지에 대한 설계가 들어갑니다. DB로써 Mybatis를 이용하는 영역에 속합니다.
즉 Spring MVC 부분은 servlet-context.xml 이나 root-context.xml 설정을 통한 영역이며
Spring Core부분은 의존 주입을 이용해서 객체 간의 연관 구조를 완성하는 영역이고
Mybatis는 spriing-mybatis를 이용해서 SQL에 대한 처리를 담당하는 영역입니다.
명명(Name rule)
- xxxController: 컨트롤러 클래스 설계 명칭
- xxxService, xxxServiceImpl: 서비스 인터페이스와 서비스 구현 부를 명칭
- xxxDAO, xxxRepository, xxxMapper: DB와 연관이 있는 클래스
- xxxVO, xxDTO: 데이터를 담는 객체, 두 개의 차이점은 VO는 불변(읽기 용도), DTO는 데이터 수집 용도(로그인, 변함)
나만의 설계 순서
- 프로젝트를 위한 요구사항을 분석한다. (고객은 로그인 화면에 무엇을 필요로 한다. 등등)
- 요구사항에 따른 화면과 시나리오(흐름)을 설계한다.(URL과 화면 구성, 그리고 GET/POST 까지 정해둡니다.)
- 데이터베이스 설정을 진행한다. ( Mybatis, JDBC 연결 등등)
- 영속계층의 설계를 진행한다.
- VO 클래스 생성
- 마이바티스 메퍼 인터페이스를 작성하고 mapper.xml을 작성한다.(CRUD)
- 작성 mapper를 테스트해본다.
- 비지니스 계층의 설계를 진행한다.
- "물건을 구매한 회원에게 포인트를 올려준다"
- 영속에서는 상품(물건)과 회원을 나누어 설계하지만 비지니스계층에서는 둘다 동시에 설계
- 즉 구매 서비스 하나로 설계를 하고 영속계층 안에는 회원 처리 객체와 상품 처리 객체 두개로 나뉜다.
- 프레젠테이션 계층(웹) 설계를 진행한다.
- 앞서 2에서 설계한 URL과 메소드 방식에 따라 컨트롤러를 작성한다.
- View를 통해 화면을 직접 연결시킨다.
- 마지막으로 보수를 하며 흐름 상 문제나 요구사항에 부합하지 않는 부분은 다시 살펴본다.
'웹 > Spring' 카테고리의 다른 글
Spring 이론(응용) - ORACLE 페이징처리 (0) | 2019.08.17 |
---|---|
Spring 이론(응용) - ORACLE 페이징처리 (0) | 2019.08.10 |
Spring 이론(재) - AOP (0) | 2019.07.21 |
Spring 이론(재) - controller (0) | 2019.07.20 |
Spring 이론(재) - MVC구조 (0) | 2019.07.18 |