블로그
에이전트 네이티브 백엔드

게시일 수정일

Arag 및 Anshu

Claude Code와 Cohesivity로 풀스택 앱 만들기: 전체 가이드

Markdown으로 읽기

Claude Code는 임시 테넌트를 만들고 Postgres와 Railway 호스팅을 프로비저닝하고 서버 전용 가입 엔드포인트를 추가하고 중복 쓰기를 테스트하고 빌드된 애플리케이션을 업로드해 Cohesivity에 풀스택 대기자 명단을 만들 수 있습니다. 프로젝트 소유권을 등록하거나 유료 경계를 넘기 전에는 여전히 사람의 승인이 필요합니다.

대기자 명단은 검사하기에 작지만 데이터 검증, 고유성, 서버 자격 증명, 재시도, 배포까지 확인할 수 있어 이 가이드의 예제로 사용합니다.

프로비저닝 전에 동작을 정의하세요

애플리케이션에는 다음이 필요합니다.

  • 대기, 성공, 오류 상태를 보여 주는 이메일 양식
  • 주소를 검증하고 정규화하는 서버 엔드포인트
  • 이메일 고유 제약 조건이 있는 Postgres 테이블
  • 중복에 안전한 삽입
  • 서버 전용 백엔드 자격 증명
  • 배포 가능한 애플리케이션과 공개 상태 검사

소셜 로그인, 실시간 통신, 벡터 스토리지, 모델 API는 필요하지 않습니다. 이런 리소스를 프로비저닝하면 작업에 도움이 되지 않는 설정만 늘어납니다.

백엔드 프로비저닝 가이드는 아래에서 사용하는 제어 영역과 데이터 영역의 분리를 설명합니다.

Claude에 먼저 계획을 요청하세요

프로젝트에서 Claude Code를 시작하고 프레임워크, 패키지 관리자, 기존 테스트 설정, 서버 전용 환경 변수 규칙, 빌드 출력, 배포 명령을 식별하게 하세요. 공식 Claude Code CLI는 계획 중심 권한 모드와 도구 제한을 지원하므로 이 검사 중에는 외부 호출을 비활성화합니다.

계획에는 변경할 정확한 파일과 필요한 리소스가 있어야 합니다. Cohesivity 키를 NEXT_PUBLIC_, VITE_ 또는 브라우저에서 읽을 수 있는 변수에 넣겠다면 거부하세요.

격리된 테넌트를 만드세요

유효한 .cohesivity 파일이 있으면 Claude가 재사용해야 합니다. 없다면 초기화를 미리 확인하고 실행합니다.

npx @cohesivity/init --dry-run
npx @cohesivity/init

생성된 테넌트는 72시간 동안 유지됩니다. 이 명령은 Claude에 필요한 프로젝트 컨텍스트도 제공합니다. 반환된 키를 채팅, 로그, 소스 코드에 붙여 넣지 마세요.

Postgres 문서를 읽고 프로비저닝하세요

Claude는 호출 전에 현재 Postgres 제품 페이지를 가져와야 합니다.

curl -sS -A "ClaudeCode-Waitlist/1.0" \
  https://cohesivity.ai/offerings/postgres

승인하면 Claude는 안정된 멱등성 키와 문서화된 관리 엔드포인트로 postgres를 프로비저닝합니다. 그런 다음 서버 측 코드에서 스키마를 만듭니다.

CREATE TABLE IF NOT EXISTS waitlist_signups (
  id BIGSERIAL PRIMARY KEY,
  email TEXT NOT NULL UNIQUE,
  created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

고유 제약 조건은 두 요청이 같은 정규화 주소를 삽입하지 못하게 하는 최종 방어선입니다. 애플리케이션 코드도 충돌을 처리해 일반 500 오류 대신 기존 가입 상태를 반환해야 합니다.

서버 엔드포인트를 추가하세요

핸들러는 다음을 수행해야 합니다.

  1. JSON을 파싱하고 주소가 없거나 잘못됐으면 거부합니다.
  2. 문서화된 규칙 하나에 따라 이메일을 다듬고 정규화합니다.
  3. $1 플레이스홀더로 매개변수화된 PostgreSQL을 사용합니다.
  4. 논리적 가입 작업에 멱등성 키 하나를 보냅니다.
  5. 고유성 충돌을 성공한 기존 가입 응답으로 매핑합니다.
  6. 내부 오류나 자격 증명이 없는 작은 공개 응답을 반환합니다.

브라우저는 애플리케이션 엔드포인트를 호출하고 서버만 Cohesivity를 호출합니다. 이렇게 해야 관리 키와 애플리케이션 키가 클라이언트 번들에 들어가지 않습니다.

실패 경로를 테스트하세요

최소 네 가지 사례를 실행합니다.

사례 예상 결과
유효한 새 이메일 행 하나와 성공 응답
잘못된 이메일 검증 응답, 데이터베이스 호출 없음
같은 정규화 이메일 두 번 행 하나와 안정된 기존 가입 응답
응답 손실 후 재시도 논리적 결과 하나, 중복 행 없음

빌드된 클라이언트 애셋에서 coh_man_과 coh_app_도 검색하세요. 단위 테스트가 통과해도 번들러가 비밀 값을 서버에만 뒀다는 뜻은 아닙니다.

두 번째 사용자 백엔드 검토는 애플리케이션이 공개 대기자 명단을 넘어설 때 사용자 및 테넌트 간 테스트를 추가합니다.

Railway 호스팅으로 프로비저닝하고 배포하세요

Claude는 https://cohesivity.ai/offerings/railway-hosting을 가져오고 제품을 프로비저닝한 뒤 Cohesivity의 Railway 배포 API로 애플리케이션을 업로드합니다. 반환된 Cohesivity deployment_url과 logs_url을 사용해야 합니다. Railway CLI를 설치하거나 GitHub 저장소를 연결하거나 Railway 자격 증명을 요청해서는 안 됩니다.

배포와 공개 경로가 준비될 때까지 기다리세요. 그런 다음 공개 서버에서 상태 검사와 실제 가입 하나를 실행합니다. 공급자의 배포 상태만으로 공개 경로가 작동하는지는 알 수 없습니다.

결과를 깔끔하게 인계하세요

Claude는 다음을 보고해야 합니다.

  • 공개 배포 URL
  • 실행한 테스트와 결과
  • 생성한 리소스
  • 테넌트 만료 시각
  • 프로젝트 소유권 등록에 필요한 작업
  • 서버 환경 설정이 있는 파일
  • 사용자가 유지하지 않을 때의 정리 경로

아래 프롬프트는 승인 지점을 유지하면서 전체 작업을 전달합니다.