오봉이와 함께하는 개발 블로그
Spring - 이해를 위해 순수 Java로 작성하는 예제(1) (스프링 핵심 원리 이해1 예제 만들기) 본문
728x90
비즈니스 요구사항
- 회원
- 가입할 수 있고 조회할 수 있다
- 일반, VIP 등급이 있다
- 회원 데이터는 자체 DB를 구축할 수, 외부 시스템과 연동할 수 있다(미확정)
- 주문과 할인 정책
- 회원은 상품 주문 가능
- 등급에 따라 할인 정책 적용 가능
- 할인 정책은 모든 VIP는 1000원 할인(변경될 수 있다)
- 할인 정책은 변경 가능성이 높음
요구사항에서 회원 데이터, 할인 정책 같은 기능은 결정이 안 되었는데 결정될 때 까지 개발을 미룰 수 없기에 객체 지향 설계 방법으로 개발을 해보자.
인터페이스를 만들고 구현체를 갈아끼울 수 있도록 설계하자!
회원 도메인
- 요구사항
- 회원 가입 가능, 조회 가능
- 일반과 VIP 등급으로 나뉨
- 회원 데이터는 자체 DB를 구축할 수, 외부 시스템과 연동할 수 있다(미확정)
회원 도메인 협력 관계
- 회원 저장소의 구현은 세 가지로 나눠서 개발
- 회원 데이터를 어떻게 할지 확정이 되지 않았기 때문
- 메모리 회원 저장소
- 임시로 만들어 개발할 때 사용할 저장소
- 테스트할 때, 로컬에서 개발할 때 사용
- DB 회원 저장소나 외부 시스템 연동 회원 저장소 중 하나로 확정되면 교체 대상
회원 클래스 다이어그램
- MemberService는 인터페이스, MemberServiceImpl은 MemberService의 구현체(Impl = 구현)
- MemberRepository는 인터페이스
- MemoryMemberRepository(구현체)
- DbMemberRepository(구현체)
회원 객체 다이어그램
- 객체간 참조 관계를 표현한 다이어그램
- 회원 서비스 = MemberServiceImpl
출처 : 인프런 김영한 지식공유자님의 스프링 완전 정복 로드맵 강의
728x90
'BE > Spring' 카테고리의 다른 글
Spring - 이해를 위해 순수 Java로 작성하는 예제(3)(스프링 핵심 원리 이해1 예제 만들기) (0) | 2022.05.31 |
---|---|
Spring - 이해를 위해 순수 Java로 작성하는 예제(2)(스프링 핵심 원리 이해1 예제 만들기) (0) | 2022.05.30 |
Spring - Spring과 객체지향 (0) | 2022.05.27 |
Spring - 파일 업로드 / 파일 다운로드 (5) | 2022.01.12 |
Spring - SpringBoot 기초 (0) | 2022.01.12 |
Comments