2026년 11월 11일 수요일
미단재

AI 실수 복구: 메인 체크아웃을 dev 상태로 되돌린 기록

시리즈 Claude Code 워크플로 현재 위치 22 / 29
  1. git worktree로 AI 세션 여러 개를 동시에 돌리기: 브랜치 충돌과 stash 공유 사고를 피하는 운영 규칙
  2. AI에게 기억을 심는 법: 메모리 파일로 삽질 교훈을 세션 간에 유지하기
  3. 스킬로 반복 작업 자동화: 이슈 착수부터 종료까지 한 명령으로 묶은 dev-issue 사례
  4. 코드 그래프(graft)로 AI의 탐색 비용 줄이기: grep/read 대비 토큰 절감 체감
  5. AI 코드 리뷰를 규칙으로 고정하기
  6. 반복되는 Git 워크플로우와 브랜치 정리 자동화
  7. 같은 요청을 여러 저장소에 반복하는 법: 한 줄 프롬프트 + 기준 문서 하나
  8. 이슈 하나를 한 줄로 개발 끝내는 법 — 내가 가장 많이 쓰는 Claude Code 스킬들
  9. 블로그 글을 스무 번 부탁하고 나서, 스킬로 만들었다
  10. 마라톤 세션이 토큰을 먹는 구조: 로그로 찾고, /compact와 서브에이전트로 줄이기
  11. 1인 개발자가 클로드코드로 SaaS 11개 만든 기록
  12. 이슈 하나에 30~60분, 어디서 새고 있었나: skill-creator로 dev-issue 스킬을 만든 과정
  13. 도면을 AI에게 읽히려다 AI를 뺀 이야기
  14. 스쿼시 머지 vs 머지 커밋: 1인 개발자의 PR 전략
  15. "난이도가 높아서 오래 걸리는 거야?" — AIFid 개발 기록으로 따져 본 소요 시간
  16. 엑셀 간편장부를 웹 ERP로 옮기기 (AICassa)
  17. Impeccable 스킬 적용한 게시글 상세 화면 구조 개선
  18. CLAUDE.md로 팀 규칙을 AI에게 가르치는 법
  19. AI티 나는 디자인 패턴 걷어내기: overused-font 훅 오탐 처리와 접근성 대비 수정
  20. CI4 브랜드 에러 페이지: 설계서 한 장에서 구현까지
  21. Claude에 MCP로 디자인 툴 붙이기 — DesignCraft·PhotoCraft 설치부터 명함, 카툰 효과까지
  22. AI 실수 복구: 메인 체크아웃을 dev 상태로 되돌린 기록
  23. 870줄 CLAUDE.md를 116줄로 줄인 실전 리팩터링
  24. AI로 AI 강의안을 만들다 — 실용인문학 5·6강 준비기
  25. Claude Code 토큰 절감 실전: 3개월 로그 분석과 5단계 전략
  26. 개발 기록을 재료로 AI가 쓰는 블로그 글 만들기
  27. Claude Vision으로 영수증·세금계산서 자동 장부 입력 구현
  28. AI가 만든 실제 실수 4가지 패턴과 교훈
  29. GitHub 이슈·PR 기반의 월간 작업일지 자동 생성 Claude 스킬 만들기

시리즈 소개 보기

시리즈 운영서버에서만 터진 버그 현재 위치 10 / 12
  1. 운영 배포에서만 실패한 slug 마이그레이션: 무음 실패를 실패로 보이게 만들기
  2. 운영 서버에서만 발생한 TinyMCE 이미지 경로 버그 3선
  3. 호스팅이 419를 500으로 바꿔버린 날
  4. 목록에 —가 그대로 찍혔다: strip_tags 다음에 빠진 한 단계
  5. 페이지 번호가 41개 전부 나왔다: AI가 만든 페이저 뷰에서 빠진 한 줄
  6. TinyMCE 이미지 alt가 사라지는 원인과 해결책
  7. 새로고침하면 공간이 사라진다: 저장 버튼을 의심하기 전에 순서를 봤다
  8. 큐 워커 운영 장애 연속극: systemd 워커가 안 도는 이유 체크리스트
  9. 문의 폼 봇 방어 5겹 스택, 실제로 뚫린 순서대로
  10. AI 실수 복구: 메인 체크아웃을 dev 상태로 되돌린 기록
  11. CMS 에디터가 내 CSS를 지웠다 — 소개 페이지 삽질기
  12. 구글봇 화이트리스트에 GCP 대역을 넣었다가 발생한 보안 이슈와 교훈

