Spring 핵심 원리 이해(1)

suhan cho·2022년 3월 7일
0

Spring 작업 세팅

https://start.spring.io/ 에서 프로젝트 받기

기존에 8버전으로 설정되어 있어서 에러가 나왔는데
프로젝트 구조->SDK로가서 11로 교체
설정 -> 빌드 -> gradle, Maven 11로 교체

비지니스 요구사항과 설계

  • 회원
    • 회원을 가입하고 조회할 수 있다.
    • 회원은 일반과 VIP두 가지 등급이 있다.
    • 회원 데이터는 자체 DB를 구출할 수 있고, 외부 시스템과 연동할 수 있다.(미확정)
  • 주문과 할인 정책
    • 회원은 상품을 주문할 수 있다.
    • 회원 등급에 따라 할인 정책을 적용할 수 있다.
    • 할인 정책은 모든 VIP는 1000원 할인해주는 고정 금액 할인을 적용해달라.(나중에 변경 가능)
    • 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을 미루고 싶다. 회착의 경우 할인을 적용하지 않을 수 있다.(미확정)

요구사항의 회원데이터, 할인 정책은 지금 결정 불가 객체 지향 설계 방법을 이용해야한다.(인터페이스를 만들고 구현체를 언제든지 갈아끼울 수 있도록 설계)

회원 도메인 설계

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

회원 도메인 설계의 문제점

  • 다른 저장소로 변경할 때 OCP원칙을 잘 준수할까요?
  • DIP를 잘 지키고 있을까요?
  • 의존관계가 인터페이스 뿐만 아니라 구현까지 모두 의존하는 문제점이 있음
private final MemberRepository memberRepository = new MemoryMemberRepository(); 추상화와 구체화에 의존
  • 주문까지 만들고나서 문제점과 해결 방안을 설명

주문과 할인 도메인 설계

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

profile
안녕하세요

0개의 댓글