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

메모리 회원 저장소, DB 회원 저장소, 외부시스템 연동 회원 저장소를 선택하여 회원저장소에 낄 수 있다.
- 회원 클래스 다이어그램

다이어그램
- 회원 객체 다이어그램

객체간의 참조를 보여주는 객체 다이어그램
회원 도메인 개발
- Grade.class

Member 등급
- Member.class
-
public class Member { private Long id; private String name; private Grade grade; public Member(Long id, String name, Grade grade) { this.id = id; this.name = name; this.grade = grade; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Grade getGrade() { return grade; } public void setGrade(Grade grade) { this.grade = grade; } }
-
- MemberRepository, MemoryMemberRepository

인터페이스로 구현하여 후에 구현체만 갈아 끼운다 
Memory를 사용한다는 가정하에 구현
- MemberService, MemberServiceImpl

인터페이스로 구현한다. 
memberServiceImpl을 구현
회원 도메인 실행과 테스트
- MemberApp(순수한 자바 코드)

순수 자바코드로 자동화테스트를 하기 힘들기 때문에 Junit을 사용한다.
- MemberServiceTest

MemberService 테스트(JUnit)
- 회원 도메인 설계의 문제점
- 이 코드의 설계상 문제점은 무엇일까요?
- 다른 저장소로 변경할 때 OCP 원칙을 잘 준수할까요?
- DIP를 잘 지키고 있을까요?
- 의존관계가 인터페이스 뿐만 아니라 구현까지 모두 의존하는 문제점이 있음
- 주문까지 만들고나서 문제점과 해결 방안을 설명
728x90
'스프링 핵심 원리(기본편)' 카테고리의 다른 글
| Ch03. 스프링 핵심 원리 이해(객체 지향 원리 적용) - 새로운 할인 정책 개발 (0) | 2022.02.16 |
|---|---|
| Ch02. 스프링 핵심 원리 이해(예제 만들기) - 주문과 할인 도메인 설계 (0) | 2022.02.15 |
| Ch02. 스프링 핵심 원리 이해(예제 만들기) - 비즈니스 요구사항과 설계 (0) | 2022.02.15 |
| Ch02. 스프링 핵심 원리 이해(예제 만들기) - 프로젝트 생성 (0) | 2022.02.15 |
| Ch01. 객체 지향 설계와 스프링 - 객체 지향 설계와 스프링 (0) | 2022.02.14 |