6강 실습 중심 ⏱ 약 45분

 

0. 학습 목표

→ git 없이도 "작업을 되돌릴 수 있다"는 감각을, 폴더를 복사해 비교하는 방식으로 직접 체감합니다.

더보기

0.1 이번 글에서 다룰 내용

 

이번 글은 실습 중심 강의입니다.

 

5강 끝에서 예고한 대로, Claude Code가 파일을 직접 고치다 보면 "이전 상태로 되돌리고 싶다"는 순간이 옵니다.

이번 강의는 그 되돌리기를 가장 단순한 방식, 곧 폴더를 통째로 복사해두고 나중에 비교하는 방식으로 직접 해봅니다.

 

git이라는 전문 도구는 아직 쓰지 않습니다.

손으로 흉내 내보면서, 왜 나중에 git이 필요해지는지 그 밑거름을 먼저 쌓는 것이 목표입니다.

 

더불어 Claude.ai의 Projects(대화와 파일 묶음)가 Claude Code에서는 실제 폴더로 바뀐다는 점도 함께 짚습니다.

 

 

 

 

0.2 이번 강의 실습 내용

 

이번 강의에서 직접 해보는 것은 다음과 같습니다.

  1. 작업 전 프로젝트 폴더 전체를 project_v1으로 복사해 백업하기
  2. 원래 폴더에서 Claude Code로 새 기능을 추가하기
  3. diff로 백업본과 작업본을 비교하고, 되돌리는 방법을 확인하기

 

구분 내용
재사용할 것 Claude.ai Projects의 "관련 파일을 한데 묶어 관리한다"는 개념
확인할 것 폴더 복사로 되돌릴 수 있다는 감각, 그리고 "무엇이 바뀌었는지 눈으로 찾기 번거롭다"는 불편함

 

1. Claude.ai Projects와 무엇이 같고 다른가

→ Claude.ai의 Projects와 Claude Code의 프로젝트 폴더가 어떻게 다른지 확인합니다.

더보기

Claude.ai의 Projects는 대화와 파일을 묶어 클라우드에 저장하는 것이었고,

파일을 참고하려면 업로드해야 했습니다.

 

Claude Code의 프로젝트는 내 컴퓨터의 실제 폴더이고,

그 안의 파일을 Claude Code가 직접 읽고 씁니다.

 

5강에서 만든 CLAUDE.md는 바로 이 폴더의 배경과 규칙을 적어두는 곳이었습니다.

즉 Claude Code에서 "프로젝트"란 곧 "폴더 하나"입니다.

 

이 점이 이번 강의의 되돌리기 방식과 직접 이어집니다.

폴더가 곧 프로젝트라면, 폴더를 통째로 복사해두는 것만으로 그 시점의 프로젝트 전체를 보존할 수 있기 때문입니다.

 

2. 왜 되돌리기 감각이 필요한가

→ Claude Code가 파일을 직접 고치는 방식에서 되돌리기가 왜 다르게 필요한지 살펴봅니다.

더보기

3강부터 5강까지, Claude Code는 inventory.py를 여러 번 직접 고쳤습니다.

5강에서는 CLAUDE.md 규칙에 따라 재고 삭제 기능까지 붙였습니다.

 

만약 이렇게 쌓인 수정 중 어느 시점의 결과가 마음에 안 든다면 어떻게 할까요.

Claude.ai는 답변만 만들었으니 "이전 답변으로 돌아가기"가 쉬웠지만, Claude Code는 파일 자체가 바뀌어버립니다.

되돌아갈 이전 상태를 따로 남겨두지 않았다면, 손으로 되돌리기가 막막해집니다.

 

전문적으로는 git이라는 도구가 이 문제를 해결하지만,

이번 강의에서는 git 없이 손으로 흉내 내는 방법으로 먼저 감각을 잡습니다.

 

작업 전에 폴더 전체를 복사해 project_v1으로 저장하고,

작업은 원래 폴더에서 진행한 뒤, 두 폴더를 나란히 열어 무엇이 달라졌는지 확인하는 방식입니다.

 

3. 실습 — 백업하고, 고치고, 비교하기

→ 폴더를 백업한 뒤 새 기능을 위임하고, 백업본과 비교해 되돌리기 감각을 잡습니다.

더보기

3.1 작업 전 폴더 백업하기

 

먼저 지금까지 쓰던 재고관리 프로젝트 폴더 전체를 복사해 백업본을 만듭니다.

cp -r은 폴더를 통째로(하위 파일까지) 복사하는 명령입니다.

 

cd ~
cp -r inventory-project project_v1

 

이제 홈 폴더에 project_v1이라는 백업본이 생겼습니다.

이 폴더는 이번 실습이 끝날 때까지 손대지 않고 그대로 둡니다.

작업은 원래 폴더인 inventory-project에서만 합니다.

 

 

 

 

3.2 원래 폴더에서 새 기능 위임하기

 

원래 폴더에서 Claude Code를 실행하고 새 기능을 요청합니다.

승인 화면이 나오면 4강에서 배운 대로 내용을 읽고 승인합니다.