시리즈 소개 보기

AI에게 작업을 맡기다 보면 언젠가 이런 순간이 온다. 세션 중간에 AI가 메인 저장소를 잘못 건드린 것이다. 이번 글은 그 상황을 dev 브랜치의 깨끗한 상태로 되돌린 기록이다. 복구 과정에서 무엇을 건드리지 않았는지, 그리고 이런 일이 생겼을 때 사람이 무엇을 확인해야 하는지를 정리한다.

무슨 일이 있었나

  • 세션 도중 AI가 메인 저장소(메인 체크아웃) 를 잘못 건드렸다.
  • 목표는 단순했다. 메인 체크아웃을 dev 브랜치의 깨끗한 상태로 되돌리는 것.
  • 같은 저장소에는 다른 세션이 쓰던 워크트리가 11개 있었다. 이 워크트리들은 건드리지 않았다.

복구 원칙: 내 것만 되돌린다

가장 신경 쓴 부분은 "되돌리는 범위"다. 메인 체크아웃이 엉망이 됐다고 해서 저장소 전체를 청소하면 안 된다. 다른 세션의 워크트리는 각자 진행 중인 작업이 있는 별개의 작업 공간이다. 그 안에는 아직 커밋되지 않은 변경이 있을 수 있다.

그래서 복구 대상을 메인 체크아웃 하나로 한정했다.

  1. 현재 상태를 먼저 확인한다. 어떤 브랜치에 있는지, 무엇이 바뀌었는지 눈으로 본다.
  2. 메인 체크아웃만 dev의 깨끗한 상태로 되돌린다.
  3. 다른 세션의 워크트리 11개는 목록에서 확인만 하고 손대지 않는다.

되돌리기는 파괴적인 작업이다. 무엇을 버리는지 보고 나서 실행해야 한다. 한 번 날아간 미커밋 변경은 복구할 방법이 마땅치 않다.

AI에게 맡긴 작업이 어긋났을 때 사람이 확인할 것들

이번 일에서 얻은 체크리스트다. 복구를 AI에게 다시 맡기더라도, 아래는 사람이 직접 눈으로 확인하는 편이 안전하다.

  • 지금 어느 브랜치, 어느 디렉터리인가. git status와 git branch --show-current로 시작한다. 메인 체크아웃과 워크트리는 다른 경로다.
  • 무엇이 바뀌었는가. 되돌리기 전에 git diff와 미추적 파일 목록을 본다. 버려도 되는 변경인지 판단하는 것은 사람의 몫이다.
  • 다른 세션이 쓰는 워크트리는 없는가. git worktree list로 확인한다. 내 작업이 아닌 워크트리는 건드리지 않는다.
  • 되돌릴 기준점이 맞는가. 이번에는 dev의 깨끗한 상태가 기준이었다. 원격과 로컬 dev가 일치하는지도 확인한다.
  • 복구 후 상태를 다시 확인한다. 작업 트리가 깨끗한지, 브랜치가 기대한 곳인지, 다른 워크트리가 그대로인지 확인한다.

정리

AI가 실수하는 것 자체는 피하기 어렵다. 중요한 것은 실수가 났을 때 피해 범위를 키우지 않는 것이다. 이번 복구에서 지킨 원칙은 하나였다. 어긋난 곳만 되돌리고, 나머지 11개 워크트리는 그대로 둔다. 그리고 되돌리기 전에는 항상 사람이 상태를 먼저 본다.

이어 읽을 글

댓글 0

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