-🛠️ 나모는 이런 기술을 사용했어요 - For Code - For Infra
V1
[ Facade 패턴을 통한 클린 아키택쳐 구현을 노력했습니다.. ]
- 초록: 외부와 연결되는 레이어
- 빨강: 비지니스 로직을 다루는 레이어
- 노랑: 도메인 레이어
[ 참조의 방향은 항상 화살표 방향을 따릅니다. ]
- 코드의 의존성에 규칙을 두어 코드의 결합도가 올라가지 않도록합니다.
- 특히 Facade와 Converter의 사용을 통해 API 인터페이스와 내부 로직을 철저히 분리합니다.
v2
[ usecase와 ManageService를 도입했습니다. ]
- 기존 Facade의 많은 의존성이 걸리며 유지보수가 힘들어져 새로운 방법을 도입했습니다.
- manageService가 인력사무소의 관리 소장과 같은 역할을 합니다.
- 각 Usecase에서 각 액션에 대한 행동들을 조합해 사용합니다.
Continue.... 아직 완전한 클린 아키텍처가 되지 못해 한계를 느끼고 계속 더 나은 설계를 하기위해 노력하고 있습니다.
- application: 모듈은 외부에 제공되는 API와 관련된 기능을 제공한다.
- clients: 모듈은 프로젝트 외부 서비스의 API를 호출하는 기능을 제공한다.
- storage: 모듈은 데이터베이스와 관련된 기능을 제공한다.
- core: 다양한 모듈에서 공통적으로 사용되는 기능을 제공한다.
- support: 모듈은 프로젝트에 독립적으로 사용될 수 있는 기능을 제공한다.