Skip to content

junshock5/inflearnJpa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

orderSystem

목적

  • 스프링 부트와 JPA를 활용하여 주문 거래 시스템 웹 애플리케이션 개발
  • JPA와 DB 멤버, 주문, 상품 객체간의 연관관계 설정
  • ex) 배달의 민족

사용 기술

  • Spring Boot, gradle, jpa, h2, thymeleaf, Java11, junit4, HikariCP, LogBack, mockito

목차

  • 도메인 분석 설계 (DDD 도메인 주도 개발)

    • 요구사항 분석

      • 도메인 모델과 테이블 설계
      • 엔티티 클래스 개발
      • 엔티티 설계시 주의점
      • 애플리케이션 구현 준비
    • 구현 요구사항

      • 애플리케이션 아키텍처
        • 회원
          • 회원 도메인 개발
          • 회원 리포지토리 개발
          • 회원 서비스 개발
          • 회원 기능 테스트
        • 상품
          • 상품 도메인 개발
          • 상품 엔티티 개발(비즈니스 로직 추가)
          • 상품 리포지토리 개발
          • 상품 서비스 개발
        • 주문
          • 주문 도메인 개발
          • 주문, 주문상품 엔티티 개발
          • 주문 리포지토리 개발
          • 주문 서비스 개발
          • 주문 기능 테스트
          • 주문 검색 기능 개발
  • 웹 계층 개발

    • View thymeleaf 설정
    • 홈 화면과 레이아웃
      • 회원 등록
      • 회원 목록 조회
      • 상품 등록
      • 상품 목록
      • 상품 수정
      • 변경 감지와 병합(merge)
      • 상품 주문
      • 주문 목록 검색, 취소

UML

3

  • 회원(Member): 이름과 임베디드 타입인 주소( Address ), 그리고 주문( orders ) 리스트를 가진다.

  • 주문(Order): 한 번 주문시 여러 상품을 주문할 수 있으므로 주문과 주문상품( OrderItem )은 일대다 관계 다. 주문은 상품을 주문한 회원과 배송 정보, 주문 날짜, 주문 상태( status )를 가지고 있다. 주문 상태는 열 거형을 사용했는데 주문( ORDER ), 취소( CANCEL )을 표현할 수 있다.

  • 주문상품(OrderItem): 주문한 상품 정보와 주문 금액( orderPrice ), 주문 수량( count ) 정보를 가지고 있다. (보통 OrderLine , LineItem 으로 많이 표현한다.)

  • 상품(Item): 이름, 가격, 재고수량( stockQuantity )을 가지고 있다. 상품을 주문하면 재고수량이 줄어든 다. 상품의 종류로는 도서, 음반, 영화가 있는데 각각은 사용하는 속성이 조금씩 다르다.

  • 배송(Delivery): 주문시 하나의 배송 정보를 생성한다. 주문과 배송은 일대일 관계다.

  • 카테고리(Category): 상품과 다대다 관계를 맺는다. parent , child 로 부모, 자식 카테고리를 연결한 다.

  • 주소(Address): 값 타입(임베디드 타입)이다. 회원과 배송(Delivery)에서 사용한다

ERD

4

  • MEMBER: 회원 엔티티의 Address 임베디드 타입 정보가 회원 테이블에 그대로 들어갔다. 이것은 DELIVERY 테이블도 마찬가지다.

  • ITEM: 앨범, 도서, 영화 타입을 통합해서 하나의 테이블로 만들었다. DTYPE 컬럼으로 타입을 구분한다.

About

주문거래 시스템 개발

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages