반응형
Mac에서 AI로 코드 자동 수정하는 CLI 만들기 (복붙 없이 자동화)
이전 글에서 OpenAI CLI를 설치했다면 이제 한 단계 더 나아갈 차례다. 이번 글에서는 AI를 활용해 코드 파일을 자동으로 수정하는 CLI를 직접 만들어본다.
복사 → 붙여넣기 없이 파일을 읽고 → AI로 수정하고 → 자동 반영까지 구현하는 것이 목표다.
1. 목표 구조
Swift 파일 → AI 요청 → 수정된 코드 → 파일 덮어쓰기
이 흐름을 CLI로 자동화하면 반복적인 리팩토링 작업을 크게 줄일 수 있다.
2. 사전 준비
아래 환경이 준비되어 있어야 한다.
- Node.js 설치
- OpenAI CLI 설치
- API Key 설정 완료
(설치 방법은 2편 참고)
3. 자동 수정 스크립트 만들기
터미널에서 스크립트를 생성한다.
touch codex-fix.sh
chmod +x codex-fix.sh
4. 스크립트 코드 작성
#!/bin/bash
FILE=$1
PROMPT=$2
if [ -z "$FILE" ]; then
echo "파일 경로를 입력하세요"
exit 1
fi
CONTENT=$(cat "$FILE")
RESPONSE=$(openai responses.create \
-m gpt-4.1 \
-i "다음 Swift 코드를 수정해라:\n\n$CONTENT\n\n요구사항:\n$PROMPT\n\n수정된 전체 코드를 반환해라.")
# 백업 파일 생성
cp "$FILE" "$FILE.bak"
# 수정 결과 덮어쓰기
echo "$RESPONSE" > "$FILE"
echo "수정 완료: $FILE"
5. 사용 방법
./codex-fix.sh NetworkClient.swift "async/await 구조로 리팩토링"
실행하면 다음이 자동으로 진행된다.
- 파일 읽기
- AI로 코드 수정 요청
- 백업 생성
- 파일 자동 덮어쓰기
6. 실전 활용 예시
네트워크 코드 리팩토링
./codex-fix.sh NetworkClient.swift "Alamofire 기반 async/await 구조로 변경"
코드 스타일 개선
./codex-fix.sh HomeViewController.swift "가독성 좋게 리팩토링"
Crashlytics 코드 추가
./codex-fix.sh AppDelegate.swift "Crashlytics 사용자 정보 추가"
7. 위험 요소 (중요)
자동 덮어쓰기는 강력하지만 위험할 수 있다.
- 코드가 깨질 수 있음
- 의도하지 않은 변경 발생
- 전체 파일이 덮어쓰기됨
반드시 백업 파일(.bak)을 유지하는 것을 권장한다.
8. 더 안전하게 만드는 방법
1. 특정 함수만 수정
sed -n '/func fetchData/,/}/p' NetworkClient.swift
전체 파일이 아니라 필요한 부분만 수정할 수 있다.
2. Git 기반 diff 적용
git diff
AI에게 전체 코드 대신 변경(diff)만 적용하도록 하면 안정성이 높아진다.
3. 테스트 후 적용
- 임시 파일에 먼저 저장
- 검토 후 반영
9. 한 단계 더 발전시키기
이 구조를 확장하면 다양한 자동화가 가능하다.
- 여러 파일 동시에 수정
- 특정 폴더만 대상 처리
- CI/CD 자동 코드 수정
- 코드 스타일 자동 적용
10. 정리
AI CLI를 활용하면 단순 코드 생성이 아니라 코드 수정까지 자동화할 수 있다.
- 반복 작업 제거
- 리팩토링 자동화
- 개발 속도 향상
다음 글 예고
다음 글에서는 로컬에서 AI를 실행하는 방법을 소개한다. (인터넷 없이 사용하는 AI 환경 구축)
📌 AI CLI 시리즈
반응형
'IT' 카테고리의 다른 글
| Mac에서 로컬 AI 사용하는 방법 (Ollama로 오프라인 AI 구축하기) (0) | 2026.03.26 |
|---|---|
| AI를 터미널에서 사용하는 이유 (AI CLI 개념 완벽 정리) (0) | 2026.03.26 |
| Mac에서 OpenAI CLI 설치하고 사용하는 방법 (2026 최신 가이드) (0) | 2026.03.26 |
| Claude Code 최신 업데이트 정리 (2026) – AI 코드 리뷰까지 진화했다 (0) | 2026.03.23 |
| Firebase iOS 크래시 대응 방법 (Crashlytics 완벽 가이드) (0) | 2026.03.22 |