먼저 회원 도메인을 설계를 합니다.
사용자가 사용하는 것들은 모두 도메인(Domain)이라고 합니다.
클라이언트가 회원 서비스를 호출을 합니다.
회원 서비스는 2가지 기능을 제공 합니다.
회원 저장소를 별도로 만듭니다.
회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다고 했으니, 회원 데이터에 접근할 수 있는 계층을 따로 만듭니다.
그렇게 해서 회원 저장소라는 인터페이스를 만듭니다.
클라이언트, 회원 서비스, 회원 저장소는 모두 역할입니다.
이 때 회원 저장소의 구현을 메모리 회원 저장소, DB 회원 저장소, 외부 시스템 연동 회원 저장소로 나눌겁니다.
셋 중에 하나로 구현체를 선택하면 되는 것입니다.
그런데 자체 디비도 선택이 안됐고, 외부 시스템 연동도 미확정입니다.
그래서 어떤 선택을 하냐면