1) 프로젝트의 구성
- 일반적인 웹 프로젝트의 구조는 3-Tier의 구조를 활용
- Presentation tier / Business tier / Persistence tier로 구성
- 각 영역을 독립적으로 설계하여 특정 기술이 변하더라도 필요한 부분을 부품처리 쉽게 교환할 수 있께 하는 방식
→ 유지 보수의 필요성 때문에 이렇게 구성한다.
2) 각 영역의 네이밍 규칙
- xxxController : 스프링 MVC에서 동작하는 Controller 클래스
- xxxService, xxxServicelmpl : 비즈니스 영역을 담당하는 인터페이스는 'xxxService'라는 방식을 사용하고,
인터페이스를 구현한 클래스는 'xxxServicelmpl'이라는 이름을 사용
- xxxDAO 또는 xxxRepository : DAO(Data-Access-Object)나 Repository(저장소)라는 이름으로 영역을 따로 구성
하는 것이 보편적 / 예제에서는 별도의 DAO를 구성하는 대신에 MyBatis의 Mapper
인터페이스를 활용 (xxxMapper)
- VO, DTO : VO의 경우는 주로 Read Only의 목적이 강하고, 데이터도 Immutable(불변)하게 설계
DTO 주로 데이터 수집의 용도
둘 다 스프링에서 빈으로 등록하지 않음
3) 구현 순서
영속 계층 → 서비스 계층 → 컨트롤러 계층 → 화면 구현
4) 기본적인 게시물의 화면 설계
- 코딩 전에 흐름을 설계하는 것은 아주 중요
→ 화면설계를 위한 SW로 정리하는 것 필요 (Story board)
5) 페이지별 기능
- /board/list : 게시물 목록
- /board/register : 게시물 등록
- /board/get : 게시물 조회
- /board/modify : 게시물 수정, 삭제
- /board/list : 게시물 목록 with 결과
6) 영속 계층의 구현 절차
- 인터페이스 객체와 mapper로 DB 연동
① BoardVO 객체 생성
② BoardMapper.java 인터페이스 작성
③ BoardMapper.xml 작성
④ BoardMapperTests.java로 BoardMapper 테스트
- 구현 기능
① BoardVO 객체
② 게시물 조회
③ 게시물 등록
④ 특정 게시물 조회
⑤ 게시물 삭제
⑥ 게시물 수정