CI/CD와 운영 자동화
Docker, GitHub Actions, Nginx —— 한 명령으로 프로덕션급 설정 생성해요
DevOps 설정, 매번 악몽 같아요
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 삼총사. 각각 프로덕션급 설정이에요.
이 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와 필요한 설명도 붙여줄래.
이 프로젝트에 대해 완전한 GitHub Actions CI/CD 파이프라인을 설정해줄래.
워크플로우 요구:
1. CI (매번 push와 PR 시 실행):
- 코드 검사: ESLint / Prettier
- 단위 테스트 + 커버리지 리포트
- 빌드 검증
- 의존성 보안 스캔
2. CD (main에 머지될 때 실행):
- Docker 이미지 구성 후 ECR에 푸시
- AWS ECS (또는 EC2)에 배포
- 배포 후 자동으로 스모크 테스트 실행
- 실패하면 자동 롤백
3. 최적화:
- npm/pip 캐시로 속도 높이기
- 테스트 병렬화
- 관련 파일이 변했을 때만 해당 단계 실행
모든 비밀키는 GitHub Secrets로 관리할 거예요.
프로덕션급 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 설치와 인증서 신청 명령도 붙여줄래.
설정 생성: OpenClaw vs 수동 YAML 작성
수동으로 작성하는 게 나쁜 건 아니지만, 더 똑똑한 방법이 있어요.
- 프로젝트 구조에 맞게 설정을 만들어요. 그냥 범용 템플릿 아니에요
- 보안 모범 사례 (non-root, Secret 관리, TLS 설정)가 포함돼요
- 생성된 YAML 포맷이 정확해요. 들여쓰기 에러 없어요
- 한 번의 Prompt로 Docker + CI/CD + Nginx 다 해요
- Stack Overflow에서 복사해온 설정은 버전이 오래되었을 수도 있어요
- 보안 설정이 종종 빠져요. 온라인 가서 발견돼요
- YAML 들여쓰기를 반나절 동안 조정해요. 한 칸 차이가 모든 걸 깨요
- 이것저것 짜 맞추다 보면 설정들이 서로 충돌할 수 있어요