Home 섹션2. 스프링 핵심 원리 이해1 - 예제 만들기
Post
Cancel

섹션2. 스프링 핵심 원리 이해1 - 예제 만들기

프로젝트 생성

  • 프로젝트 설정 : Gradle, Java, Spring Boot 2.7.7

비즈니스 요구사항과 설계

회원

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

    주문과 할인 정책

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

미확정된 부분이 있는데 어떻게 기능개발을 할까?

  • 미확정인 부분은 인터페이스를 만들고 구현체만 변경하면 동작할 수 있도록 설계한다

회원 도메인 설계

회원 도메인 협력관계 이미지 회원 클래스 다이어그램 이미지 회원 객체 다이어그램 이미지

회원 도메인 개발

  • 개발 코드는 업로드 x
    1. 회원 등급을 나타내는 Grade를 Enum으로 생성
    2. Member 도메인 생성
    3. Member 도메인을 사용하여 Repository를 만들건데 인터페이스를 사용하여 구현체를 변경해야 하므로 MemberRepository 인터페이스 생성 -> 회원을 저장해야 하므로 save 메소드 선언
    4. MemberRespository 인터페이스를 상속받은 MemoryMemberRepository 구현체 생성 -> Map에 회원 아이디와 멤버 정보를 저장하도록 구현

주문, 할인 도메인 설계

주문 도메인 협력, 역할, 책임 이미지 주문 도메인 전체 이미지 주문 도메인 클래스 다이어그램 이미지 주문 도메인 객체 다이어그램 이미지

주문, 할인 도메인 개발

  1. 할인 인터페이스 생성
  2. 할인 구현체 생성 -> 할인 가격은 일단 1000원
  3. 주문 도메인 생성
  4. 주문 도메인을 가지고 주문 서비스 인터페이스 생성
This post is licensed under CC BY 4.0 by the author.