Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- Xcode
- HIG
- uitableview
- scrollview
- rxswift
- clean architecture
- 리팩토링
- Clean Code
- 클린 코드
- 애니메이션
- SWIFT
- ribs
- combine
- Observable
- uiscrollview
- map
- swiftUI
- 리펙토링
- swift documentation
- RxCocoa
- UICollectionView
- ios
- tableView
- Protocol
- 스위프트
- collectionview
- Refactoring
- MVVM
- UITextView
- Human interface guide
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[AI] 클로드코드 유용한 기능 (analyze, fix, explain, compact, call) 본문
유용한 기능
| 명령어 | 주요 목적 | 권장 사용 시점 |
| /analyze | 구조 파악 및 전략 수립 | 프로젝트 초기 진입, 대규모 변경 전 |
| /fix | 에러 해결 및 디버깅 | 빌드 에러 발생 시, 버그 리포트 접수 시 |
| /explain | 코드 이해 및 학습 | 모르는 로직 분석 시, 코드 리뷰 시 |
| /compact | 토큰 절약 및 성능 유지 | 대화가 너무 길어져 응답이 느려질 때 |
| /call | 전문 작업 위임 | 특정 규칙(Lint 등) 준수 여부 정밀 확인 시 |
/analyze (구조 파악 및 전략 수립)
프로젝트의 전체 아키텍처를 분석하여 개선 방향을 제시
- Swift 상황: MVC에서 MVVM으로 전환하거나, 새로운 프레임워크 도입 전 사용
- 에이전트 액션: Target, Dependency, Folder Structure를 스캔
ex)
// 에이전트의 분석 결과 예시 (Summary)
/*
[Analysis Result]
- Project: SwiftUIMovieApp
- Architecture: Heavy View (MVC-like)
- Issues:
1. ContentListView.swift 내부에 네트워킹 로직이 포함됨 (150라인)
2. 전역 싱글톤 NetworkManager 사용으로 테스트가 어려움
- Suggestion: ViewModel 도입 및 의존성 주입(DI) 패턴 적용 권장함
*/
/fix (에러 해결 및 디버깅)
빌드 에러나 런타임 크래시 로그를 바탕으로 코드를 즉시 수정함.
- Swift 상황: SwiftUI에서 @State 변경 시 발생하는 스레드 에러나 문법 오류 발생 시 사용
ex)
// 수정 전 (에러 발생: Mutable property cannot be settled in a view)
struct ProfileView: View {
var name: String = "Gim" // 빌드 에러 발생함
var body: some View {
Button("Change") { name = "Jong-gwon" }
}
}
// /fix 실행 후 에이전트가 수정한 코드
struct ProfileView: View {
@State private var name: String = "Gim" // @State 추가하여 해결함
var body: some View {
Button("Change") { name = "Jong-gwon" }
}
}
/explain (코드 이해 및 학습)
난해한 Combine 연산자나 복잡한 동시성 제어 코드를 설명함.
- Swift 상황: TaskGroup이나 AsyncSequence 등 복잡한 비동기 로직 분석 시 사용
// 분석 대상 코드
func fetchAllData() async throws -> [Data] {
try await withThrowingTaskGroup(of: Data.self) { group in
for url in urls {
group.addTask { try await fetchData(from: url) }
}
return try await group.reduce(into: []) { $0.append($1) }
}
}
/*
[Agent Explanation]
이 코드는 'Structured Concurrency'를 사용하여 여러 URL에서 데이터를 병렬로 가져옴.
1. withThrowingTaskGroup: 에러 처리가 가능한 병렬 작업 그룹을 생성함.
2. addTask: 각 URL마다 개별 자식 태스크를 생성하여 비동기로 실행함.
3. reduce: 모든 작업이 완료될 때까지 기다렸다가 결과를 하나의 배열로 합쳐서 반환함.
*/
/compact (토큰 절약 및 성능 유지)
긴 코딩 세션 중 핵심 컨텍스트만 남기고 메모리를 정리
- Swift 상황: 대규모 리팩토링 중 파일 10개를 넘나들며 대화가 길어졌을 때 사용
ex)
// /compact 실행 시 내부 작동 방식
[System] 이전의 50개 대화 기록을 요약함.
[Current Context Summary]
- 현재 목표: 'NetworkModule'의 URLSession 설정을 에러 핸들링 로직과 함께 고도화 중임.
- 진행 상황: 'NetworkError.swift' 정의 완료, 'APIClient.swift' 수정 중임.
- 남은 작업: 단위 테스트(Unit Test) 작성 필요함.
(불필요한 이전 잡담 및 중복 코드 출력물 삭제 완료함)
/call (전문 작업 위임)
특정 규칙(Lint, Test 등)을 준수하는지 전문 에이전트에게 맡김
- Swift 상황: SwiftLint 규칙 준수 여부나 Unit Test 케이스 생성을 전담
# bash
# 터미널 호출 예시
/call swift_test_agent "APIClient.swift 파일에 대한 성공/실패 테스트 케이스 5개 만들어줘"
// swift
// /call로 호출된 서브에이전트가 생성한 코드
final class APIClientTests: XCTestCase {
func test_fetchData_success() async throws {
// Mock 데이터를 활용한 성공 케이스 로직 작성함
}
func test_fetchData_invalidURL_failure() async {
// 잘못된 URL 입력 시 에러 반환 여부 검증함
}
}'AI' 카테고리의 다른 글
| [AI] 클로드코드 sub agent 개념 (claude code, 서브 에이전트) (1) | 2026.04.01 |
|---|---|
| [AI] 클로드코드 코드 리뷰 기능 (claude code, /code-review) (2) | 2026.03.24 |
| [AI] 클로드코드 개념 - 기본 개념(CLAUDE.md, skills, mcp, subagents, agent teams, hooks, plugins) (0) | 2026.03.18 |
| [AI] Oh My Claude Code (omc) 이해하기 (1) | 2026.03.11 |
| [AI] oh-my-claude code 개념 (클로드코드, 클로드코드 플러그인, omc, oh my claude code) (1) | 2026.03.04 |
Comments
