더북(TheBook)

4.3.1 예제: MessageSender 서비스 분리하기

피플그로우!의 MessageSender 서비스를 살펴보자. 이 서비스는 세 클래스에 의존한다.

UserDirectory: 사용자 디렉터리와 통신해서 이메일에서 사용자 ID를 가져온다.

Bot: 회사의 내부 채팅 시스템을 통해 사용자에게 메시지를 보낸다.

MessageRepository: 특정 시간에 전송해야 할 메시지를 읽어온다.

이제 사용자가 이메일을 선호할 경우, 메시지를 이메일로 전송하라는 새로운 요청이 들어왔다고 가정해보자. 기존의 EmailSender 클래스를 찾아 이를 네 번째 의존성으로 추가한다. 그리고 사용자 선호도를 가져오는 UserPreferences라는 다섯 번째 의존성도 추가한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.