Kim-Baek 개발자 이야기

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

개발/Spring

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

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

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

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

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

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

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

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

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

회원 객체 다이어그램

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

 


반응형
Comments