Xcode에서 claude를 내장하고, 추가로 PR을 날릴때도 AI를 활용해보면 좋을 것 같아 PR에 AI리뷰를 도입해보기로 했다.
gitLab에는 토큰 권한이 없어서 github에 해당 방식을 구현해보기로 했다
일단 이루고자 하는 목적은 다음과 같다.
• PR에 메모리 누수, retain cycle 같은 이슈를 자동으로 잡아주는 리뷰어가 있으면 좋겠다
• AI API를 활용해 Swift 코드 변경사항을 자동 분석하는 GitHub Actions 워크플로우 구축
최종 아키텍처
• 트리거: PR 생성/업데이트 시 .swift 파일 변경 감지
• diff + 변경 파일 전체 소스 수집 → Claude API 호출 → PR 리뷰 코멘트 자동 게시
• 최종 yml 전문 포함
구축 과정에서 만난 문제들
| 항목 | 발생 문제 | 원인 분석 | 해결 방법 |
| Diff 탐지 실패 | 워크플로우가 0초 만에 종료됨 | 하위 디렉토리 내 .swift 파일 매칭 실패 | 파일 경로 패턴을 **/*.swift로 확장하여 재설정 |
| 데이터 전달 오류 | GITHUB_OUTPUT의 특수문자 깨짐 | 쉘 변수 할당 과정에서의 이스케이프 문제 | 임시 파일 저장 방식(fs.readFileSync)으로 데이터 전달 안정화 |
| API 연동 실패 | 404 및 400 에러 발생 | 존재하지 않는 모델 ID 호출 및 크레딧 부족 | 최신 모델명(claude-sonnet-4-20250514) 적용 및 API 유료 크레딧 충전 |
| API 400 에러 | credit balance too low | 크레딧 미충전 상태 | API 크레딧 $5 구매 |
Anthropic API 사용 시 주의사항
• Max 구독 ≠ API 크레딧: claude.ai 구독과 API는 별개 과금
• 모델 접근 권한: 크레딧이 있어도 Organization의 tier에 따라 접근 가능한 모델이 다름
• 모델 ID 정확히 확인: claude-3-haiku-20240307(구 모델)은 접근 불가, claude-sonnet-4-20250514 사용
프롬프트 설계
• 전체 소스코드 컨텍스트를 함께 제공하는 이유
• 검출 항목 명시: 메모리 누수, 스레드 안전성, 버그, 성능
• 출력 형식 지정 (Markdown 테이블)
결과

AI 코드 리뷰에 대해서 이야기를 듣긴 했는데 실제로 실행에 옮겨볼 생각은 하지 않았는데, 막상 해보니 어짜피 AI가 다 도와줘서 그렇게 어렵진 않았던 것 같다.
진짜 이제 단순 구현 능력보다는 AI에게 정확한 맥락을 전달하고, 전체적인 아키텍처를 판별해서 AI에게 전달받은 코드를 조립하는 역량이 더 중요한 것 같긴 하다.
'iOS 개발' 카테고리의 다른 글
| [iOS 개발] Claude Code 도입 (0) | 2026.03.13 |
|---|---|
| [iOS개발] CLAUDE AI 활용법 정리 (0) | 2026.03.10 |
| [iOS 개발] 유니버셜 링크 ASAA 파일 관련 내용 정리 (0) | 2026.03.04 |
| [iOS개발] Swift Concurrency async, throw 관련 테스트 정리 (4) | 2026.01.08 |
| [iOS 개발] 프로젝트 구조 개선 (0) | 2025.12.31 |