
【Claude Code 활용】 차분(diff) 확인 및 적용 맡기기
요약
Claude Code가 파일을 편집할 때 변경 사항을 unified diff 형식으로 먼저 제시하여 사용자의 확인을 받는 안전한 워크플로우를 설명합니다. 구체적인 지시서를 통해 Claude Code의 코드 수정 정밀도를 높이는 방법과 실제 적용 사례를 다룹니다.
핵심 포인트
- 변경 전 차분(diff) 확인을 통해 코드베이스 혼입 리스크 최소화
- 변경 전후 코드를 명시하는 구체적인 지시서 작성 시 정밀도 향상
- patch_file 도구를 활용한 정확한 코드 스니펫 특정 및 업데이트
- 여러 곳의 변경 사항과 임포트 문 누락을 자동으로 보완하는 능력
Claude Code의 파일 편집 플로우
Claude Code는 파일을 변경할 때, 적용 전에 차분(diff)을 제시하여 확인을 받는 설계로 되어 있습니다.
변경 내용 계획
↓
차분(unified diff) 표시
...
이 확인 단계가 있음으로써, 의도하지 않은 변경이 코드베이스에 혼입되는 리스크를 최소화할 수 있습니다.
실제로 맡겨 보았다: repl.py 업데이트
agent01의 Step 07과 Step 09에서는 기존의 src/repl.py에 새로운 기능을 추가할 필요가 있었습니다.
Step 09에서는 patch_file / write_file의 인간 확인 플로우를 추가하기 위해, repl.py의 여러 곳을 변경했습니다. Claude Code는 변경 전에 unified diff 형식으로 차분을 제시하고, 확인 후에 적용했습니다.
agent01이 구현한 show_diff / patch_file의 동작은 다음과 같습니다.
def show_diff(original: str, modified: str, filename: str = "file") -> str:
"""변경 전후의 텍스트 차분을 unified diff 형식으로 반환한다."""
original_lines = original.splitlines(keepends=True)
...
patch_file은 original_snippet이 존재하지 않는 경우 에러를 반환하도록 설계되어 있습니다. 이를 통해 대상 부분이 이미 변경된 경우라도 안전하게 실패합니다.
구현 지시서에서의 차분 지시 작성법
구현 지시서에 변경 내용을 명시함으로써 Claude Code의 정밀도가 높아졌습니다. 효과적이었던 지시 형식을 소개합니다.
## repl.py 업데이트
다음 함수 `_confirm_tool_call`을 `_run_loop` 메서드 앞에 추가한다.
### 추가할 함수
```python
def _confirm_tool_call(self, tool_name: str, args: dict) -> bool:
# ...
변경 부분
_run_loop 내의 다음 부분에 확인 로직을 삽입한다.
변경 전:
result = dispatch(tool_name, arguments)
변경 후:
if requires_confirmation(tool_name):
if not self._confirm_tool_call(tool_name, arguments):
result = "취소되었습니다"
continue
result = dispatch(tool_name, arguments)
"기존의 〇〇 함수에 다음을 추가한다"라는 형식으로 변경 전후를 명시함으로써, 잘못된 부분에 적용되는 것을 방지할 수 있습니다.
## 깨달은 점
**여러 곳의 변경이 정확하게 적용됨**: Step 09에서는 `repl.py`의 여러 곳을 변경해야 했지만, Claude Code는 순서대로 차분을 제시하며 모든 곳을 정확하게 업데이트했습니다. 임포트(import) 문의 누락도 자동으로 보완되었습니다.
**변경 범위를 좁힌 지시서일수록 정밀도가 높음**: "`repl.py`를 수정해 주세요"라는 모호한 지시보다, "`_run_loop`의 〇〇행에 다음을 추가해 주세요"라는 구체적인 지시가 한 번에 의도한 대로의 변경을 얻을 수 있었습니다.
**patch_file의 original_snippet 특정 능력이 정확함**: Step 13의 데모 테스트에서, Claude Code가 `data=[]`라는 짧은 문자열을 정확하게 특정하여 `patch_file`을 호출하는 모습을 확인했습니다. 문자열 일치 판정을 사용하는 심플한 구현이라도, LLM이 적절한 스니펫(snippet)을 지정하면 고정밀도로 기능합니다.
## 요약
Claude Code의 차분 확인 플로우는 기존 코드를 망가뜨리지 않는 안전한 변경을 실현합니다. 구현 지시서에서 변경 전후를 명시해 두면 여러 곳의 변경도 정확하게 적용할 수 있습니다. 인간의 확인 단계를 거치는 설계가 AI를 이용한 개발에서 중요한 안전장치(safety valve)가 되고 있습니다.
## 다음 회차
B5에서는 Claude Code의 커맨드 실행 능력과 테스트 결과 해석에 대해 소개합니다. 동작 확인 스크립트를 자동 실행하여 완료 조건을 스스로 체크한 경험을 전달해 드리겠습니다.
## 시리즈 링크 (Series B)
| 기사 | 제목 |
|---|---|
| B1 | Claude Code란 무엇인가 · 도입 및 초기 설정 |
| ... |
### Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기