hexagonal-architecturecommit d29cf65SKILL.md · 아키텍처 설계
헥사고날 아키텍처
포트와 어댑터 구조로 시스템을 설계·구현·리팩터링해 비즈니스 로직을 프레임워크, 전송, 영속성 세부사항에서 분리합니다.
npx skills add affaan-m/ECC --skill hexagonal-architecture명령을 선택했습니다. 직접 복사하세요.
- 권한
- read-repo
- write-files
- shell
- network
- 호환 도구
- Claude Code, Codex, Cursor, Copilot, OpenCode
- GitHub
- 294.3k
- 출처
- 커뮤니티 · Affaan Mustafa
- 상태
- 스캔 통과
- 라이선스
- MIT
- 카테고리
- 아키텍처 설계
핵심 규칙
의존 방향은 항상 안쪽이며, 도메인은 외부에 의존하지 않고 어댑터가 가장자리에서 포트를 구현합니다.
실행 단계
01단계유스케이스 경계
하나의 유스케이스에 명확한 입출력 DTO 를 정하고, req 나 GraphQL context 같은 전송 세부사항은 경계 밖에 둡니다.
02단계아웃바운드 포트 먼저
영속성, 외부 호출, 로깅, 시계 등 모든 부수 효과를 포트로 모델링하며, 포트는 기술이 아니라 능력을 나타냅니다.
03단계유스케이스 구현
유스케이스는 생성자나 인자로 포트를 받아 불변식 검증, 도메인 규칙 조정, 단순 데이터 반환만 담당합니다.
04단계어댑터와 조립
가장자리에 인바운드·아웃바운드 어댑터를 구현해 매핑을 그 안에 두고, 의존성 조립은 하나의 컴포지션 루트에 모읍니다.
05단계경계별 테스트
유스케이스는 가짜 포트로 단위 테스트하고 어댑터는 실제 인프라로 통합 테스트합니다. 기존 시스템은 한 번에 갈아엎지 않고 조각 단위로 옮깁니다.
권한 설명 (SKILL.md 기준)
| 기능 | 필요 여부 | 설명 |
|---|---|---|
| 파일 쓰기 | 필요 | 도메인, 유스케이스, 포트, 어댑터, 컴포지션 루트, 테스트 코드를 만들거나 리팩터링합니다. |
| 명령 실행 | 필요 없음 | 명령 실행을 요구하지 않습니다. |
| 네트워크 송신 | 필요 없음 | 네트워크에 접근하지 않습니다. |
SKILL.md 프런트매터(YAML)
---
name: hexagonal-architecture
description: Design, implement, and refactor Ports & Adapters systems with clear domain boundaries, dependency inversion, and testable use-case orchestration across TypeScript, Java, Kotlin, and Go services. Use when introducing or refactoring toward Ports and Adapters, or when domain logic has become entangled with I/O.
metadata:
origin: ECC
---관련 스킬
규칙 스캔으로 모든 위험을 찾을 수는 없습니다. 설치 전에 이 스킬의 SKILL.md를 읽고 권한을 확인하세요.