1 분 소요

지금까지 도메인 설계 등 데이터 적인 설계는 했고, 이제부터는 뭘 어디까지 구현할지 전체적으로 알아보고자 한다.

애플리케이션 구현 준비

구현 요구사항

  • 회원 기능
    • 회원 등록
    • 회원 조회
  • 상품 기능
    • 상품 등록
    • 상품 수정
    • 상품 조회
  • 주문기능
    • 상품 주문
    • 주문 내역 조회
    • 주문 취소

이번 프로젝트는 단순하게 구현 해보는 것이 목표이기 때문에 다음과 같은 기능은 구현하지 않거나 최소화 할 예정이다.

  • 로그인과 권환 관리 X
  • 파라미터 검증과 예외 처리 단순화
  • 상품은 도서만 사용할 것
  • 카테고리는 사용 X
  • 배송 정보는 사용 X

애플리케이션 아키텍처

png

계층형 구조 사용

  • Controller, web : 웹 계층
    참고로 Controller에서 Service만 호출할 수 있는 것이 아니라 Repository에도 바로 접근할 수 있게 구현할 것이다.(단방향)
  • Service : 비즈니스 로직, 트랜잭션 처리
  • Repository : JPA를 직접 사용하는 계층, 엔티티 매니저 사용
  • Domain : 엔티티가 모여있는 계층, 모든 계층에서 사용

패키지 구조

  • jpabook.jpashop
    • domain
    • exception
    • repository
    • service
    • web

개발 순서 :
서비스, 리포지토리 계층을 개발하고, 테스트 케이스를 작성해서 검증한다.
마지막에는 웹 계층 적용을 한다.

목차 (개발 진행할 목차)

  • 회원 도메인 개발
    • 회원 리포지토리 개발
    • 회원 서비스 개발
    • 회원 기능 테스트
  • 상품 도메인 개발
    • 상품 엔티티 개발(비즈니스 로직 추가)
    • 상품 리포지토리로 개발
    • 상품 서비스 개발
  • 주문 도메인 개발
    • 주문, 주문상품 엔티티 개발
    • 주문 리포지토리 개발
    • 주문 서비스 개발
    • 주문 기능 테스트
    • 주문 검색 기능 개발
  • 웹 계층 개발
    • 홈 화면과 레이아웃
    • 회원 등록
    • 회원 목록 조회
    • 상품 등록
    • 상품 목록
    • 상품 수정
    • 변경 감지와 병합(merge)
    • 상품 주문
    • 주문 목록 검색, 취소
  • API 개발 기본
    • 회원 등록 API
    • 회원 수정 API
    • 회원 조회 API
  • API 개발 고급
    • 조회용 샘플 데이터 입력
    • 지연 로딩과 조회 성능 최적화
    • 컬렉션 조회 최적화
    • 페이징과 한계 돌파
    • OSIV와 성능 최적화