변경 로그

SCF의 모든 주요 변경 사항이 이 파일에 문서화됩니다.

이 형식은 Keep a Changelog를 기반으로 하며, Semantic Versioning을 따릅니다.

[3.0.0] - 2025-12-10

호환성을 깨는 변경 (Breaking Changes)

  • CloudFront 필수화: cloudfront.enabled 옵션 제거 - 보안을 위해 CloudFront가 항상 활성화됨
  • S3 퍼블릭 액세스 제거: S3 버킷에 직접 접근 불가, CloudFront를 통해서만 접근 가능
  • S3 웹사이트 호스팅 제거: s3.websiteHosting 옵션 제거

추가됨

  • Origin Access Control (OAC): CloudFront에서 S3로의 안전한 접근을 위한 OAC 도입
  • CloudFront Function: 디렉토리 요청에 대한 index.html 라우팅을 위한 CloudFront Function 자동 생성
  • 보안 강화: S3 버킷 정책이 CloudFront OAC만 허용하도록 변경

변경됨

  • CloudFront distribution이 OAC를 통해 S3에 접근
  • 모든 요청이 CloudFront를 통해 처리되어 보안 및 성능 향상

마이그레이션 가이드

v2.x에서 업그레이드하는 경우:

  1. cloudfront.enabled 옵션 제거 (더 이상 필요 없음)
  2. s3.websiteHosting 옵션 제거 (더 이상 지원 안 함)
  3. S3 URL 직접 접근 코드가 있다면 CloudFront URL로 변경
typescript
// 이전 (v2.x)
cloudfront: {
  enabled: true,  // ❌ 제거
  priceClass: 'PriceClass_100',
}

// 이후 (v3.0.0)
cloudfront: {
  // enabled 옵션 불필요 - 항상 활성화됨
  priceClass: 'PriceClass_100',
}

[3.0.1] - 2025-12-10

수정됨

  • S3 버킷 정책 마이그레이션: 기존 배포 업데이트 시에도 S3 버킷 정책이 CloudFront-only로 적용되도록 수정
  • 자동 보안 마이그레이션: v2.x에서 업그레이드한 사용자의 S3 버킷이 첫 번째 deploy 시 자동으로 보안 설정됨

[2.1.0] - 2025-12-01

추가됨

  • S3 파일 정리: 증분 배포 시 로컬에서 삭제된 파일을 S3에서도 자동으로 삭제
  • 배포 롤백: CloudFront 배포 실패 시 새로 생성된 S3 버킷 자동 정리
  • AWS API 재시도: 일시적인 네트워크 오류에 대한 지수 백오프 재시도 (최대 3회, 1초 → 2초 → 4초 지연)
  • 타임아웃 연장: CloudFront 배포 타임아웃이 20분에서 30분으로 증가
  • 즉시 상태 업데이트: remove 명령어가 각 리소스 삭제 후 즉시 상태 파일 업데이트

새 CLI 옵션

  • --no-rollback - CloudFront 배포가 실패해도 S3 버킷 유지
  • --no-cleanup - 증분 배포 시 S3 파일 정리 건너뛰기

변경됨

  • 자동 재시도 메커니즘으로 배포 안정성 향상
  • 부분 배포 실패 시 오류 복구 기능 강화

[2.0.2] - 2025-11-28

수정됨

  • Free Plan 호환성: Free pricing plan에서 distribution 업데이트 시 발생하던 에러 수정
  • Free plan distribution에서 priceClass 업데이트가 자동으로 스킵됨
  • Free plan은 모든 엣지 로케이션 사용 (PriceClass_All과 동일)

[2.0.1] - 2025-11-28

수정됨

  • Zod 스키마와 config 유틸리티에서 남아있던 TTL 참조 수정
  • TTL 검증 테스트 케이스 제거

변경됨

  • README에 v2.0.0 변경 로그 상세 내용 추가

[2.0.0] - 2025-11-28

호환성을 깨는 변경 (Breaking Changes)

  • TTL 설정 제거: CloudFront 설정에서 defaultTTL, maxTTL, minTTL 옵션이 제거되었습니다
  • AWS Managed Cache Policy 도입: CloudFront가 레거시 ForwardedValues 대신 CachingOptimized 관리형 캐시 정책을 사용합니다

추가됨

  • AWS Managed Cache Policy (CachingOptimized)를 통한 자동 캐시 관리
  • 새 CloudFront distribution 생성 후 가격 정책 전환 안내 메시지

변경됨

  • CloudFront distribution이 캐시 관리를 위해 CachePolicyId를 사용
  • 최신 AWS 모범 사례에 따른 CloudFront distribution 생성 개선

마이그레이션 가이드

v1.x에서 업그레이드하는 경우 scf.config.ts에서 TTL 필드를 제거하세요:

typescript
// 이전 (v1.x) - 더 이상 지원되지 않는 옵션
cloudfront: {
  enabled: true,
  defaultTTL: 3600,     // ❌ 제거
  maxTTL: 86400,        // ❌ 제거
  minTTL: 0,            // ❌ 제거
}

// 이후 (v2.0.0)
cloudfront: {
  enabled: true,
  // TTL은 이제 AWS에서 자동으로 관리됩니다
}

참고: v2.0.0 이상에서 TTL 설정을 유지하면 무시됩니다.


[1.1.0] - 2025-11-26

추가됨

  • SPA 모드: CloudFront에서 SPA(Single Page Application) 모드 기본 활성화
    • cloudfront.spa 옵션 추가 (기본값: true)
    • 403/404 에러를 자동으로 index.html로 리다이렉트
    • React Router, Vue Router 등 클라이언트 사이드 라우팅 지원

