Skip to content

Feat/ci - #1

Merged
BoughtBatterys merged 15 commits into
mainfrom
feat/ci
Jun 17, 2026
Merged

BoughtBatterys merged 15 commits into
mainfrom
feat/ci

Conversation

@BoughtBatterys

Copy link
Copy Markdown
Contributor

No description provided.

BoughtBatterys and others added 15 commits June 8, 2026 10:00
- k8s 디렉토리를 app/으로 분리
- paths-ignore 추가 및 manifest-dir 경로 업데이트

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
S3에 적재된 일자별 센서 요약을 집계하는 월간 요약 API의 응답 지연을
줄이기 위해 4가지 최적화를 적용한다.

- 30일 S3 조회 병렬화: 전용 ExecutorService(8)로 미적중 일자를 동시
  다운로드 (직렬 30회 왕복 → 최장 1회 수준)
- 인메모리 Parquet 파싱: InMemoryInputFile로 임시파일 write/read/delete
  제거, 디스크 I/O 0 (read-only 컨테이너에도 안전)
- 외부 count 동시 호출: management/anomaly count를 Mono.zip으로 병렬화
- 일자별 영구 캐시(daily_sensor_summary): 불변인 과거 일자 집계를
  단일 범위 쿼리로 일괄 로드, 미적중 일자만 S3 조회

함께 발견한 잠재 버그 수정:
- 외부 count 역직렬화 실패(ApiResponse) → 최소 DTO(CountResponse record)로
  교체해 count가 0으로 폴백되던 문제 해결
- 캐시 LocalDate 저장 시 JDBC 타임존 오프바이원 방지를 위해
  hibernate.jdbc.time_zone=UTC 설정 및 테스트 JVM user.timezone=UTC 고정

테스트/문서:
- 단위·통합·성능 테스트 25개 추가 (JaCoCo Instruction 93% / Branch 89%)
- jacoco 플러그인 + h2 테스트 의존성 추가
- README 작성
- caller 워크플로의 build job이 `platforms: ${{ vars.PLATFORM }}`를
  reusable-build.yml로 전달하도록 추가
- 아키텍처를 Actions Variables(PLATFORM)에서 관리 (예: linux/arm64)
- 미설정 시 reusable-build의 기본값(linux/arm64) 사용
- apline은 arm64를 지원안해 빌드 실패가 발생
- Jammy는 arm64와 amd64를 지원하여 변경
- 단, 용량이 중요할 경우 좀 다른 것을 선택하는 것이 좋겠음
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- com.factory.common:kafka:1.1.0 의존성 추가
  - outbox-jpa의 OutboxJpaAutoConfiguration이 EventPublisher(common kafka)를 참조하는데
    kafka 모듈이 없어 기동 시 NoClassDefFoundError: EventPublisher 발생
- JpaConfig 추가 (@EnableJpaRepositories + @EntityScan, basePackages = com.factory.analysis_service)
  - common(outbox/inbox-jpa)이 자체 @EnableJpaRepositories를 등록해 Boot 기본 JPA 스캔이 비활성화됨
  - 그 결과 앱 리포지토리(DailySensorSummaryRepository)가 스캔되지 않아 빈 누락으로 기동 실패
  - anomaly/management와 동일한 패턴으로 서비스 패키지 스캔 명시
- S3를 읽어올 권한을 가진 ServiceAccount를 analysis deployment와 연결
- IRSA(WebIdentityToken)로 자격증명 받으려면 STS 모듈이 클래스패스에 필요하다고 하여 추가함
- count 호출 URL이 localhost 기본값으로 빠져 totalDefects/totalAnomalies가 0이던 문제
- MANAGEMENT_SERVICE_URL / ANOMALY_SERVICE_URL을 클러스터 서비스 DNS로 주입

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@BoughtBatterys
BoughtBatterys merged commit 21958cc into main Jun 17, 2026
3 checks passed

This branch was previously deployed

1 inactive deployment
production 1fbc5cc9 Deployed Jun 17, 2026 by BoughtBatterys via deploy / deploy-analysis-service-production #13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant