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

프로젝트 생성하기

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

목표 create-project 로 새 프로젝트를 생성하고 setup.sh 로 동일 환경을 세팅한 뒤 dev 도메인으로 접속한다.

1. 프로젝트 만들기

런처 디렉토리에서 Claude Code 를 켜고 create-project 를 위임한다. slug 은 언더스코어(my_project), dev 도메인은 하이픈(my-project-dev.popupstudio.ai)으로 갈린다.

cd ~/standarda-devtools
claude
create-project 로 'my_project' 만들어줘

이 에이전트가 내부적으로 하는 일:

  1. slug 도출 + 충돌 확인: project_name 을 lower + 공백/하이픈 → 언더스코어 치환(cookiecutter.json derive 규칙). $HOME/<slug> 가 있으면 BLOCKED: target-exists.
  2. 포트 할당: 팀 wiki infrastructure/server-environment.md 의 포트 표(8000-8099)에서 빈 포트 2개(dev/prod)를 골라 2행 추가한다.
  3. cookiecutter 실행: cookiecutter https://github.com/popupstudio-ai/standarda-template.git --no-input project_name=.... project_slug·github_repo·db_name 등은 derive 로 자동 채워진다. 이어서 post-gen hook(post_gen_project.py)이 src/ 에서 처리:
    • git init + core.hooksPath=.githooks (커밋 규칙 hook 활성화)
    • remote add origin + gh repo create popupstudio-ai/<slug> --private
    • /etc/standarda/server.conf 의 SERVER_HOST 를 읽어 ALLOWED_HOSTS 주입
    • .githooks/·setup.sh 실행권한 부여
    • gh 미인증이면 repo 생성만 건너뛰고 나머지는 진행
  4. .memory symlink: src 절대경로를 인코딩([^a-zA-Z0-9] → -)해 ~/.claude/projects/<enc>/memory 를 만들고 src/.memory 로 링크. .gitignore 에 .memory 는 이미 포함.
  5. src/CLAUDE.md 의 <PORT> 치환: dev/prod runserver 명령에 할당 포트 반영.

setup.sh 는 전 과정이 대화형이라 에이전트가 실행하지 않고 사용자에게 핸드오프한다. 생성이 끝나면 Claude Code 를 나간다.

/exit

2. 준비 스크립트 실행

setup.sh 는 6단계로 동일 환경을 세팅한다. 대화형이라 직접 실행한다.

cd ~/my_project
./setup.sh

스크립트가 하는 일:

  • [1/6] ../<slug>_static_cdn 디렉토리 생성.
  • [2/6] python3.11 -m venv . 로 프로젝트 루트에 venv 생성(../bin/activate 규칙 전제), venv 가 덮은 .gitignore 복원.
  • [3/6] pip install -r src/requirements.txt. standarda-core 는 git 태그 고정 설치(-e 금지).
  • [4/6] .env.example → .env 복사, DJANGO_SECRET_KEY(영숫자 50자) 생성해 .env 에 기록. 이어서 아래 두 지점에서 멈춘다.
  PostgreSQL 'ubuntu' 사용자 비밀번호:            ← DB 비밀번호. psql 연결로 검증하는 while 루프라 틀리면 재입력
  >>> 나머지 .env 항목(API 키 등)을 편집: ~/my_project/src/.env
  >>> 편집 완료 후 Enter                          ← API 키는 개발 챕터에서 채운다. 지금은 Enter
  • [5/6] createdb(없을 때만) + makemigrations + migrate.
  • [6/6] createsuperuser(대화형).

셋업 완료! 출력이 뜨면 끝이다. makemigrations 가 초기 마이그레이션을 생성하므로, 초기 commit/push 는 반드시 setup.sh 완료 후 한다.

cd ~/my_project/src
git add -A
git commit -m "초기 프로젝트 셋업 (cookiecutter standarda-template)"
git branch -M master
git push -u origin master

gh 미인증으로 repo 가 없으면 push 가 실패한다. gh repo create popupstudio-ai/my_project --private 후 재시도.


3. 웹으로 띄우기

프로젝트 src 에서 Claude Code 를 켜고 /dev 로 개발 서버를 띄운다. 첫 실행이면 포트 할당 + dev 도메인(vhost·인증서·Route53) 세팅까지 자동 진행된다.

cd ~/my_project/src
claude
/dev
  • 슬래시커맨드 /dev, 자연어 개발 서버 띄워줘 둘 다 같은 스킬로 라우팅된다.

https://my-project-dev.popupstudio.ai 로 접속되면 성공.


마무리

  • 핵심 정리: create-project(cookiecutter + post-gen hook + 포트/symlink/CLAUDE.md) → setup.sh(venv·pip·.env·SECRET_KEY·DB·migrate·superuser) → 초기 commit → /dev. 포팅 매뉴얼처럼 따라만 하면 동일 환경이 선다.
  • 주의 사항: create-project 는 런처(~/standarda-devtools)에서, /dev 는 프로젝트 src 에서 켠다. 초기 commit 은 setup.sh 의 makemigrations 뒤에.
  • 다음 시간: 기존 프로젝트 가져오기(clone-repo).
이 강의를 학습하셨나요?