CI/CD와 운영 자동화

Docker, GitHub Actions, Nginx —— 한 명령으로 프로덕션급 설정 생성해요

DevOps 설정, 매번 악몽 같아요

YAML 지옥 + 환경 불일치 + 설정 조정 반나절

GitHub Actions의 YAML 들여쓰기를 한 칸 틀리면, 파이프라인 전체가 안 돼요. 에러 메시지는 "syntax error"예요. 몇백 줄의 YAML을 봤는데 그 한 칸의 공백을 찾아야 해요.

"내 로컬에선 잘 돌아가는데?" —— 유명한 말이에요. Docker 이미지 버전 잘못, 환경 변수 못 넘겨줌, 포트 매핑 뒤바뀜, 매번 배포가 도박 같아요.

Nginx 설정을 인터넷에서 복사했는데, HTTPS 인증서가 작동 안 됐어요. 리버스 프록시 502, access log는 404로 가득 찼어요. 3시간 삽질 끝에 proxy_pass에 슬래시 빠뜨린 거 발견했어요.

OpenClaw가 프로덕션급 설정을 생성해줘요

템플릿 때려 맞추기 아니고, 당신의 프로젝트를 이해하고 맞춤형 생성해요

OpenClaw는 당신의 프로젝트 구조를 분석해요 —— 뭐 쓰는 언어, 뭐 쓰는 프레임워크, 뭐 서비스에 의존하는지, 뭐 환경 변수 필요한지 다 파악하고 나서, 맞춤형 설정을 생성해요.

생성된 Dockerfile은 막 latest 이미지를 가져오는 게 아니에요. 다단계 빌드, 이미지 축소, 보안 모범 사례, 다 생각했어요.

GitHub Actions workflow도 npm test만 하는 게 아니에요. 캐시 전략, 병렬 작업, 조건부 배포, Secret 관리 등 프로덕션에 필요한 게 다 있어요. 가장 중요한 건 —— 생성된 YAML의 들여쓰기는 절대 틀리지 않아요.

DevOps Prompt, 복사하면 끝

Docker, CI/CD, Nginx 삼총사. 각각 프로덕션급 설정이에요.

Docker + docker-compose 전체 설정 골든 인스트럭션
이 Node.js 프로젝트에 대해 완전한 Docker 설정을 생성해줄래:

Dockerfile 요구:
1. 다단계 빌드 (builder + production)
2. Alpine 기본 이미지 사용, 최종 이미지 작으면 좋아
3. non-root 유저로 실행
4. 캐시 레이어 잘 활용 (package.json 먼저 COPY, npm install)
5. healthcheck 추가

docker-compose.yml 요구:
1. 애플리케이션 서비스 + 데이터베이스 (PostgreSQL) + Redis
2. dev 환경과 prod 환경 구분 (profiles나 override 파일 사용)
3. 데이터 볼륨 영속화
4. 네트워크 격리
5. 환경 변수는 .env 파일로 관리

.dockerignore와 필요한 설명도 붙여줄래.
이 Prompt가 생성한 Docker 설정은 정말 프로덕션에 올릴 수 있는 거예요. 인터넷에서 그냥 FROM node:latest 한 줄로 하는 튜토리얼 같은 게 아니에요. 다단계 빌드는 이미지를 1GB에서 100MB 이하로 줄여요.
GitHub Actions CI/CD 전체 파이프라인 골든 인스트럭션
이 프로젝트에 대해 완전한 GitHub Actions CI/CD 파이프라인을 설정해줄래.

워크플로우 요구:

1. CI (매번 push와 PR 시 실행):
   - 코드 검사: ESLint / Prettier
   - 단위 테스트 + 커버리지 리포트
   - 빌드 검증
   - 의존성 보안 스캔

2. CD (main에 머지될 때 실행):
   - Docker 이미지 구성 후 ECR에 푸시
   - AWS ECS (또는 EC2)에 배포
   - 배포 후 자동으로 스모크 테스트 실행
   - 실패하면 자동 롤백

3. 최적화:
   - npm/pip 캐시로 속도 높이기
   - 테스트 병렬화
   - 관련 파일이 변했을 때만 해당 단계 실행

