Kim-Baek 개발자 이야기

[스프링 핵심원리] 8. 회원 도메인 설계 본문

개발/Spring

[스프링 핵심원리] 8. 회원 도메인 설계

김백개발자 2021. 9. 28. 17:53
김영한님의 [스프링 핵심 원리] 강의를 정리하고, 내가 생각한 내용까지 정리하는 포스팅

이전에 요구사항을 확인했고, 이번에는 회원 도메인에 대해서 설계를 해보도록 하겠다.

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

회원 서비스는 이런 요구사항을 가지고 있었다. 

요구사항을 토대로 도메인 간 협력 관계를 그려보면 이렇게 나온다. 

클라이언트와 화원 서비스, 회원 저장소는 역할이라고 보면된다. 회원 저장소 역할은 이전에도 봤듯이 구현이 변경이 될 수 있어서, 실제 구현은 메모리 회원 저장소, DB 회원 저장소, 외부 시스템 연동 회원 저장소 세 개가 있다. 

이것을 구현 레벨, 즉 코드 레벨까지 보고 설계를 하면 이런 클래스 다이어그램이 그려진다. MemberService 라는 인터페이스가 있고, 이를 구현한 MemberServiceImpl 이 있다.

이는 MemberRepository 라는 역할에 의존을 하고 있다. 그리고 이 MemberRepository는 MemoryMemberRepository와 DbMemberRepository 라는 구현체를 갖는다.

회원 객체 다이어그램

마지막은 회원 객체 다이어그램이다. 이것은 실제 서비스가 서버에 올라갔을 경우에 객체간에 연관관계를 보여준다. 이렇게 설계가 끝났으니 다음부터는 이를 구현해보도록 하자.

 


Comments