Replies: 1 comment
-
|
마지막까지 더 파이팅 !! 수고하셨습니당 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
섹션2. 스프링 핵심 원리 이해1 - 예제 만들기
1. 프로젝트 생성
spring.io를 사용하여 프로젝트 생성
dependencies 에서 아무것도 선택하지 않고 순수 자바(최소한의 스프링 부트)로 프로젝트를 시작한다.
2. 비즈니스 요구사항과 설계
회원
주문과 할인
변동 가능성이 있는 설계 부분은 인터페이스와 구현체를 분리하는 객체 지향 설계 방법을 적용하면 된다.
3. 회원 도메인 설계
아직 미정인 회원 DB와 관련하여 회원 저장소(인터페이스) 아래에 구현체인 메모리 회원 저장소, DB 회원 저장소, 외부 시스템 연동 회원 저장소를 원하는대로 갈아 끼울 수 있다.
4. 회원 도메인 개발
회원등급 Grade *enum으로 표기
회원 엔티티 Member
회원 저장소 인터페이스 MemberRepository
메모리 회원 저장소 구현체 MemoryMemberRepository
회원 서비스 인터페이스 MemberService
회원 서비스 구현체 MemberServiceImpl
5. 회원 도메인 실행과 테스트
애플리케이션 로직에서 테스트하는 대신 JUnit 테스트 사용하기!
회원 도메인 설계의 문제점
의존 관계가 인터페이스 뿐만 아니라 구현까지 모두 의존하는 문제점이 있다.
6. 주문과 할인 도메인 설계
주문 도메인 전체

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

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


원하는 구현체를 골라서 사용할 수 있다.
7. 주문과 할인 도메인 개발
할인 인터페이스 DiscountPolicy
정액 할인 구현체 FixDiscountPolicy
주문 엔티티 Order
주문 서비스 인터페이스 OrderService
주문 서비스 구현체 OrderServiceImpl
8. 주문과 할인 도메인 실행과 테스트
Beta Was this translation helpful? Give feedback.
All reactions