프로젝트 소개

이 저장소에는 Mathew Musango Peter의 개인 포트폴리오 웹사이트 엔지니어링이 포함되어 있습니다. 사이트는 Markdown으로 작성되었으며, MkDocs 1.6.1과 Material 테마 9.7.7을 사용하여 다크 슬레이트 기본 테마에 라이트 토글과 틸 accent을 적용했습니다. 개발은 Podman Compose와 HTTPS를 활성화한 dev 서버(serve.py)를 통해 로컬에서 이루어지며, 이 서버는 TLS를 위해 mkcert를 사용합니다. CI/CD는 GitHub Actions로 구현되어 있으며, main 브랜치에 푸시되거나 버전 태그가 생성될 때마다 mkdocs build, pip‑audit, 링크 검사, 언어별 린팅 검사를 실행하는 빌드 워크플로가 트리거됩니다. 성공적인 빌드는 스테이징 S3+CloudFront에 사이트 아티팩트를 게시하며, 버전 태그는 추가로 프리‑프로덕션 AWS 미러에 배포되고, 프로덕션 환경에서의 수동 승인 후 GitHub Pages에도 배포됩니다. 방문자 분석은 개인정보 보호 우선 서버리스 파이프라인으로 처리됩니다: CloudFront가 geo 헤더를 API Gateway로 전달하면, 이 API Gateway가 writer Lambda를 호출하여 비‑IP 데이터를 DynamoDB(90일 TTL)에 삽입하고, 요약 쿼리를 위한 reader Lambda도 호출합니다. 인프라는 Terraform으로 정의되며, OAC를 적용한 CloudFront 앞에 위치한 프라이빗 S3 버킷, API Gateway, Lambda 함수, DynamoDB 테이블, 그리고 선택적 WAF/VPC를 포함합니다. terraform/ci 부트스트랩 단계는 환경별 상태 백엔드(S3 + DynamoDB 락)와 GitHub Actions용 최소 권한 OIDC 역할을 생성하여 장기간 사용되는 AWS 키가 없도록 보장합니다. 보안 관행에는 Dependabot 업데이트, 릴리스당 CycloneDX SBOM 생성, 그리고 모든 CI 빌드에서의 pip‑audit이 포함됩니다. 저장소에는 기여 가이드라인, 보안 정책, 변경 로그, 그리고 브랜치/태그 규칙 집합도 제공됩니다. 모든 코드는 MIT 라이선스 하에 배포되며, 개인 콘텐츠(텍스트, 이미지, 이력서)는 저작권이 저자에게 남아 있습니다.