-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
posts/clean-architecture-hexagonal-architecture-with-nestjs #25
Comments
헥사고날 아키텍처를 Nestjs 에서 사용해보고자 했는데, 참고하기 아주 좋은 자료가 될 것 같습니다. 내용 중 궁금한 부분이 있습니다.
이러면 실제로 의존하는 것은 아니긴 하나, 이름이 UserServicePort라고 되어 있고 UserService에서 사용하는 모든 method 형태가 들어가다보니, 논리적으로 떨어져 있다고 보기는 좀 어려워 보입니다. UseCase를 더 세분화 하는 절차가 있으면 좋겠다는 생각이 들었는데, Typescript를 제가 정확하게 몰라서, 해당 방법이 불가능한 것인지가 궁금합니다.
|
애매하게 적은 것 같아 다시 적습니다. 이전 구현 시에서는 Kotlin으로 구현해서 가능했는데 아직 Typescript에 능숙하지 않아서 가능한지 여부가 궁금했습니다 :) |
안녕하세요. 게시글을 관리하지 않아 댓글을 늦게 확인하였습니다.. 먼저 질문 주신 부분에 답변을 드리자면 1. UserServicePort를 추상 클래스로 In Port로 두고, UserService를 추상클래스를 구현하도록 되어 있습니다. .... "요청별로 나뉘고"의 의미를 API별로 각각 InPort를 구성하고, UserService에서 모두 구현할 수 있는지로 이해했는데요. 당장 TypeScript에서 구현 방법은 떠오르지 않습니다. 글 작성 당시 In Port(UserServicePort)마다 Use Case(UserService)를 구현하려고 생각했었기에 고려하지 못한 방식입니다. 2. use-case Directory가 있는데 해당 디렉토리는 어떤 구조로 되어있고, 어떤 역할을 하나요? Service 파일들이 존재하며, 본문에도 있듯 아래와 같은 역할을 합니다.
지금에서야 드는 생각이지만... 애플리케이션이 복잡해 짐에 따라, 이를 아키텍처 패턴으로 대응하고자 했습니다. 다만, 요즘은 여러 서버와 작은 애플리케이션으로 분리하는 추세고, 단순하고 명확한게 좋다고 생각을 합니다. 현업에서도 프레임워크(Spring, NestJS)에서 제공하는 구조를 유지하며, 복잡성을 늘리지 않으려고 하고 있습니다. (저희 조직에서는 그렇게 생각합니다.) 궁금증이 해소 되셨을 지 모르겠지만, 화이팅입니다. 감사합니다. |
클린 아키텍처(헥사고날 아키텍처) 알아보기 with NestJS - 문준호의 기술 블로그
아키텍처 패턴 중 하나이기에 주관적이며 애매합니다. 이런 애매한 부분들을 추구하는 원칙에 벗어나지 않는 선에서, 저만의 기준을 세워 정리하고 구현하였음을 참고해 주세요.
https://junho2343.github.io/posts/clean-architecture-hexagonal-architecture-with-nestjs
The text was updated successfully, but these errors were encountered: