DDD, 클린아키텍쳐기반으로 설계를 하다보면, UseCase와 Service를 동일시 보고, 하나 개념으로 합치고 싶은 욕망이 들때가 있다.
책이나, 블로그등에 따르면 뭔가 잘못된 생각같고, 찜찜하고 아닌것같은 생각을 하고, 잠시 욕망을 접었던 기억이 많다.
대부분 책에서는 어플리케이션 레이어에서의 UseCase를 '행위의 정의'로 보고, Service는 이런 UseCase들을 이용한 '퍼사드 개념'으로 본다.
그런데, 이론은 그렇다고 해도, 일반적인 서비스에서 저렇게 UseCase와 퍼사드 Service로 나뉘는 경우가 많을까? 의구심이 든다.
그리고 Service를 UseCase의 정의대로 구현하면 (UserGetService, UserLoginService등),
행위의 정의와 퍼사드 개념을 펄쳐서 구현을 하는건 크게 문제가 없어보이긴한다.
다만 여기서 중요한건, UserGetService, UserLoginService은 원래의 UserService개념보다 좀더 큰 퍼사드 개념이 되야 하겠다.
UseCase가 엄청나게 많이 존재하고, 그것들을 이용하는 퍼사드 Service클래스가 존재해야하는 정도의 서비스를 경험하기란 힘들기 때문이다. 하물며 요즘은 MSA아키텍처를 많이 사용하기에 그런 개념 또한 더 작게 쪼개지는 트랜드여서, 더더욱 그렇다.
엄청나게 복잡하고 큰 서비스가 아니라면,
그냥 맘편히, 어느정도는 UseCase와 Service를 같은 개념으로 보고,
동일시하여 구현을 하는것도 시스템의 복잡도를 줄일수있는 하나의 선택이라고 생각이 든다.
공자 슨생님은 40살을 '불혹'이라 하였다.
'갈팡질팡하지않고, 내뜻대로 중심을 잡아 판단해도 틀리지 않을 나이'라고 했다.
그냥 밀고 나간다...(40살 넘었으니...ㅠ)
근데..틀리면 어쩌지...ㅋ
'MY개발생각' 카테고리의 다른 글
| [개발생각] 우수한 개발 집단이란? (0) | 2026.03.04 |
|---|---|
| [개발생각] Webview앱 vs Native앱 (0) | 2026.03.03 |
| [개발생각] Test코드 작성시, Fixture의 관리에 대해서 (0) | 2026.02.18 |
| [개발생각] 익숙치않은 개발(론)에 팀원들을 적응시키는 방법에 대해서 (0) | 2026.02.13 |
| [개발생각] SOLID원칙에서 I의 경험에 대해서 (0) | 2026.02.13 |