변경됨

  • CloudFront 커스텀 에러 응답 관리 로직 개선
  • 테스트에서 정규식 패턴 매칭으로 오류 메시지 개선

[1.0.0] - 2025-11-20

🎉 첫 번째 정식 릴리스

SCF가 프로덕션 환경에서 사용할 수 있게 되었습니다! 이번 릴리스에는 테스트, CI/CD, AWS 리소스 관리 기능이 크게 강화되었습니다.

추가됨

  • CI/CD 통합: main 브랜치 및 PR 체크를 위한 GitHub Actions 워크플로우
  • 테스트 강화: 단위, 통합, E2E 테스트 전체 구축
  • E2E 테스트: ACM 인증서 및 Route53 리소스 관리 전체 테스트 커버리지
  • 상태 관리 개선: ACM 및 Route53 상태 추적이 포함된 CloudFront 배포 강화
  • 서브도메인 지원: 서브도메인 설정을 위한 호스팅 영역 검증 개선
  • CODE_OF_CONDUCT.md: 커뮤니티 행동 강령
  • CONTRIBUTING.md: 상세한 기여 가이드라인

변경됨

  • S3 버킷 이름 생성 알고리즘 개선
  • 테스트 시 정규식 패턴 매칭으로 오류 메시지 개선
  • 프로덕션 환경 안정성 향상

인프라

  • AWS 리소스 E2E 테스트 인프라 구축
  • 코드 품질 검사를 위한 자동화된 CI 파이프라인
  • 개발 워크플로우를 위한 Husky pre-push 훅

[0.6.0] - 2025-11-18

추가됨

  • .env 파일을 통한 환경 변수 관리 기능
  • 배포 시 환경별 변수 로드 및 관리

변경됨

  • import 문 표준화 및 코드 일관성 개선

[0.5.0] - 2025-11-07

추가됨

  • 커스텀 도메인용 자동 SSL 인증서 생성
  • 검증 프로세스에서 Route53 호스팅 영역 자동 생성
  • CloudFront 배포용 DNS 별칭 레코드 생성
  • 리소스 복구 프로세스 (검색 및 태깅 기능 포함)
  • AWS 리소스 완전 삭제를 위한 remove 명령어 개선
  • pre-push 체크를 위한 Husky 통합
  • ESLint 설정 강화

변경됨

  • CLI 명령어의 에러 처리 간소화 및 코드 명확성 개선
  • 향상된 기능 및 설정 상세 정보로 README 업데이트

수정됨

  • Route53Manager 단위 테스트에서 matchObject 사용하도록 업데이트
  • 빌드 디렉토리 자동 감지를 위한 S3 설정 검증 업데이트
  • 타입 안전한 설정을 위한 defineConfig 헬퍼 함수 추가

[0.4.1] - 2025-11-03

변경됨

  • 버전 업데이트 릴리스

[0.4.0] - 2025-11-03

추가됨

  • 배포 성능 향상을 위한 CloudFront 캐시 워밍 기능
  • 타입 안전성이 강화된 init 명령어

변경됨

  • config.ts에서 사용하지 않는 defineConfig 함수 제거
  • 개선된 설정 상세 정보로 README 강화

[0.3.0] - 2025-10-30

추가됨

  • Jest 테스트 프레임워크 및 초기 테스트 설정
  • 배포 프로세스에 자동 빌드 기능
  • 실패한 배포를 위한 복구 기능
  • SCF 설정 파일 지원
  • post-install 스크립트 강화

변경됨

  • CLI 프로그램에서 버전 선언 제거
  • 오래된 문서 파일 제거
  • 새로운 기능 및 빌드 프로세스 개선으로 README 강화

[0.2.0] - 2025-10-25

추가됨

  • 프로젝트 초기화를 위한 init 명령어
  • 더 나은 사용성을 위한 CLI 명령어 이름 변경

변경됨

  • 버전을 0.1.0으로 업데이트하고 CLI 명령어 이름 변경

[0.1.2] - 2025-10-20

변경됨

  • 버전 업데이트 릴리스

[0.1.1] - 2025-10-18

변경됨

  • 프로젝트 이름을 scf-deploy로 변경
  • 새 프로젝트 이름을 반영하도록 문서 업데이트

제거됨

  • 오래된 DEPLOYMENT_GUIDE.md 파일

[0.1.0] - 2025-10-15

추가됨

  • SCF 초기 릴리스
  • 증분 업로드가 포함된 S3 버킷 배포
  • CloudFront 배포 관리
  • 캐시 무효화 지원
  • 배포 추적을 위한 상태 관리
  • AWS 자격 증명 통합
  • Zod 검증이 포함된 TypeScript 설정
  • CLI 명령어: deploy, remove, status
  • ESLint 설정
  • 종합 배포 가이드

버전 관리

  • Major 버전 (X.0.0): 호환성을 깨는 변경
  • Minor 버전 (0.X.0): 새로운 기능 (하위 호환)
  • Patch 버전 (0.0.X): 버그 수정

릴리스 노트

자세한 릴리스 노트는 GitHub Releases를 참조하세요.

향후 로드맵

  • 고급 캐싱 전략
  • Lambda@Edge 지원
  • 향상된 모니터링
  • 성능 분석
  • 비용 최적화 기능

지원

특정 버전에 대한 질문은 다음을 참조하세요:

11 min read최종 업데이트: 2025-12-10