솔직히 말하면 얼마 전까지만 해도 AI 활용이라고 하면 그냥 GPT 창 열고 파일 통째로 복붙해서 "이거 수정해줘" 하는 수준이었다.
결과물이 나오면 그냥 쓰고, 이상하면 다시 붙여넣고. 딱히 시스템이라고 부를 것도 없었다.
그러다가 Xcode 내에 Claude 에이전트를 도입하고 나서 나름 정형화된..? 워크플로우가 생겨서 이를 정리해보려 한다.
처음에는 Xcode 내 Claude한테 뭔가 시킬 때마다 이런 설명을 해야 했다.
"우리 프로젝트는 Clean Architecture 쓰고, ViewModel에 UIKit 넣으면 안 되고, Mock은 여기 폴더에 두고, 네이밍은 MockXXX 방식으로"
매번 이걸 설명하기가 귀찮아서 먼저 CLAUDE.md 를 만들었다.
해당 파일은 Claude Code가 프로젝트를 열 때 자동으로 읽는 규칙 파일이다.
여기에 아키텍처 규칙, 네이밍 컨벤션, 테스트 규칙을 써두면 매번 설명 안 해도 그 기준으로 동작한다.
내가 작성한 건 이런 내용이다.
# Project Conventions
- Architecture: Clean Architecture + MVVM-C
- Layer dependency: ViewModel → UseCase → Repository → LocalStorage / NetworkService (역방향 금지)
- ViewModel에 UIKit/SwiftUI import 금지 (Testable Architecture 유지)
- 단일 표현식 computed property에서 return 생략
- Combine은 Data 레이어 스트림용, UI 바인딩용으로 유지
- async/await은 네트워크, UseCase 호출에 사용
- 파일당 하나의 타입 원칙
- Assembly는 레이어별 분리 (DataAssembly, RepositoryAssembly, UseCaseAssembly)
- MARK 주석: Properties, UI Components, Initializer, Life Cycle 등 구분
# Test Conventions
- XCTest 기반
- Mock 네이밍: MockXXX (예: MockTransferUseCase)
- Mock 위치: TestProjectTests/Mock/ 하위
- Mock은 프로토콜 기반으로 작성
- 테스트 구조: given / when / then 주석으로 구분
# Build & Test
- xcodebuild test -destination 'platform=iOS Simulator,name=iPhone 17 Pro,OS=26.2'
- Deployment target: iOS 26.2
이렇게 파일을 만들어두면 매번 우리 프로젝트의 구조라던가 네이밍에 대해 설명을 따로 할 필요가 없다.
CLAUDE.md 만들고 테스트 코드도 자동 생성해보니까 꽤 잘 나왔다. 근데 쓰다 보니 한 가지 느낀 게 있었다. Xcode Claude는 내 프로젝트를 너무 잘 안다. 기존 코드 스타일, 기존 구조에 맞춰서 제안하다 보니 어딘가 타협하는 느낌이 들었다.
반면 Claude.ai는 내 프로젝트를 모르기 때문에 "이 구조가 이상하다", "이 부분은 수정하는게 좋을 것 같다" 라는 새로운 시각의 피드백이 나오기도 한다.
컨텍스트가 없다는 게 단점이 아니라 오히려 장점이 될 수도 있겠다 싶어서 다음과 같은 워크 플로우를 채택하게 되었다.
AI끼리 대화하게 하기
Xcode Claude (실행) → 결과물 생성
↓
내가 판단
↓
Claude.ai (검토) → 외부 시각으로 피드백
↓
내가 판단
↓
Xcode Claude (반영)
이렇게 할 경우,
프로젝트 컨텍스트 없이 결과물만 보는 외부 시각에서 피드백이 온다.
물론 외부 피드백이 틀리고 내부 코드가 더 적합한 경우도 있지만 그 반대의 경우도 있었다. 어찌보면 리뷰를 한명이 아닌 두명한테 받는 느낌이라 좀 더 정교하고 클린한 코드가 완성되는 경향이 있던 것 같다.
정리하자면 역할 분리는 다음과 같다.
- Xcode Claude: 프로젝트 컨텍스트 보유, 실제 코드 생성·수정 담당
- Claude.ai: 컨텍스트 없는 외부 리뷰어, 결과물 검증 담당
정리
| CLAUDE.md | 프로젝트 컨텍스트 내재화 |
| Xcode Claude | 코드 생성·수정 실행 |
| Claude.ai | 외부 시각 검증·피드백 |
| GitHub Actions | PR 단위 자동 리뷰 |
아직 완성된 시스템은 아니다. PR 리뷰 프롬프트도 고도화 중이고, 이 워크플로우도 계속 바뀌고 있다.
근데 AI 어떻게 써요 라는 질문에 기존에는 "챗지피티한테 물어봐요" 라는 대답 대신 나름의 워크플로우에 대한 대답을 할 수 있게 된게 가장 큰 성과인 것 같다.
'iOS 개발' 카테고리의 다른 글
| [iOS 개발] Claude Code 도입 (0) | 2026.03.13 |
|---|---|
| [iOS 개발] GitHub Actions + Claude API로 PR 자동 코드 리뷰 파이프라인 구축 (0) | 2026.03.04 |
| [iOS 개발] 유니버셜 링크 ASAA 파일 관련 내용 정리 (0) | 2026.03.04 |
| [iOS개발] Swift Concurrency async, throw 관련 테스트 정리 (4) | 2026.01.08 |
| [iOS 개발] 프로젝트 구조 개선 (0) | 2025.12.31 |