- CollectDB 다중 신호 수집 → S&P Global AIS API 단일 수집으로 전환 - sig_src_cd + target_id 이중 식별자 → mmsi(VARCHAR) 단일 식별자 - t_vessel_latest_position → t_ais_position 테이블 전환 - 레거시 배치/유틸 ~30개 클래스 삭제 (VesselAggregationJobConfig, ShipKindCodeConverter 등) - AisTargetCacheManager 기반 캐시 이중 구조 (최신위치 + 트랙 버퍼) - CacheBasedVesselTrackDataReader + CacheBasedTrackJobListener 신규 추가 - VesselStaticStepConfig: 정적정보 CDC 변경 검출 + hourly job 편승 - SignalKindCode enum: vesselType/extraInfo 기반 선종 자동 분류 - WebSocket/STOMP 전체 mmsi 전환 (StompTrackStreamingService ~40곳) - 모니터링/성능 최적화 코드 mmsi 기반 전환 - DataSource 설정 통합 (snpdb 단일 DB) - AreaBoundaryCache Polygon→Geometry 캐스트 수정 (MULTIPOLYGON 지원) - ConcurrentHashMap 적용 (VesselTrackStepConfig 동시성 버그 수정) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
71 lines
1.6 KiB
Markdown
71 lines
1.6 KiB
Markdown
# /analyze-batch - 배치 작업 분석
|
|
|
|
Spring Batch 작업 관련 코드를 분석하고 진단합니다.
|
|
|
|
## 분석 대상
|
|
|
|
### 1. Job 구성 분석
|
|
다음 파일들을 확인하세요:
|
|
- `src/main/java/**/config/` - 배치 설정
|
|
- `src/main/java/**/job/` - Job 정의
|
|
- Job, Step, Reader, Processor, Writer 구성
|
|
|
|
### 2. 스케줄링 설정
|
|
- @Scheduled 어노테이션 사용 현황
|
|
- Quartz 또는 다른 스케줄러 설정
|
|
- Cron 표현식 분석
|
|
|
|
### 3. 데이터 처리 패턴
|
|
- ItemReader 구현 (DB, File, API 등)
|
|
- ItemProcessor 로직
|
|
- ItemWriter 구현 (bulk insert, 파일 출력 등)
|
|
- Chunk 크기 설정
|
|
|
|
### 4. 에러 처리
|
|
- Skip 정책
|
|
- Retry 정책
|
|
- Listener 구현 (JobExecutionListener, StepExecutionListener)
|
|
|
|
### 5. 성능 분석
|
|
- Chunk 크기 적절성
|
|
- 병렬 처리 설정 (Partitioning, Multi-threading)
|
|
- 커넥션 풀 설정
|
|
|
|
## 출력 형식
|
|
|
|
```markdown
|
|
## 배치 작업 분석 결과
|
|
|
|
### Job 목록
|
|
| Job 이름 | Step 수 | 스케줄 | 설명 |
|
|
|----------|---------|--------|------|
|
|
| xxxJob | 3 | 0 0 * * * | ... |
|
|
|
|
### 데이터 흐름
|
|
```
|
|
[Reader] → [Processor] → [Writer]
|
|
↓ ↓ ↓
|
|
[데이터소스] [변환로직] [목적지]
|
|
```
|
|
|
|
### 에러 처리 설정
|
|
- Skip 정책: [설정 내용]
|
|
- Retry 정책: [설정 내용]
|
|
|
|
### 성능 설정
|
|
- Chunk 크기: [값]
|
|
- 병렬 처리: [설정 여부]
|
|
|
|
### 개선 제안
|
|
1. [제안1]
|
|
2. [제안2]
|
|
```
|
|
|
|
## 인자
|
|
|
|
`$ARGUMENTS`: 특정 Job 이름이나 키워드
|
|
|
|
예시:
|
|
- `/analyze-batch` - 전체 분석
|
|
- `/analyze-batch signal` - 신호 관련 배치만 분석
|