2026-03-19 개발 일지
1. 작업 분포
| 카테고리 | 비중 | |
|---|
| AWS 인프라 운영 및 디버깅 | 40% | ████░░░░░░ |
| 클라우드 엔지니어링 학습/설계 | 30% | ███░░░░░░░ |
| 기능 버그 수정 및 데이터 정비 | 20% | ██░░░░░░░░ |
| 문서화 및 발표 준비 | 10% | █░░░░░░░░░ |
2. 집중 영역 / 시간 소모 포인트
🟢 생산적 작업
- AWS 백엔드 복구: RDS에 누락된 테이블을 수동 DDL로 생성하고, Docker Compose 오버라이드 파일을 통해 로컬 설정 대신 AWS 리소스(RDS, ElastiCache)를 바라보도록 수정하여 백엔드를 정상화함.
- CloudFront 캐시 오염 해결: API 요청이 S3의 HTML을 반환하던 문제를 진단하고, 캐시 무효화(Invalidation)를 통해 정상 라우팅을 복구함.
- 인증 로직 개선: 회원가입 후 토큰이 발급되지 않는 문제를
auth.js의 register 함수 수정을 통해 해결하여 결제 흐름을 완성함.
- 학습 커리큘럼 체계화: VPC 설계 과제(M01)의 진입 장벽을 낮추기 위해 의존성 지도와 베스트 프랙티스를 정리한 기반 모듈(M00)을 신규 생성함.
🔴 삽질/시간 소모 포인트
- Hibernate 7 스키마 불일치: Enum 타입 매핑 방식 변경(VARCHAR → SMALLINT)으로 인한 반복적인 스키마 검증 에러 디버깅.
- 타임딜 시간대 혼동: DB의 시간을 수정할 때 UTC/KST 차이로 인해 즉시
EXPIRED 처리되는 현상을 겪으며 시간대 재설정에 소요됨.
- 과거 로그 검색 실패: 초기 스키마 DDL 스크립트를 과거 로그에서 찾으려 시도했으나 실패하여 Entity 클래스를 분석해 수동으로 생성해야 했음.
3. 타임라인
| 시간 | 화자 | 내용 |
|---|
| 01:37 | 🦦 | AWS 상태 점검 시작. 백엔드 컨테이너 다운 및 RDS 테이블 부재 확인. |
| 01:43 | 🦦 | 과거 로그 검색 실패. Entity 클래스 분석 후 수동 DDL 생성 및 RDS 적용 진행. |
| 01:54 | 🦦 | Docker Compose 하드코딩 문제 해결 위해 AWS 리소스 연결을 위한 오버라이드 파일 생성. |
| 01:57 | 🦦 | Enum 타입 불일치(SMALLINT)로 인한 에러 발생 및 스키마 수정. |
| 02:09 | 🦦 | 백엔드 정상 기동 및 ALB 헬스체크 복구. |
| 02:20 | 🦦 | Terraform 리스크 회피 위해 수동으로 ACM 인증서 발급 및 Route53 레코드 추가. |
| 09:26 | 🦦 | CloudFront 캐시 오염(API 요청 시 HTML 반환) 진단 및 캐시 무효화 명령 실행. |
| 09:29 | 🦦 | auth.js의 register 함수 수정(회원가입 후 로그인 자동 호출)하여 토큰 발급 로직 추가. |
| 09:59 | 🦦 | Redis와 DB 재고 일치성 검증 완료 및 모니터링 방법 공유. |
| 10:14 | 🦦 | 발표용 신규 타임딜 및 상품 생성, 종료된 딜 시간 초기화 시도. |
| 10:20 | ⌨️ | SSM 경유 DB 직접 접속하여 EXPIRED 딜을 PENDING으로 상태 변경. |
| 10:26 | 🦦 | UTC/KST 혼동으로 인한 재차 EXPIRED 문제 발생 및 시간대 재설정. |
| 18:56 | 🦦 | 삭제된 포트폴리오 API(portfolio-status-api) 소스 복구 및 Cloud Run 재배포. |
| 19:34 | 🦦 | infra-study 폴더 생성 및 M01(VPC 설계) 과제 템플릿 작성. |
| 20:02 | 🦦 | M01 진입 난이도 조절을 위해 M00(Foundation) 문서 생성 및 의존성 지도 정리. |
4. 해결한 문제와 인사이트
백엔드 기동 및 스키마 이슈
- 문제: RDS 초기화 상태에서
ddl-auto: validate 모드로 실행되어 기동 실패 및 Hibernate 7의 Enum 타입 기본값(TINYINT) 불일치 발생.
- 해결: Entity 분석을 통해 수동 DDL을 생성하여 테이블을 세팅하고, Enum 컬럼 타입을
SMALLINT로 수정하여 호환성을 맞춤.
인프라 캐싱 및 네트워킹
- 문제: CloudFront에 과거에 캐싱된 S3
index.html이 API 요청(POST /api/v1/orders)에 대해 반환되어 JSON 파싱 에러 유발.
- 해결: CloudFront Invalidation(
/api/*)을 수행하여 오염된 캐시를 제거하고 트래픽을 ALB로 정상 라우팅함.
학습 방법론 및 시스템 운영
- 문제: 인프라 학습 시 VPC 설계(M01)의 복잡한 의존성으로 인한 진입 장벽 발생. 또한 타임딜 상태 전환 시 DB 수동 조작 필수성 확인.
- 해결: 선행 학습 모듈(M00)을 통해 의존성 지도와 판단 기준을 제공하여 학습 효율성을 높임. DB 상태 변경 시 시간대(Timezone)를 명확히 명시하여 스케줄러 동작 보장.
5. 주요 파일 및 수정 사항
pposiraegi-ecommerce/backend/schema.sql:
- Entity 클래스 분석 기반으로 수동 생성된 DDL 스크립트로 RDS에 14개 테이블 생성.
docker-compose.prod.yml:
- 로컬 설정의 하드코딩된 DB/Redis 정보를 오버라이드하여 AWS RDS, ElastiCache 연결 설정.
timedeal-order/src/api/auth.js:
register 함수 로직 수정: 회원가입 직후 로그인 API를 호출하여 accessToken과 refreshToken을 로컬 스토리지에 저장하도록 변경.
infra-study/M00-Foundation/README.md:
- 신규 생성. VPC 설계를 위한 선행 학습 자료(의존성 지도, 판단 기준, 실수 포인트) 정리.
portfolio/status-api/deploy.sh 및 index.html:
- Cloud Run(
us-central1) 재배포 수행 및 API 요청 URL을 새로운 서비스 주소로 갱신하여 포트폴리오 상태 체크 기능 복구.
Supported by ai-log-sync & GLM-4.7