스터디/Spring

Spring 스터디3 - 2

라퐁 2025. 6. 16. 23:17

요구사항 분석

기능목록

  • 회원 기능
    • 회원 등록
    • 회원 조회
  • 상품 기능
    • 상품 등록
    • 상품 수정
    • 상품 조회
  • 주문 기능
    • 상품 주문
    • 주문 내역 조회
    • 주문 취소
  • 기타 요구사항
    • 상품은 재고 관리가 필요하다.
    • 상품은 카테고리로 구분할 수 있고 도서, 음반, 영화가 있다.
    • 상품 주문 시 배송 정보를 입력할 수 있다.

도메인 모델과 테이블 설계

도메인

엔티티

테이블

엔티티 클래스 개발

https://github.com/hongbre/spring-jpashop

 

GitHub - hongbre/spring-jpashop

Contribute to hongbre/spring-jpashop development by creating an account on GitHub.

github.com

 

  1. 다중성(관계의 수) 기준
    • OneToOne(1:1)
      • 하나의 엔티티가 다른 엔티티와 오직 하나의 관계만 가질 때 사용
      • ORDERS와 DELIVERY
    • ManyToOne(N:1)
      • 여러 엔티티가 하나의 엔티티와 관계를 맺을 때 사용
      • ORDER_ITEM과 ITEM
    • OneToMany(1:N)
      • 하나의 엔티티가 여러 엔티티와 관계를 맺을 때 사용
      • ORDERS와 ORDER_ITEM
    • ManyToMany(N:N)
      • 여러 엔티티가 서로 다수와 관계를 맺을 때 사용
      • 실무에서는 사용을 지양하고, 중간 엔티티를 만들기를 권장
      • ITEM과 CATEGORY
  2. 방향 및 연관관계의 주인
    • 단방향
      • 한쪽 엔티티만 다른 엔티티를 참조
      • ORDER_ITEM과 ITEM의 관계만 단방향
    • 양방향
      • 양쪽 엔티티가 서로를 참조
    • 연관관계의 주인(Owner)
      • 외래키(FK)를 가진 엔티티가 연관관계의 주인이 된다
      • 주인 엔티티에서만 연관관계의 변경(CUD)이 가능