출처 : 인프런 > 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 강의를 듣고 작성한 글입니다.
강의 링크 : 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
섹션 3. 애플리케이션 구현 준비
📘 구현 요구사항

- 회원 기능
- 회원 등록
- 회원 조회
- 상품 기능
- 상품 등록
- 상품 수정
- 상품 조회
- 주문 기능
- 상품 주문
- 주문 내역 조회
- 주문 취소
- 예제를 단순화 하기 위해 다음 기능은 구현X
- 로그인과 권한 관리X
- 파라미터 검증과 예외 처리X (MVC 강의에서)
- 상품은 도서만 사용
- 카테고리는 사용X
- 배송 정보는 사용X
📘 애플리케이션 아키텍처

계층형 구조 사용
- controller, web: 웹 계층
- service: 비즈니스 로직, 트랜잭션 처리
- repository: JPA를 직접 사용하는 계층, 엔티티 매니저 사용
- domain: 엔티티가 모여 있는 계층, 모든 계층에서 사용
controller가 service에만 접근할 수 있는게 아니라 repository에도 접근할 수 있는 유연한 구조를 사용할 예정이다.
패키지 구조
- jpabook.jpashop
- domain
- exception
- repository
- service
- web
개발 순서: 서비스, 리포지토리 계층을 개발하고, 테스트 케이스를 작성해서 검증, 마지막에 웹 계층 적용
웹 계층 적용이 마지막! 그 다음에 API 개발