모든 비밀키는 GitHub Secrets로 관리할 거예요.
완전한 CI/CD 설정을 수동으로 하면 최소 반나절은 걸려요. 그리고 디버깅도 계속 해야 해요. 이 Prompt 한 번이면 기본 설정이 되고, 변수명 몇 개만 고치면 돌아가요.
Nginx 리버스 프록시 + HTTPS + 부하 분산 고급 기법
프로덕션급 Nginx 설정을 생성해줄래:

1. 리버스 프록시:
   - 정적 리소스 (/) → 로컬 디렉토리
   - API 요청 (/api/) → 백엔드 서비스 (upstream)
   - WebSocket 지원 (/ws/)

2. HTTPS 설정:
   - Let's Encrypt 인증서 (Certbot 자동 갱신)
   - HTTP 자동 HTTPS 리다이렉트
   - HSTS, OCSP Stapling
   - TLS 1.2 이상만, 안전한 암호 모음

3. 부하 분산:
   - upstream 여러 백엔드 인스턴스
   - 헬스 체크
   - least_conn 전략

4. 성능 최적화:
   - Gzip 압축
   - 정적 리소스 캐시 헤더
   - 요청 속도 제한 (DDoS 방지)

Certbot 설치와 인증서 신청 명령도 붙여줄래.
Nginx 설정은 문제가 가장 잘 생기는 부분이에요. proxy_pass 슬래시 있고 없고, location 매칭 우선순위, upstream 헬스 체크 —— 이런 함정들을 AI가 다 피해줄 거예요.

설정 생성: OpenClaw vs 수동 YAML 작성

수동으로 작성하는 게 나쁜 건 아니지만, 더 똑똑한 방법이 있어요.

OpenClaw
  • 프로젝트 구조에 맞게 설정을 만들어요. 그냥 범용 템플릿 아니에요
  • 보안 모범 사례 (non-root, Secret 관리, TLS 설정)가 포함돼요
  • 생성된 YAML 포맷이 정확해요. 들여쓰기 에러 없어요
  • 한 번의 Prompt로 Docker + CI/CD + Nginx 다 해요
VS
수동 YAML 작성 / 인터넷 복사
  • Stack Overflow에서 복사해온 설정은 버전이 오래되었을 수도 있어요
  • 보안 설정이 종종 빠져요. 온라인 가서 발견돼요
  • YAML 들여쓰기를 반나절 동안 조정해요. 한 칸 차이가 모든 걸 깨요
  • 이것저것 짜 맞추다 보면 설정들이 서로 충돌할 수 있어요

실제 상황: 새 프로젝트 DevOps 처음부터 구축

새 프로젝트를 온라인에 올려야 하는데, 운영 담당자가 당신 혼자예요
백엔드 Node.js + PostgreSQL + Redis, 프론트 React. Docker 컨테이너화, GitHub Actions CI/CD, Nginx 리버스 프록시, HTTPS 다 필요해요. 보스가 일주일 안에 하라고 했어요.
OpenClaw
3개의 Prompt 돌려요. Docker 전체 설정, CI/CD 파이프라인, Nginx 설정 다 생성돼요. 프로젝트 특정 변수 몇 개만 반나절 동안 고쳐요. 테스트 통과하면 다음날 테스트 환경 배포 시작해요. 일주일 안에 다 했어요.
직접 처음부터 해요
Docker 다단계 빌드만 2일 연구했어요. GitHub Actions 캐시 설정은 하루 삽질했어요. Nginx HTTPS 설정은 자정까지 했어요. 일주일이 지났는데 아직도 CI 에러로 싸우고 있어요. 보스가 진도 묻고 있어요.

DevOps 설정 팁

💡 생성된 설정은 먼저 로컬에서 한 번 돌려봐요. Docker는 docker-compose up --build로 테스트하고, GitHub Actions는 act를 써서 로컬에서 시뮬레이션해요.
🎯 OpenClaw에게 설정에 자세한 주석을 붙이라고 해요. 3개월 후에 설정을 수정해야 할 때, 당시 자신이 주석을 붙여준 것에 감사할 거예요.
⚠️ 생성된 설정에 비밀키, 비밀번호가 있으면 환경 변수나 Secret으로 관리하세요. 절대로 설정 파일에 하드코딩하지 마세요. 이건 철칙이에요.
이 사례가 도움이 됐나요?