본문 바로가기
카테고리 없음

실전! 스프링 부트와 JPA 활용1 - 애플리케이션 구현 준비

by 문자메일 2023. 6. 6.

회원 기능

  • 회원 등록
  • 회원 목록 조회

상품 기능

  • 상품 등록
  • 상품 수정
  • 상품 조회

주문 기능

  • 상품 주문
  • 주문 내역 조회
  • 주문 취소

 

로그인과 권한 관리x

파라미터 검증과 예외 처리 단순화

상품은 도서만 사용

카테고리는 사용X

배송 정보는 사용x

 

 

애플리케이션 아키텍처

계층형 구조

- Controller, web : 웹 계층

- service : 비즈니스 로직, 트렌잭션 처리

- repository : JPA를 직접 사용하는 계층, 엔티티 메니저 사용

- domain : 엔티티가 모여 있는 계층, 모든 계층에서 사용

 

패키지 구조

jpabook.jpashop

  • domain
  • exception
  • repository
  • service
  • web

 

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

 

 

회원 도메인 개발

구현 기능

  • 회원 등록
  • 회원 목록 조회

순서

  • 회원 엔티티 코드 다시보기
  • 회원 레퍼지토리 개발
  • 회원 서비스 개발
  • 회원 기능 테스트

 

JPA의 모든 데이터 변경이나 로직에는 가급적이면 다 트랜잭션 안에서 실행되어야 한다.

그래서 @Transactional 어노테이션이 있어야 한다.

@Transactional

 

 

 

조회 기능인 경우, @Transactional(readOnly=true) 옵션 주면 JPA가 여러 부분에서 성능을 최적화 해주는 장점이 있다.

 

 

상품 도메인 개발

구현 기능

  • 상품 등록
  • 상품 목록 조회
  • 상품 수정

순서

  • 상품 엔티티 개발
  • 상품 레퍼지토리 개발
  • 상품 서비스 개발, 상품 기능 테스트

 

주문 도메인 개발

구현 기능

  • 상품 주문
  • 주문 내역 조회
  • 주문 취소

순서

  • 주문 엔티티, 주문상품 엔티티 개발
  • 주문 레퍼지토리 개발
  • 주문 서비스 개발
  • 주문 검색 기능 개발
  • 주문 기능 테스트

댓글