Back-End/Inflearn 강의

[스프링 핵심 원리 - 기본편] 스프링 핵심 원리 이해1 - 예제 만들기

yeonx 2022. 5. 18. 02:54
728x90

프로젝트 생성

 

간단한 생성 링크 : https://start.spring.io/

 

*tip : File > setting > Gradle > intelliJ로 설정해주기

 

비즈니스 요구사항과 설계

 

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

-> 회원 데이터, 할인 정책 같은 부분은 당장 결정하기 어려운 부분임. 

-> 인터페이스를  만들고 구현체를 언제든지 갈아끼울 수 있도록 설계하면 된다.

 

 

회원 도메인 설계

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

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

*회원 서비스 : MemberServiceImpl

회원 객체 다이어그램

 

회원 도메인 개발

 

등급

- enum으로 생성

 

회원

- class로 생성 (id, name, grade)

 

리포지터리

- interface, implements

 

회원 서비스

- 인터페이스

 

* Generate 단축키 : alt + insert

* 단축키 찾는 법 : File > setting > ketmap > 검색

* 파일 모아 보기 / 안 모아 보기 : Compact Middle Packages 

* 조금 치다가 전체(;까지) 입력 방법 : ctrl + shift + Enter

 

회원 도메인 실행과 테스트

 

*psvm치고 Enter : public static void main(String[] args) 자동으로 생성

*ctrl + alt + v : 앞에 선언 만들어줌

 

 

주문과 할인 도메인 설계

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

주문 도메인 협력, 역할, 책임

  1. 주문 생성 : 클라이언트는 주문 서비스에 주문 생성을 요청한다.
  2. 회원 조회 : 할인을 위해서는 회원 등급이 필요하다. 그래서 주문 서비스는 회원 저장소에서 회원을 조회한다.
  3. 할인 적용 : 주문 서비스는 회원 등급에 따른 할인 여부를 할인 정책에 위임한다.
  4. 주문 결과 반환 : 주문 서비스는 할인 결과를 포함한 주문 결과를 반환한다.

주문 도메인 전체
주문 도메인 클래스 다이어그램
주문 도메인 객체 다이어그램1
주문 도메인 객체 다이어그램2

 

주문과 할인 도메인 개발

 

DiscountPolicy

- 인터페이스 : 할인 대상 금액

 

FixDiscountPolicy ( implements DiscountPolicy)

- class : 정액 할인 정책

 

Order

- class : 회원 Id, 아이템 이름, 아이템 가격, 할인 가격

 

OrderService

- interface

 

OrderServiceImpl

- class : 회원 리포지토리에서 회원 찾기 + 할인 정책 적용

- return : 가격

 

 

주문과 할인 도메인 실행과 테스트

*long은 null이 못 들어가고 Long은 들어갈 수 있음

 

 

 

참고 강의 : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard

 

스프링 핵심 원리 - 기본편 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런...

www.inflearn.com