"설정은 의도, 검증은 증거. 둘 다 있어야 안심할 수 있다."
Supabase 프로젝트를 dev/prod로 나누고, Vercel 환경변수에 Production에는 prod 키, Preview에는 dev 키를 각각 입력했습니다. 설정 화면에서 보면 분리된 것처럼 보이지만, "실제로 develop 브랜치가 dev DB에 연결되는지"는 화면만 봐서는 알 수 없었습니다. 설정만 해놓고 "됐겠지"하고 넘어가는 게 찜찜했습니다.
테스트용 코드를 만들어서 직접 확인했습니다. typing_phrases 테이블에 데이터를 조회하는 함수를 만들고, 홈페이지에 "DB 연결 성공/실패"를 출력하도록 했습니다. develop 브랜치에 push하자 Vercel이 자동으로 Preview 배포를 생성했고, 화면에 "DB 연결 성공"이 떴습니다.
이로써 세 가지를 눈으로 직접 확인했습니다:
develop 브랜치 → dev Supabase 연결 정상 git push 한 번으로 Vercel Preview 배포가 자동 생성됨 브랜치별 환경변수 분리가 의도한 대로 작동함
확인이 끝난 후 테스트 코드는 바로 삭제하고 깔끔한 상태로 되돌렸습니다.
Supabase dev/prod 프로젝트를 분리하고 Vercel 환경변수까지 연결했지만, "진짜 나뉜 건지"를 확인하지 않으면 의도한 대로 동작하는지 알 수 없습니다. 테스트 코드 한 줄로 직접 검증하고, 확인 후 바로 정리하는 과정을 기록했습니다.
dev/prod를 나누는 이유는 "실수해도 되는 곳"과 "절대 실수하면 안 되는 곳"을 분리하는 것입니다. 그런데 나눠놓고 확인하지 않으면, 실수로 prod 키가 개발 환경에 연결되거나, dev 키가 운영 환경에 연결되는 사고가 날 수 있습니다. 설정 화면이 맞아 보인다고 실제로 맞다는 보장이 없습니다. 확인까지 해야 비로소 "제대로 나뉘었다"고 말할 수 있습니다. 테스트 코드는 일회성으로 만들고 바로 삭제하는 것이 맞습니다 — 검증은 증거를 남기는 행위이지, 코드를 남기는 행위가 아닙니다.
관련 프로젝트
프로젝트 개요 기획자(PM)로서 AI를 활용한 업무 자동화(AX) 사례를 문서화하는 개인 포트폴리오 사이트입니다. 국내 기업의 AX 기획자/AI PM 직군으로의 커리어 전환을 목표로, 사이트 자체가 채용 지원용 스토리텔링 자료로 실사용되고 있습니다. 핵심 패턴: 업무 병목 발견 → AI로 워크플로우 재설계 → Before/After·근거·재현 가능성 문서화 전체 서사는 '실행하지 않은 아이디어 나열'이 아니라, 하나의 검증된 자동화 패턴과 도메인별 확장 블루프린트를 갖춘 재사용 가능한 엔진을 보유하는 방향으로 수렴하고 있습니다. 기술 스택 Next.js 16, Tailwind CSS v4, TypeScript Supabase (개발/운영 환경 분리), Vercel, Resend Claude API 기반 기술 자문 및 프롬프트 설계 보안 아키텍처 관리자 CRUD는 세션 기반 인증과 RLS(Row Level Security)로 보호 공개 읽기 전용 경로는 별도의 익명 클라이언트로 분리 서비스 롤 키는 애플리케이션 코드에서 완전히 배제 권한 검증은 마이그레이션 파일 및 대시보드 검토를 통해서만 진행 작업 방식 (에이전틱 IDE 협업 워크플로우) AI 에이전트 기반 IDE가 파일/버전관리 작업을 담당하고, LLM은 기술 자문 및 프롬프트 작성 역할을 수행하는 협업 구조를 운영합니다. AI 자문 → 에이전트용 프롬프트 작성 → 실행자가 붙여넣기 → 계획 확인 → 자문 검토 → 실행 승인 → 로그 검토 → 직접 클릭 테스트 → 명시적 지시 시에만 커밋 통제 규칙 실행 전 계획 검토 필수 요약 보고가 아닌 직접 클릭 테스트로 검증 개발 환경 우선 적용 후 명시적 승인 하에 운영 환경 반영 커밋은 명시적 지시가 있을 때만 수행 DB 자격증명 직접 연결 및 범위 외 삭제 금지 브랜치 전략: 개발 브랜치에서 작업 후 운영 브랜치는 배포 전용으로 직접 커밋 금지, 병합 전 변경 범위 검증 현재 진행 상황 고객사 미팅 브리핑 자동화 사례: 1단계 완료, 개발/운영 환경 배포 및 실데이터 테스트 완료 범위 변경 감지 자동화 사례: 상태 확인 진행 중 리스크 조기 경보 자동화 사례: 운영 환경 배포 완료 보안 사고 관련 포스트: 'AI 리스크 거버넌스 사례'로 재구성 예정 AI 활용 관련 콘텐츠 시리즈 초안 작성 완료, 게시 미확정 핵심 학습 원칙 보고가 아닌 검증: 버그·보안 이슈는 항상 직접 로그/브라우저 검토를 통해서만 발견되며, 에이전트의 자체 결과 요약을 그대로 신뢰하지 않음 보안 사고의 콘텐츠화: 실제 발생한 권한 관련 이슈 사례를 케이스 스터디로 재구성하여 콘텐츠화 커밋 의미 분리: 기능 단위/변경 유형별로 항상 분리 커밋 자동화하지 않는 것도 스토리: 저사용 빈도 기능을 의도적으로 고도화하지 않은 결정 자체를 AX 스토리텔링 소재로 활용