스프링 핵심원리 - 기본편1

JH Bang·2023년 6월 1일
0

김영한님 강의 기록

스프링 세팅

스프링 부트 3.0을 선택하면
1. Java 17 이상을 사용해야 합니다.
2. javax 패키지 이름을 jakarta로 변경해야 합니다.
오라클과 자바 라이센스 문제로 모든 javax 패키지를 jakarta로 변경하기로 했습니다.
패키지 이름 변경 예)

# JPA 애노테이션
javax.persistence.Entity jakarta.persistence.Entity 
---------------------------
# 스프링에서 자주 사용하는 @PostConstruct 애노테이션
javax.annotation.PostConstruct jakarta.annotation.PostConstruct
---------------------------
# 스프링에서 자주 사용하는 검증 애노테이션
javax.validation jakarta.validation

비즈니스 요구사항

회원

회원을 가입하고 조회할 수 있다.
회원은 일반과 VIP 두 가지 등급이 있다.
회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정)

주문과 할인 정책

회원은 상품을 주문할 수 있다.
회원 등급에 따라 할인 정책을 적용할 수 있다.
할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라. (나중에 변경 될 수 있다.)
할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을 미루고 싶다. 최악의 경우 할인을 적용하지 않을 수 도 있다. (미확정)

회원 도메인 개발

회원 도메인 협력관계

  • 기획자와 개발자가 같이 협업하는 단계

회원 클래스 다이어그램

  • 개발자가 구현 어떻게 할지 정하는 단계

회원 객체 다이어그램

  • repository가 동적으로 결정되기 때문에 실제 사용하는 인스턴스 관계를 명시
  1. Member 클래스를 구현 -> id/name/grade/생성자/getter/setter
  2. MemberRepository 인터페이스 -> 메모리 구현체 Class
  3. MemberService 인터페이스 -> 구현체인 MemberServiceImpl

할인 정책 도메인 개발

주문 도메인 전체

역할과 구현을 구분해야 한다.

주문 도메인 클래스 다이어그램

주문 도메인 객체 다이어그램1

주문 도메인 객체 다이어그램2


협력 관계는 그대로 유지된다.

profile
의지와 행동

0개의 댓글