Code6OfficeBETA
초급 가이드 · 서버 관리

웹사이트 공개 4편: 개발과 운영을 분리하기

웹사이트 공개 실습 4/14 · 가상 프로젝트 작은 작업실 기준입니다. example.com은 설명용 예약 도메인입니다. 외부 설정에는 반드시 본인 소유 도메인을 사용하세요.

이번 편의 목표

운영용 4100 화면을 유지하면서 개발용 4101 화면을 따로 실행합니다. 도메인 연결 전에 분리해두면 실제 방문자가 있는 사이트를 실험 대상으로 쓰지 않아도 됩니다.

| 구분 | 운영용 예제 | 개발용 예제 | | --- | --- | --- | | Compose 파일 | compose.yaml | compose.dev.yaml | | 주소 | localhost:4100 | localhost:4101 | | 프로젝트 | mini-workshop | mini-workshop-dev | | 설정 파일 | .env | .env.dev | | 데이터 볼륨 | site-data | dev-data |

분리해서 실행하기

  1. .env.example을 다시 복제해 .env.dev를 만듭니다. 운영 .env에 실사용 인증값이 있다면 그것을 복사하지 않습니다.
  2. .env.dev의 SITE_URL과 AUTH_URL을 http://localhost:4101로 바꿉니다. PUBLIC_INDEXING=false를 유지하고 Google·Tunnel·분석·광고 값은 비워둡니다.
  3. 프로젝트 터미널에서 아래 명령을 실행합니다.
docker compose -f compose.dev.yaml up -d --build
docker compose -f compose.dev.yaml ps
  1. 4100과 4101을 각각 열어 두 환경이 동시에 존재하는지 확인합니다. 이 구성은 개발 검토용 빌드를 별도 실행하는 방식이며 파일 변경을 자동 반영하지 않습니다.
  2. AI에게 app/page.jsx 문장 하나만 바꾸게 한 뒤 개발 명령만 다시 실행합니다. 4101에는 새 문장이, 이미 실행 중인 4100에는 이전 문장이 보여야 합니다.
  3. 4101에서 링크·모바일 화면·오류를 확인합니다. 검토가 끝나고 배포하기로 결정했을 때만 운영 Compose를 다시 빌드합니다.

자주 막히는 지점

운영 글이 개발 화면에 안 보여요. 분리된 볼륨이므로 정상입니다. 개발에는 가상의 예제 데이터를 넣습니다. 실제 회원·계정·인증값을 복사하지 않습니다.

두 환경을 켰는데 같은 화면이 바뀌어요. 브라우저 주소의 포트와 실행한 Compose 파일을 확인합니다. 프로젝트 이름과 볼륨을 공유하도록 바꾸지 않았는지도 확인합니다.

개발에서 되면 바로 공개해도 되나요? 로컬 화면만으로 도메인·Google 콜백·분석까지 확인한 것은 아닙니다. 운영 반영 후에도 해당 기능을 다시 확인합니다.

완료 기준과 검증

두 주소가 독립적으로 열리고 개발 재빌드가 기존 운영 컨테이너를 교체하지 않으면 완료입니다. 예제의 포트·프로젝트·데이터 분리와 컨테이너 재생성 후 데이터 유지를 확인했습니다. Docker 이미지를 다시 빌드하지 않은 소스 변경은 실행 화면에 반영되지 않습니다.

공식 자료 확인: 2026-11-15. Compose 프로젝트 이름 공식 문서(영문), 다중 Compose 파일 공식 문서(영문).

함께 읽기


3편: Docker 컨테이너로 실행하기 · 5편: 도메인 구매와 관리 화면