# SSL 증명서 자동화 프로젝트: 역할별 부담과 일정 현실성 분석 ## 역할별 업무 부담 분석 ### 1. PM (Project Manager) - 부담도: ★★★☆☆ (중) **전체 기간 투입: 30-40%** #### 주요 업무 ``` Phase 1 (조사 1개월): 50% 투입 ├─ 이해관계자 인터뷰 (인프라팀, 보안팀, 컴플라이언스) ├─ GlobalSign 영업팀과 계약 협상 ├─ 예산 확보 ($50K - $100K 예상) └─ 킥오프 미팅 및 팀 구성 Phase 2 (설계/개발 6개월): 30% 투입 ├─ 주간 스프린트 관리 ├─ 리스크 관리 (증명서 만료 사고 방지) ├─ 변경 관리 프로세스 수립 └─ 월간 경영진 보고 Phase 3 (마이그레이션 1개월): 70% 투입 ├─ 롤아웃 계획 수립 ├─ 긴급 대응 체계 구축 └─ 사후 검증 ``` #### 실제 어려움 - **정치적 조율**: 보안팀은 "자동화 = 통제력 상실" 우려 - **예산 승인**: 즉각적 ROI가 없어 보이는 인프라 투자 설득 - **우선순위 경쟁**: 다른 프로젝트와 리소스 경쟁 **현실 체크**: PM이 다른 프로젝트와 병행한다면 매우 힘들다. 전담 PM 추천. --- ### 2. 시스템 아키텍트 - 부담도: ★★★★★ (매우 높음) **전체 기간 투입: 초반 80% → 후반 30%** #### 주요 업무 ``` Phase 1 (조사): 80% 투입 ├─ 기존 인증서 인벤토리 분석 (300개 서버 조사) ├─ 기술 스택 선정 (PoC 3-4개 구축) │ ├─ Certbot vs 커스텀 구현 비교 │ ├─ DB 선택 (PostgreSQL vs MongoDB) │ └─ 배포 도구 평가 (Ansible vs Terraform) ├─ 아키텍처 문서 작성 └─ 성능/확장성 계획 Phase 2 (설계/개발): 60% 투입 ├─ 상세 설계 리뷰 (매 스프린트) ├─ 기술 부채 관리 ├─ HA/DR 설계 └─ 성능 테스트 시나리오 작성 Phase 3 (마이그레이션): 50% 투입 ├─ 카나리 배포 모니터링 └─ 장애 대응 시나리오 리허설 ``` #### 실제 어려움 - **기술 선택의 딜레마**: - "Certbot으로 빠르게 vs 커스텀으로 완벽하게" - 의사결정이 전체 프로젝트 방향 결정 - **레거시 시스템 조사**: - 10년 전 구축된 서버의 증명서 설정 파악 (문서 없음) - 예상치 못한 특수 케이스 발견 (자체 서명 인증서, 중간 CA 등) **현실 체크**: 시니어 아키텍트 필수. 주니어는 불가능. 초반 1-2개월이 가장 힘듦. --- ### 3. PKI/SSL 전문가 - 부담도: ★★★☆☆ (중) **전체 기간 투입: 초반 60% → 후반 20% (자문 역할)** #### 주요 업무 ``` Phase 1 (조사): 80% 투입 ├─ GlobalSign Atlas 기술 검증 ├─ DV/OV/EV 증명서 정책 수립 ├─ Challenge 방식 선정 (HTTP-01 vs DNS-01) └─ 보안 요구사항 정의 Phase 2 (설계/개발): 30% 투입 ├─ ACME 프로토콜 구현 리뷰 ├─ 증명서 체인 검증 로직 검토 └─ PQC 로드맵 작성 Phase 3 (마이그레이션): 50% 투입 ├─ 증명서 검증 자동화 스크립트 작성 └─ 보안 감사 대응 ``` #### 실제 어려움 - **전문가 채용 난이도**: PKI 전문가는 매우 희소 - **대안**: 외부 컨설팅 (GlobalSign이 제공하는 경우 많음) - **OV/EV 증명서 복잡도**: - 자동화가 완전하지 않음 (조직 검증은 수동) - "부분 자동화"로 타협 필요 **현실 체크**: 외부 컨설턴트 + 사내 보안팀 협업으로 가능. 전담 불필요. --- ### 4. API 개발자 - 부담도: ★★★★★ (매우 높음) 🔥 **전체 기간 투입: 80-100% (핵심 역할)** #### 주요 업무 (가장 바쁨!) ``` Phase 1 (조사): 40% 투입 ├─ ACME 프로토콜 학습 (RFC 8555 정독) ├─ Python acme 라이브러리 PoC └─ GlobalSign Sandbox 테스트 Phase 2 (설계/개발): 100% 투입 🔥🔥🔥 ├─ 핵심 컴포넌트 구현 (3-4개월 소요) │ ├─ ACME 클라이언트 (2주) │ ├─ 증명서 관리 API (3주) │ ├─ 승인 워크플로우 엔진 (2주) │ ├─ 배포 오케스트레이션 (3주) │ └─ 모니터링/알림 (1주) ├─ DB 스키마 설계 및 마이그레이션 ├─ 단위/통합 테스트 작성 ├─ API 문서 작성 └─ 에러 핸들링 및 재시도 로직 (1-2주) Phase 3 (마이그레이션): 80% 투입 ├─ 프로덕션 버그 수정 ├─ 성능 튜닝 └─ 긴급 패치 ``` #### 코드 작성량 추정 ```python # 예상 코드량 (주석 제외) acme_client/ : 3,000 lines api/ : 4,000 lines models/ : 1,500 lines tasks/ (Celery) : 2,000 lines deployment/ : 2,500 lines tests/ : 5,000 lines ------------------------------------- Total : 18,000 lines # 개발 기간: 6개월 # 일일 평균: 약 150 lines (품질 높은 코드 기준) ``` #### 실제 어려움 - **ACME 프로토콜의 복잡성**: - JWS 서명, Nonce 관리, Polling 로직 - 디버깅 어려움 (CA 서버와의 통신) - **비동기 작업 관리**: - Celery 작업 큐, 재시도, Dead letter queue - **엣지 케이스 처리**: - Rate limit, DNS 전파 지연, 네트워크 타임아웃 - 실제 프로덕션에서만 발견되는 버그들 **현실 체크**: - **1명으로는 위험함** - **최소 2명 (Senior 1 + Mid 1) 권장** - Senior가 아키텍처/핵심 로직, Mid가 API/DB/테스트 담당 --- ### 5. 인프라 개발자 - 부담도: ★★★★☆ (높음) **전체 기간 투입: 50-60%** #### 주요 업무 ``` Phase 1 (조사): 50% 투입 ├─ 서버 인벤토리 조사 (300대) ├─ Nginx/Apache 버전 확인 ├─ DNS provider API 조사 (Route53, Cloudflare) └─ Vault 도입 검토 Phase 2 (설계/개발): 60% 투입 ├─ Ansible 플레이북 작성 (2-3주) │ ├─ Nginx SSL 설정 자동화 │ ├─ Apache SSL 설정 자동화 │ └─ 롤백 스크립트 ├─ Vault 구축 및 정책 설정 (2주) ├─ DNS 자동화 스크립트 (1주) ├─ AWS/K8s 배포 스크립트 (2주) └─ HA 구성 (PostgreSQL, Redis) (2주) Phase 3 (마이그레이션): 80% 투입 ├─ 단계적 롤아웃 (5대 → 50대 → 전체) ├─ 모니터링 대시보드 구축 └─ 장애 대응 ``` #### 실제 어려움 - **서버 다양성**: - CentOS 6, Ubuntu 18.04, Amazon Linux 2 혼재 - Ansible 플레이북의 OS별 분기 필요 - **네트워크 장비**: - F5 BIG-IP, HAProxy의 API가 서버마다 다름 - 수동 개입 불가피한 경우 발생 - **SSH 접근 권한**: - 보안팀의 승인 절차 - Bastion host를 통한 접근 **현실 체크**: 1명 전담 가능하지만, 마이그레이션 기간에는 추가 지원 필요. --- ## 8개월 일정 현실성 분석 ### 원래 계획 ``` Phase 1: 조사 (1개월) Phase 2: 설계/개발 (6개월) Phase 3: 마이그레이션 (1개월) ``` ### 현실적 일정 (리스크 버퍼 포함) ``` Phase 0: 준비 (추가 필요!) - 1개월 ├─ 예산 승인 ├─ 팀원 채용/배정 └─ GlobalSign 계약 Phase 1: 조사 - 1.5개월 (0.5개월 증가) ├─ 서버 인벤토리 조사가 예상보다 오래 걸림 ├─ 레거시 시스템 분석 지연 └─ PoC가 계획대로 안됨 Phase 2: 설계/개발 - 7-8개월 (1-2개월 증가) 🚨 ├─ 개발 지연 요인: │ ├─ 요구사항 변경 (승인 워크플로우 추가) │ ├─ 버그 수정 시간 │ ├─ 테스트 커버리지 확보 │ └─ 보안 리뷰 지적사항 대응 ├─ 중간에 다른 긴급 이슈 발생 (현실) └─ 연말/연초 휴가 시즌 Phase 3: 마이그레이션 - 2개월 (1개월 증가) ├─ 카나리 배포에서 문제 발견 ├─ 일부 서버의 특수 케이스 └─ 롤백 후 재시도 Phase 4: 안정화 (추가 필요!) - 1개월 ├─ 프로덕션 버그 수정 ├─ 성능 최적화 └─ 문서화 완성 총 기간: 12-13개월 (현실적) ``` ### 일정을 8개월로 맞추려면? #### 옵션 1: 범위 축소 (추천) ``` MVP (Minimum Viable Product) 접근: ├─ Phase 1: DV 증명서만 자동화 (OV/EV 제외) ├─ Phase 2: HTTP-01만 구현 (DNS-01 나중에) ├─ Phase 3: 50대 서버만 우선 적용 └─ 나머지는 Phase 2로 미뤄서 점진적 개선 이렇게 하면 8개월 가능! ``` #### 옵션 2: 인력 증원 ``` API 개발자: 1명 → 2명 인프라 개발자: 1명 → 1.5명 (파트타임 지원) 비용 증가: +$200K 일정 단축: 12개월 → 9-10개월 (8개월은 여전히 도전적) ``` #### 옵션 3: 외주 활용 ``` ACME 클라이언트: 오픈소스 Certbot 사용 → 커스텀 구현 포기 → 2개월 절약 배포 자동화: Terraform 모듈 구매 → 1개월 절약 총 3개월 절약 → 10개월 ``` --- ## 최종 추천 구성 ### 현실적 팀 구성 ``` 필수 인력: ├─ PM: 0.5명 (다른 프로젝트와 병행) ├─ 시스템 아키텍트: 1명 (초반 집중, 후반 감소) ├─ API 개발자 (Senior): 1명 ⭐ 핵심 ├─ API 개발자 (Mid): 1명 ⭐ 핵심 ├─ 인프라 개발자: 1명 └─ PKI 전문가: 외부 컨설팅 (월 40시간) 총 4.5 FTE (Full Time Equivalent) ``` ### 현실적 일정 ``` 옵션 A (보수적): 12개월 → 실패 확률 낮음 → 품질 높은 결과 옵션 B (도전적): 8개월 → 범위 축소 (MVP) → 위험 높지만 가능 → Phase 2로 확장 예정 추천: 옵션 B (MVP 8개월 + 확장 4개월) ``` --- ## 역할별 가장 힘든 사람 순위 ``` 1위: API 개발자 (Senior) 🔥🔥🔥 → 프로젝트 성공의 핵심 → 번아웃 위험 높음 → 코드 리뷰, 설계, 구현 모두 담당 2위: 시스템 아키텍트 → 초반 1-2개월이 지옥 → 기술 선택 실수 시 전체 프로젝트 위험 3위: 인프라 개발자 → 마이그레이션 기간 야근 가능성 → 증명서 만료 사고 발생 시 책임 4위: API 개발자 (Mid) → Senior 지원 역할 → 학습 곡선 존재하지만 관리 가능 5위: PM → 정치적 스트레스는 있지만 → 기술적 부담은 낮음 ``` --- ## 결론 ### Q1: 8개월은 충분한가? **A: 불가능하진 않지만 도전적입니다.** - **Full scope**: 12개월 필요 - **MVP scope**: 8개월 가능 - **중요한 것**: 범위 명확화 ### Q2: 어떤 역할이 가장 힘든가? **A: API 개발자 (Senior) 입니다.** 이 사람이 없으면 프로젝트 실패 확률 90% ### Q3: 리스크를 줄이려면? 1. **범위 축소**: DV + HTTP-01 + 50대 서버 먼저 2. **인력 확보**: API 개발자 2명은 필수 3. **외부 도움**: GlobalSign 기술 지원 활용 4. **버퍼 확보**: 각 Phase에 20% 여유 추가 ### 최종 조언 ``` 현실적 성공 시나리오: ├─ Phase 1 (MVP): 8개월 │ └─ DV 증명서 자동화 (50대 서버) ├─ Phase 2 (확장): 4개월 │ └─ OV/EV, 전체 서버, DNS-01 └─ Phase 3 (PQC): 2027년 이후 총 12개월으로 80% 목표 달성 나머지는 점진적 개선 ``` **이렇게 하면 일정도 맞추고, 팀 번아웃도 방지할 수 있습니다!**