🚀 엔지니어 · 온보딩 · 프로젝트 다루기 · L05

프로젝트 삭제하기

작성일자 2026-07-24  ·  수정일자 2026-07-24  ·  강의차수 L05  ·  예상소요 8분

목표 delete-project 로 프로젝트와 모든 부수 자원(DB·포트·vhost·인증서·Route53·repo·메모리)을 일괄 정리한다.

1. 언제 쓰나

폴더만 rm -rf 하면 DB·포트·vhost·인증서·DNS 레코드 같은 부수 자원이 서버에 남아 누적된다. delete-project 는 이걸 3단계로 안전하게 일괄 정리한다.

사전 요건(실행 유저 환경). 없으면 해당 단계만 BLOCKED 되고 나머지는 진행된다.

  • AWS 프로필 popup-chris: Route53 A 레코드 삭제용. 없으면 Route53 단계 실패.
  • gh 의 delete_repo 스코프: GitHub repo 삭제용(아래 3절).
  • sudo: apache vhost 비활성화·certbot. postgres superuser: dropdb. devteam 은 둘 다 보유.

에이전트는 3단계로 동작한다.

  • Phase 1 (read-only): 아래 자원을 스캔한다. 아무것도 삭제하지 않는다.
    • 파일: 프로젝트 디렉토리 · <slug>_static_cdn · Claude 메모리 디렉토리
    • 설정·DB: .env 의 DB_PASSWORD · PostgreSQL DB · wiki 포트 행
    • 런타임·웹: 실행 중 프로세스 · apache vhost(dev/prod × le-ssl) · Let's Encrypt 인증서
    • DNS·repo: Route53 A 레코드 · GitHub repo
  • Phase 2: 발견 자원 목록을 보여주고 yes 확인을 받는다.
  • Phase 3: 순서대로 삭제. 프로세스 kill → dropdb → a2dissite + vhost rm + apache reload → certbot delete → Route53 DELETE(AWS_PROFILE=popup-chris) → gh repo delete → wiki 포트 행 삭제 → 프로젝트 디렉토리·static_cdn rm -rf → 메모리 디렉토리 삭제. DB 비밀번호·포트가 디렉토리 안 .env/CLAUDE.md 에 있으므로 디렉토리 삭제가 마지막이다.

2. 지우려는 프로젝트에서 빠져나오기

지우려는 프로젝트 안에서 Claude Code 를 켜 뒀다면 먼저 나온다(메모리 디렉토리 삭제 충돌 방지).

/exit

3. (최초 1회) 저장소 삭제 권한 추가

gh auth login 기본 스코프에는 delete_repo 가 없다. GitHub repo 까지 지우려면 최초 1회 스코프를 추가한다(이미 했으면 건너뛴다).

gh auth refresh -h github.com -s delete_repo

(브라우저 승인이 한 번 뜬다. 조직 게이트 members_can_delete_repositories 는 이미 열려 있으므로, admin 권한 + 이 스코프면 삭제된다.)


4. 삭제

런처 디렉토리에서 Claude Code 를 켜고 slug 를 위임한다.

cd ~/standarda-devtools
claude
delete-project 로 my_project 지워줘

Phase 2 에서 삭제 대상 목록이 출력된다. 되돌릴 수 없으므로 목록을 눈으로 검증한 뒤 yes 를 입력한다.

yes
  • 공유 자원 slug(standarda-core·standarda-template·wiki 등)은 allowlist 로 거부된다. slug 가 비었거나 ..·/ 를 포함하면 즉시 중단된다.
  • wiki 포트 표는 별도 git repo 라 에이전트가 변경만 하고 commit 하지 않는다. 삭제 후 wiki 변경 commit 안내가 온다.
  • GitHub repo 삭제가 실패하면(scope·admin 부족) 다른 단계는 그대로 진행하고 repo 만 수동 처리하도록 원인을 진단해 알려준다.

마무리

  • 핵심 정리: delete-project 3단계(discovery → 확인 → 삭제)로 프로젝트와 부수 자원(DB·포트·vhost·인증서·Route53·repo·메모리)을 일괄 정리했다. repo 삭제는 최초 1회 gh auth refresh ... -s delete_repo, Route53 은 popup-chris 프로필 필요.
  • 다음 시간: 프로젝트 생애주기를 다룰 줄 알았으니 개발(AI 에이전트 구현)로 넘어간다.
이 강의를 학습하셨나요?