들어가며 제가 속한 파트너셀프서비스팀은 코딩 컨벤션을 사내 위키 문서와 AI 에이전트가 참조할 수 있는 규칙 문서에 정의해놓고 개발하고 있습니다. 하지만 그 규칙을 잘 지키고 있는지 확인하는 방법이 코드 리뷰뿐이었다는 점이 문제였습니다. 문서에 있는 규칙은 팀원들이 의식적으로 인지해서 코드를 작성하거나 리뷰를 받는 과정에서 반영해야 했습니다. AI 에이전트를 이용해 규칙을 주입하더라도 세션별 컨텍스트에 따라 규칙을 위반하는 경우가 있었습니다. 저희 팀은 헥사고날 아키텍처를 실용적으로 변형한 형태로 사용하고 있습니다. 인바운드 포트(유스케이스 인터페이스)를 별도로 두지 않고 웹계층이 도메인(domain) 모듈의 서비스(*Service)를 직접 호출한다는 점에서 교과서적 헥사고날 아키텍처와는 조금 다릅니다. 대신 아웃포트(outport) 쪽 구조는 그대로 차용해서 외부 의존을 역전시켰습니다. 실제 구현은 아웃바운드 어댑터(infra·external)에 두고 아웃포트(outport)에 구현체를 제공하도록 했습니다. 외부 API와 캐시 연동이 많고 자주 바뀌는 팀 특성상 외부의 변화가 핵심 비즈니스 로직(domain)까지 번지지 않게 하기 위해서입니다. 덕분에 도메인은 외부 API와 독립적으로 유지되고, 테스트하기도 수월해집니다. 이 구조를 지키기 위한 팀 규칙은 .claude/rules/에 문서로 정리돼 있습니다. 아키텍처(레이어 의존) 규칙뿐 아니라 네이밍, 코딩 스타일, 테스트 코드, 예외, 로깅, 커밋 규칙 등 개발 전반의 컨벤션이 있습니다. 팀 내 규칙 파일 architecture.mdc 파일 예시 이 글은 아키텍처, 코딩 스타일 등의 팀 규칙을 아크유닛(ArchUnit)이라는 도구를 사용해 테스트 코드로 강제한 과정을 다룹니다. 아크유닛(ArchUnit)을 들어는 봤지만 직접 써본 적은 없는 분, "우리 팀에도 적용해볼까" 고민하는 분을 위한 글입니다. 특히 다음 다섯 가지 질문 위주로 작성했습니다. 적용하면 뭐가 좋나요? 어떻게 적용하나요? 시행착오는 없었나요? 적용 전/후 무엇이 달라졌나요? 주의사항은 없나요? 개발 환경: Java 11, Gradle 6.8, Spring Boot 2.4.5, Lombok 1.18.20, ArchUnit 1.3.0, JUnit 5.7.2 아크유닛(ArchUnit)으로 살아있는 규칙 만들기 1. 적용하면 좋은점 문서가 아닌 코드 레벨에서 규칙을 강제할 수 있습니다. 아키텍...
문서로만 지키던 아키텍처 규칙, 테스트 코드로 강제하기
Related
Show GN: PolyView - 폴리마켓 공개 데이터를 한국어로 보는 한국 폴리마켓 뷰어
2 hours ago
1
우리 서버가 계속 운영될 수 있도록 도와주세요
2 hours ago
1
Show GN: yukari-rubi : 일본어 사이트 한자 히라가나 브라우저 확장기능
3 hours ago
0
2. Beyond Our Expertise
4 hours ago
1
1. Creating a Role That Didn’t Exist Before
4 hours ago
1
How Documents Find Developers at Toss
4 hours ago
1
Show GN: VIBE-GAME ( AI 에게 일 시키고 기다리면서 하기에 좋은 게임 )
8 hours ago
0
이질적인 지성
9 hours ago
1
Tips
click
Popular
[팟캐스트] OAuth, 제대로 이해하고 쓰고 있나요?
2 weeks ago
76
고철
2 weeks ago
70
연상호, 토론토영화제서 고레에다 감독과 대담
2 weeks ago
64
LinkedIn CringeBot 3000
3 weeks ago
59
취준생 목소리에 귀기울인 '라이너 라이트'..."자소서 기능 이용자 수 13배 늘...
2 weeks ago
58
김재윤 통산 220세이브…삼성, 2연패 탈출
2 weeks ago
57
‘붉은사막’, 게임스컴 어워드 에픽·최고의 PC 게임 후보작 올라
1 week ago
56
잔나비, 첫 아시아 투어 곳곳서 떼창 물결…"기적같은 일"
2 weeks ago
56
© Clint IT 2026. All rights are reserved










English (US) ·