AI 실수 복구: 메인 체크아웃을 dev 상태로 되돌린 기록
시리즈 Claude Code 워크플로 현재 위치 22 / 29
- git worktree로 AI 세션 여러 개를 동시에 돌리기: 브랜치 충돌과 stash 공유 사고를 피하는 운영 규칙
- AI에게 기억을 심는 법: 메모리 파일로 삽질 교훈을 세션 간에 유지하기
- 스킬로 반복 작업 자동화: 이슈 착수부터 종료까지 한 명령으로 묶은 dev-issue 사례
- 코드 그래프(graft)로 AI의 탐색 비용 줄이기: grep/read 대비 토큰 절감 체감
- AI 코드 리뷰를 규칙으로 고정하기
- 반복되는 Git 워크플로우와 브랜치 정리 자동화
- 같은 요청을 여러 저장소에 반복하는 법: 한 줄 프롬프트 + 기준 문서 하나
- 이슈 하나를 한 줄로 개발 끝내는 법 — 내가 가장 많이 쓰는 Claude Code 스킬들
- 블로그 글을 스무 번 부탁하고 나서, 스킬로 만들었다
- 마라톤 세션이 토큰을 먹는 구조: 로그로 찾고, /compact와 서브에이전트로 줄이기
- 1인 개발자가 클로드코드로 SaaS 11개 만든 기록
- 이슈 하나에 30~60분, 어디서 새고 있었나: skill-creator로 dev-issue 스킬을 만든 과정
- 도면을 AI에게 읽히려다 AI를 뺀 이야기
- 스쿼시 머지 vs 머지 커밋: 1인 개발자의 PR 전략
- "난이도가 높아서 오래 걸리는 거야?" — AIFid 개발 기록으로 따져 본 소요 시간
- 엑셀 간편장부를 웹 ERP로 옮기기 (AICassa)
- Impeccable 스킬 적용한 게시글 상세 화면 구조 개선
- CLAUDE.md로 팀 규칙을 AI에게 가르치는 법
- AI티 나는 디자인 패턴 걷어내기: overused-font 훅 오탐 처리와 접근성 대비 수정
- CI4 브랜드 에러 페이지: 설계서 한 장에서 구현까지
- Claude에 MCP로 디자인 툴 붙이기 — DesignCraft·PhotoCraft 설치부터 명함, 카툰 효과까지
- AI 실수 복구: 메인 체크아웃을 dev 상태로 되돌린 기록
- 870줄 CLAUDE.md를 116줄로 줄인 실전 리팩터링
- AI로 AI 강의안을 만들다 — 실용인문학 5·6강 준비기
- Claude Code 토큰 절감 실전: 3개월 로그 분석과 5단계 전략
- 개발 기록을 재료로 AI가 쓰는 블로그 글 만들기
- Claude Vision으로 영수증·세금계산서 자동 장부 입력 구현
- AI가 만든 실제 실수 4가지 패턴과 교훈
- GitHub 이슈·PR 기반의 월간 작업일지 자동 생성 Claude 스킬 만들기
시리즈 운영서버에서만 터진 버그 현재 위치 10 / 12
- 운영 배포에서만 실패한 slug 마이그레이션: 무음 실패를 실패로 보이게 만들기
- 운영 서버에서만 발생한 TinyMCE 이미지 경로 버그 3선
- 호스팅이 419를 500으로 바꿔버린 날
- 목록에 —가 그대로 찍혔다: strip_tags 다음에 빠진 한 단계
- 페이지 번호가 41개 전부 나왔다: AI가 만든 페이저 뷰에서 빠진 한 줄
- TinyMCE 이미지 alt가 사라지는 원인과 해결책
- 새로고침하면 공간이 사라진다: 저장 버튼을 의심하기 전에 순서를 봤다
- 큐 워커 운영 장애 연속극: systemd 워커가 안 도는 이유 체크리스트
- 문의 폼 봇 방어 5겹 스택, 실제로 뚫린 순서대로
- AI 실수 복구: 메인 체크아웃을 dev 상태로 되돌린 기록
- CMS 에디터가 내 CSS를 지웠다 — 소개 페이지 삽질기
- 구글봇 화이트리스트에 GCP 대역을 넣었다가 발생한 보안 이슈와 교훈
AI에게 작업을 맡기다 보면 언젠가 이런 순간이 온다. 세션 중간에 AI가 메인 저장소를 잘못 건드린 것이다. 이번 글은 그 상황을 dev 브랜치의 깨끗한 상태로 되돌린 기록이다. 복구 과정에서 무엇을 건드리지 않았는지, 그리고 이런 일이 생겼을 때 사람이 무엇을 확인해야 하는지를 정리한다.
무슨 일이 있었나
- 세션 도중 AI가 메인 저장소(메인 체크아웃) 를 잘못 건드렸다.
- 목표는 단순했다. 메인 체크아웃을
dev브랜치의 깨끗한 상태로 되돌리는 것. - 같은 저장소에는 다른 세션이 쓰던 워크트리가 11개 있었다. 이 워크트리들은 건드리지 않았다.
복구 원칙: 내 것만 되돌린다
가장 신경 쓴 부분은 "되돌리는 범위"다. 메인 체크아웃이 엉망이 됐다고 해서 저장소 전체를 청소하면 안 된다. 다른 세션의 워크트리는 각자 진행 중인 작업이 있는 별개의 작업 공간이다. 그 안에는 아직 커밋되지 않은 변경이 있을 수 있다.
그래서 복구 대상을 메인 체크아웃 하나로 한정했다.
- 현재 상태를 먼저 확인한다. 어떤 브랜치에 있는지, 무엇이 바뀌었는지 눈으로 본다.
- 메인 체크아웃만
dev의 깨끗한 상태로 되돌린다. - 다른 세션의 워크트리 11개는 목록에서 확인만 하고 손대지 않는다.
되돌리기는 파괴적인 작업이다. 무엇을 버리는지 보고 나서 실행해야 한다. 한 번 날아간 미커밋 변경은 복구할 방법이 마땅치 않다.
AI에게 맡긴 작업이 어긋났을 때 사람이 확인할 것들
이번 일에서 얻은 체크리스트다. 복구를 AI에게 다시 맡기더라도, 아래는 사람이 직접 눈으로 확인하는 편이 안전하다.
- 지금 어느 브랜치, 어느 디렉터리인가.
git status와git branch --show-current로 시작한다. 메인 체크아웃과 워크트리는 다른 경로다. - 무엇이 바뀌었는가. 되돌리기 전에
git diff와 미추적 파일 목록을 본다. 버려도 되는 변경인지 판단하는 것은 사람의 몫이다. - 다른 세션이 쓰는 워크트리는 없는가.
git worktree list로 확인한다. 내 작업이 아닌 워크트리는 건드리지 않는다. - 되돌릴 기준점이 맞는가. 이번에는
dev의 깨끗한 상태가 기준이었다. 원격과 로컬dev가 일치하는지도 확인한다. - 복구 후 상태를 다시 확인한다. 작업 트리가 깨끗한지, 브랜치가 기대한 곳인지, 다른 워크트리가 그대로인지 확인한다.
정리
AI가 실수하는 것 자체는 피하기 어렵다. 중요한 것은 실수가 났을 때 피해 범위를 키우지 않는 것이다. 이번 복구에서 지킨 원칙은 하나였다. 어긋난 곳만 되돌리고, 나머지 11개 워크트리는 그대로 둔다. 그리고 되돌리기 전에는 항상 사람이 상태를 먼저 본다.

댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.