Compose 아키텍처 계약
Jetpack Compose / Compose Multiplatform 앱의 모듈 구조, MVI, 에러 처리 규칙을 강제하는 아키텍처 가드레일 스킬.
개발·코딩고급★ 300⑂ 25AI 점수 9/10마지막 업데이트: 2026. 10. 2.
무엇을 해주나
Claude가 Compose·Compose Multiplatform 코드를 작성하거나 리뷰할 때 따라야 할 '집안 규칙'을 정의합니다.
- 모듈 그래프:
:feature:*→:data:*/:core:*단방향 의존, 피처 간 직접 참조 금지 - MVI 계약: 모든 ViewModel은
BaseViewModel<Action, State, Effect>상속,Contract.kt에는UiState/UiAction/UiEffect만 - 에러 티어: 첫 로딩 실패는 인라인+재시도, 새로고침 실패는 팝업, 백그라운드 폴링만 무음 — 상황별 단일 티어 강제
- 상태 소유권: 상태마다 단일 소유자,
rememberSaveable미러 금지, 입력 초안은SavedStateHandle - DI·내비게이션: Koin 어노테이션 방식, Navigation 3 전용
NavKey규칙 - 검증 체크리스트:
run-checks.sh통과, 컴파일/테스트, 금지 패턴 자가 점검
또한 "이럴 때는 쓰지 말 것" 표로 화면 추가(compose-feature), 컴포저블 작업(compose-ui), 데이터 레이어(compose-data) 등 역할 분담을 분명히 합니다.
이런 분께 추천
- Jetpack Compose 또는 KMP 기반 앱을 멀티모듈로 운영하는 팀
- AI가 만든 코드가 매번 다른 패턴으로 흘러가는 것을 막고 싶은 테크리드
- MVI + Koin + Navigation 3 스택을 표준으로 쓰고 있는 프로젝트
활용 예시
- 새 ViewModel을 추가할 때 —
launchGuarded(onError = …)기반 비동기 처리와 단일onAction진입점을 갖춘 코드가 생성됩니다. - PR 리뷰 요청 시 — 피처 간 import,
try/catch직접 사용,Result래퍼, 에러 티어 혼용을 블로킹 항목으로 지적합니다. - "기존 MVVM 피처에 MVI 화면 하나만 끼워 넣어 달라"는 요청 시 — 먼저 거절 이유를 한 문장으로 밝히고 기존 패턴으로 구현한 뒤 마이그레이션을 별도 제안합니다.
· · · 설치 가이드 · · ·
설치 없이 지금 한 번 써보기
아래를 Claude에 붙여넣으면 설치하지 않고도 이 스킬을 그대로 씁니다.
이 파일의 지시를 읽고 그대로 따라서 나를 도와줘: https://raw.githubusercontent.com/Meet-Miyani/compose-skill/HEAD/skills/compose-architecture/SKILL.md 내가 원하는 것: (여기에 하고 싶은 일을 쓰세요)
Claude가 링크를 열지 못하면, 링크를 직접 열어 내용을 복사해 붙여넣으세요.
↓ 쓸 만하면 아래에서 ZIP을 받아 설치하세요. 그러면 매번 붙여넣지 않아도 알아서 작동합니다.
Claude 앱에 설치 (터미널 필요 없음)
- 아래 버튼으로 ZIP 파일을 받으세요.
- Claude 설정 → Capabilities에서 '코드 실행 및 파일 생성'을 켭니다. (한 번만)
- Claude에서 Customize → Skills → + → '스킬 업로드'를 누르고 받은 ZIP을 올립니다.
Claude Code에 설치
Claude에게 맡기기 — 아래 문장을 Claude Code에 붙여넣으세요
클로드스킬마트에서 찾은 스킬을 설치해줘. GitHub 저장소 Meet-Miyani/compose-skill 의 skills/compose-architecture 폴더를 내 ~/.claude/skills/compose-architecture/ 에 그대로 복사해줘. 설치가 끝나면 이 스킬로 무엇을 할 수 있는지 한 줄로 알려줘.
직접 명령으로 설치하기
git clone https://github.com/Meet-Miyani/compose-skill.git /tmp/compose-skill && mkdir -p ~/.claude/skills && cp -r /tmp/compose-skill/skills/* ~/.claude/skills/⚠ 제3자가 만든 스킬입니다. 설치 전 원본 저장소를 한 번 확인하세요.
- 터미널을 엽니다.
- 저장소를 받습니다:
git clone https://github.com/Meet-Miyani/compose-skill.git - 스킬 폴더를 만듭니다:
mkdir -p ~/.claude/skills - 스킬을 복사합니다:
cp -r compose-skill/skills/* ~/.claude/skills/(이 스킬은 진입점compose및compose-feature,compose-ui등 형제 스킬과 함께 동작하므로 전체 복사를 권장합니다) references/와templates/core/폴더가 함께 복사되었는지 확인합니다.- Claude Code를 재시작하고 "Compose 아키텍처 규칙에 맞게 이 ViewModel을 리뷰해줘"처럼 요청해 동작을 확인합니다.
GitHub에서 원본 보기 ↗라이선스: MIT