inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

ArchUnit을 이용한 아키텍처 테스트

아키텍처 테스트에 대해 질문있습니다.

79

문동민

작성한 질문수 2

0

강의를 NestJS로 적용해 따라가고 있습니다. 마지막 “ArchUnit을 이용한 아키텍처 테스트” 파트에서 Node/NestJS 환경에서는 어떤 방식으로 아키텍처 규칙을 테스트/검증하는 것이 좋은지 궁금합니다.

자바에서는 ArchUnit으로 레이어 규칙, 패키지 의존성, 순환 참조 등을 명시적으로 검사할 수 있는데, Node 진영에서는 유사한 도구로 무엇을 추천하실까요? 제가 찾은 것은 “ts-arch”였고, 폴더/슬라이스 의존성, 사이클 검사를 지원하는 것으로 보입니다. 적용을 하다가 실패를 했는데, 다른 방법이 있다면 조언 부탁드립니다. 😭😭😭

java spring spring-boot jpa 리팩터링 ddd nestjs

답변 3

0

토비

오, 아래 AI 인턴이 답변을 준 몇 가지 도구가 있네요. 이것들로 한번 테스트 해보시면 되지 않을까 싶습니다.

ArchUnit이랑 가장 비슷한 걸로는 https://github.com/sverweij/dependency-cruiser 가 있다는 것도 찾았습니다. 제가 NestJS로 개발할 줄 몰라서 프로젝트를 만들어 직접 사용해볼 수는 없으니, 문동민 님께서 해보시고 어떤지 남겨주시면 좋겠네요.

0

토비

안녕하세요.

NestJS를 강의 예제를 따라 해보시는군요. 제가 NestJS를 잘 알지는 못하지만 그래도 NodeJS 기술과 생태계가 꽤 성숙했으니 아키텍처를 체크하는 도구가 있을 것 같기도 한데, 찾아보신 것으로는 잘 안 되시는군요. 음.. 주변에 수소문해서 NestJS를 잘 쓰는 개발자에게 한번 문의를 해보겠습니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 문동민님께서 “ArchUnit을 이용한 아키텍처 테스트”를 Node.js 및 NestJS 환경에서 수행하려고 하시는데, 이를 위해 어떤 도구를 사용하는 것이 좋을지 질문해 주셨습니다.

Node.js 및 TypeScript 환경에서는 Java의 ArchUnit과 유사한 도구로 특정 아키텍처 규칙을 테스트할 수 있습니다. 언급하신 “ts-arch”는 TypeScript에서 아키텍처 검증을 위해 많이 사용되는 도구 중 하나입니다. 이 도구는 폴더 및 모듈 간의 의존성, 사이클 검사를 지원하며, 이 외에도 몇 가지 추가적인 도구가 있습니다.

  1. madge: 이 도구는 의존성 그래프를 시각화하여 순환 의존성을 검사하는 데 유용합니다. 간단한 명령어로 의존성 상태를 시각적으로 파악할 수 있습니다. Madge GitHub Repository을 통해 설치하고 사용하는 방법을 참고할 수 있습니다.

  2. depcheck: 사용되지 않는 패키지가 프로젝트 내에 있는지 점검해주는 도구로, 간접적으로 아키텍처의 정리를 돕습니다. Depcheck GitHub Repository

  3. linaria: 타입 의존성이나 코드 스타일의 일관성을 검증하는 데 사용할 수 있습니다. 이는 주로 UI에 많이 사용되지만, 전반적인 코드베이스의 일관성을 확인하는 데도 도움이 됩니다.

언급하신 ts-arch의 경우, 공식 문서 및 GitHub 버그 트래커를 활용하여 적용상의 문제를 해결할 수 있는지 확인하는 것도 좋습니다. 새로운 도구를 검토하고 적용할 땐 공식 문서를 다시금 주의 깊게 살펴보는 것이 많이 도움이 됩니다.

아키텍처 테스트는 프로젝트의 복잡성을 효과적으로 관리하고, 변경이 발생할 때 부작용을 최소화하는 데 큰 역할을 합니다. 강의에서 배운 개념을 NestJS에서도 적용할 수 있도록 다양한 도구를 탐색해 보세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

테스트 관련 질문!

0

56

2

N+1 관련해서 질문있습니다.

0

97

3

도메인 모델에서 관계와 규칙을 구분하는 방법

0

85

2

헥사고날 아키텍처에서의 배치, 시큐리티, 비동기 이벤트 처리는 어떻게 하나요?

0

168

2

어댑터에서 도메인에 직접 의존하는 경우에 대해

0

159

2

Member 도메인이 PasswordEncoder를 받는 구조 질문 있습니다.

0

136

2

MemberService와 EmailSender 책임 분리에 대한 질문

0

121

2

NonNullApi를 NullMarked로 대체하라고 합니다.

0

155

2

39. 문서와 코드 다듬기 updateInfo 테스트 질문 있습니다.

0

92

2

Repository Adapter 설계에 대해 피드백을 부탁드립니다

0

121

2

헥사고날 part2 강의 출시 예정일 문의 드립니다.

0

280

2

PT 문의사항

0

114

1

초기 어플리케이션 구동 시 compose.yml 파싱 오류

0

164

2

애플리케이션의 JPA 리턴과 도메인 모델

0

141

2

애그리거트 루트의 하위 도메인들의 depth가 깊어질 때 문의

0

153

2

페이징 처리를 해야한다면 어떻게 해야할까요?

0

209

2

애그리거트의 repository

0

132

2

Domain Expert가 정확히 어떤 역할을 하는 사람인가요?

0

259

1

회원 애플리케이션 서비스 테스트 (1)

0

118

2

정적 팩토리 메서드 관련 질문드립니다!

0

116

2

spotbug + @NonNullApi 로만 Null 방어가 될까요?

0

140

2

required 포트에 관해서

0

99

2

혹시 다음 편은 언제쯤 오픈할까요?

0

179

2

서비스 단위 테스트 코드 작성

0

107

2