[화면 캡처: 백업 후 새 기능 추가를 요청한 승인 화면]

 

cd ~/inventory-project
claude
재고 목록을 파일로 저장하는 기능과, 저장된 파일을
다시 불러오는 기능을 inventory.py에 추가해줘.

 

 

 

 

 

3.3 백업본과 비교하고 되돌리기

 

이제 백업본(project_v1)과 작업본(inventory-project)의 inventory.py가 어떻게 달라졌는지 비교합니다.

두 파일을 나란히 견주는 간단한 방법은 diff 명령입니다.

Claude Code 세션에서 나온 뒤(/exit) 터미널에 입력합니다.

[화면 캡처: diff 명령으로 두 파일의 차이를 확인한 결과]

 

diff ~/project_v1/inventory.py ~/inventory-project/inventory.py

 

양쪽에서 다른 코드 라인만 표시됩니다.

무엇이 새로 생겼는지, 그리고 바뀐 부분을 찾는 데 얼마나 걸렸는지 살펴봅니다.

 

되돌리는 방법도 명령으로 확인해 둡니다.

원리는 단순합니다.

 

지금 작업본을 지우고, 백업해둔 project_v1을 원래 이름으로 다시 복사하면 백업 시점으로 완전히 돌아갑니다.

 

# (되돌리기 예시 — 지금 실제로 실행하지 않아도 됩니다)
cd ~
rm -rf inventory-project
cp -r project_v1 inventory-project

 

첫 줄에서 홈 폴더로 이동하고, 둘째 줄에서 작업본 폴더를 통째로 지운 뒤, 셋째 줄에서 백업본을 원래 이름(inventory-project)으로 다시 복사합니다. 이렇게 하면 3.2에서 추가한 기능이 사라지고, 백업 시점 그대로 되돌아갑니다.

 

⚠ 주의: rm -rf는 폴더를 확인 없이 완전히 삭제하는 명령으로, 잘못 쓰면 되살릴 수 없습니다. 지울 대상 이름(inventory-project)이 정확한지 반드시 확인하고, 백업본(project_v1)이 멀쩡히 있는지 먼저 ls ~로 확인한 뒤 실행하세요. 이번 실습에서는 되돌리기가 어떻게 되는지 원리만 이해하면 되므로, 실제로 실행하지 않고 넘어가도 괜찮습니다.

▶ 지금 해보세요

  1. 3.1의 cp -r로 백업본을 만들고, ls ~로 홈 폴더에 project_v1이 생겼는지 확인합니다.
  2. 3.2의 요청으로 원래 폴더에 새 기능을 추가하고 승인합니다.
  3. 3.3의 diff로 두 폴더의 차이를 확인하고, 바뀐 부분을 찾는 데 얼마나 걸렸는지 느껴봅니다.
  4. 되돌리기 명령은 눈으로 읽어만 두고, 어떤 순서로 원래 상태로 돌아가는지 이해합니다. (실제 실행은 선택)

✔ 확인 기준: 백업본으로 "되돌릴 수 있다"는 감각을 갖게 되면 완료입니다. 다만 무엇이 바뀌었는지 찾는 과정이 번거로웠다는 것도 함께 느꼈다면, 이번 강의의 숨은 목표까지 달성한 것입니다.

 

4. 이 방식의 한계 — 왜 나중에 git이 필요한가

→ 폴더 복사 방식의 불편함을 짚고, 그것이 13강 git으로 어떻게 이어지는지 예고합니다.

더보기

Claude.ai의 Projects(자료 묶음)가 Claude Code에서는 실제로 실행되는 폴더로 바뀌었고,

git 없이도 "복사해서 백업 → 비교 → 필요시 되돌리기"로 안전망을 만들 수 있다는 것을 확인했습니다.

 

다만 한 가지를 정확히 짚어둘 필요가 있습니다.

이 폴더 복사 방식은 "되돌릴 수 있다"는 감각은 잘 주지만,

v1과 작업본 중 정확히 무엇이 달라졌는지 눈으로 찾는 과정이 불편합니다.

 

파일이 짧으면 금방 찾지만, 수백 줄짜리 파일이라면 이야기가 달라집니다.

또 기능을 추가할 때마다 project_v1, v2, v3처럼 폴더가 계속 쌓이는 것도 번거롭습니다.

 

나중에 배울 git은 바로

"무엇이 바뀌었는지 자동으로 보여주는" 부분과

"폴더를 쌓지 않고 한곳에서 이력을 관리하는" 부분을 해결합니다.

 

백업이라는 개념 자체가 필요 없어지는 것이 아니라,

백업·비교를 훨씬 편하게 만들어주는 것입니다.

 

오늘 느낀 이 불편함이,

13강에서 git을 배울 때 "왜 이게 필요한지" 바로 와닿게 하는 밑거름이 됩니다.

 

→ 다음 강의 (7강): 지금까지 쌓은 모든 것(CLAUDE.md·백업 습관·반복 작업)을 종합해 1차 완성본을 만들고, 반복 작업을 재사용 가능한 스킬로 등록하는 법을 배웁니다.