오봉이와 함께하는 개발 블로그

Spring - 이해를 위해 순수 Java로 작성하는 예제(1) (스프링 핵심 원리 이해1 예제 만들기) 본문

BE/Spring

Spring - 이해를 위해 순수 Java로 작성하는 예제(1) (스프링 핵심 원리 이해1 예제 만들기)

오봉봉이 2022. 5. 30. 23:42
728x90

비즈니스 요구사항

  • 회원
    • 가입할 수 있고 조회할 수 있다
    • 일반, VIP 등급이 있다
    • 회원 데이터는 자체 DB를 구축할 수, 외부 시스템과 연동할 수 있다(미확정)
  • 주문과 할인 정책
    • 회원은 상품 주문 가능
    • 등급에 따라 할인 정책 적용 가능
    • 할인 정책은 모든 VIP는 1000원 할인(변경될 수 있다)
    • 할인 정책은 변경 가능성이 높음
요구사항에서 회원 데이터, 할인 정책 같은 기능은 결정이 안 되었는데 결정될 때 까지 개발을 미룰 수 없기에 객체 지향 설계 방법으로 개발을 해보자.

인터페이스를 만들고 구현체를 갈아끼울 수 있도록 설계하자!

회원 도메인

  • 요구사항
    • 회원 가입 가능, 조회 가능
    • 일반과 VIP 등급으로 나뉨
    • 회원 데이터는 자체 DB를 구축할 수, 외부 시스템과 연동할 수 있다(미확정)

회원 도메인 협력 관계

  • 회원 저장소의 구현은 세 가지로 나눠서 개발
    • 회원 데이터를 어떻게 할지 확정이 되지 않았기 때문
  • 메모리 회원 저장소
    • 임시로 만들어 개발할 때 사용할 저장소
    • 테스트할 때, 로컬에서 개발할 때 사용
    • DB 회원 저장소나 외부 시스템 연동 회원 저장소 중 하나로 확정되면 교체 대상

회원 클래스 다이어그램

  • MemberService는 인터페이스, MemberServiceImpl은 MemberService의 구현체(Impl = 구현)
  • MemberRepository는 인터페이스
    • MemoryMemberRepository(구현체)
    • DbMemberRepository(구현체)

회원 객체 다이어그램

  • 객체간 참조 관계를 표현한 다이어그램
  • 회원 서비스 = MemberServiceImpl
출처 : 인프런 김영한 지식공유자님의 스프링 완전 정복 로드맵 강의
728x90
Comments