9.6 KiB
9.6 KiB
Release Notes
이 문서는 Keep a Changelog 형식을 따릅니다.
[Unreleased]
추가
- Bypass API 사용자 계정 발급 신청 프로세스 (#126)
- Spring Security Basic Auth 인증 (Bypass 데이터 API)
- 계정 신청/승인/거절 백엔드 API 및 프론트엔드
- 계정 관리 (CRUD, 비밀번호 재설정, 상태/기간 수정)
- 401 응답에 계정 상태 상세 메시지 포함
- Swagger UI Basic Auth 스킴 연동
- 신청 폼 정규식 검증 및 접근기간 프리셋
[2026-04-02]
추가
- Risk & Compliance 사용자 편의성 개선 (#134)
- UI 고정 텍스트 다국어 지원 (EN/KO 언어 토글 연동)
- -999/null 값 'No Data'/'데이터 없음' 표시 처리
- Screening Guide 탭 분리 (Ship Compliance / Company Compliance)
- Change History ↔ Screening Guide 간 언어 설정 공유 (localStorage)
- 섹션 헤더에 Screening Guide 연결 링크 추가
- 배포 환경에 따른 Swagger 페이지 노출 제한 (#135)
- prod 환경에서 Bypass API 그룹만 노출
- 그룹별 개별 API 설명 추가
- prod 환경 서버 목록 GC 도메인만 표시
[2026-04-01]
추가
- Risk & Compliance Screening Guide UI 개편 및 다중언어 지원 (#124)
- Screening Guide 아코디언 리스트 UI 개편 (카테고리별 접기/펼치기)
- 언더라인 탭 및 언어 토글 디자인 통일
- 다중언어 데이터 캐싱 (화면 로드 시 KO/EN 동시 조회)
- Compliance 카테고리 다중언어 테이블 신규 생성 (compliance_category, compliance_category_lang)
- RAG 지표 색상 테마 CSS 변수화 (다크모드/라이트모드 대응)
- S&P Bypass 피드백 반영 (#123)
- Response JSON 원본 반환 (ApiResponse 래핑 제거)
- 사용자용 API 카탈로그 페이지 추가 (/bypass-catalog)
- 운영 환경 코드 생성 차단 (app.environment 기반)
- Bypass API 코드 생성 (compliance, risk 도메인)
- 공통 UI 피드백 반영 (#121)
- 2단 탭 네비게이션 (섹션 탭 + 서브 탭)
- 섹션 간 직접 이동
- 메인화면 카드 높이 동기화 (CSS Grid)
수정
- Change History 선박 제재 KO 데이터 조회 누락 수정 (categoryCode 기반 분류로 변경)
- S&P Collector 다크모드 미적용 및 라벨 디자인 통일 (#122)
- 실행이력상세/재수집이력상세 API 호출 로그 다크모드 적용
- 개별 호출 로그 필터/테이블 다크모드 적용
- 작업관리 스케줄 라벨 rounded-full 디자인 통일
변경
- Navbar 메인 섹션 왼쪽 정렬, 서브 섹션 오른쪽 정렬로 변경
- 불필요한 DB 컬럼 참조 코드 제거 (collection_note, update_title)
[2026-03-31]
추가
- 프론트엔드 UI 개편 (#115)
- 메인 화면 3개 섹션 카드 (Collector/Bypass/Risk&Compliance)
- 섹션별 Navbar 분리
- 플랫폼명 S&P Data Platform 변경
- Risk&Compliance 값 변경 이력 확인 페이지 개발 (#111)
- 선박 위험지표/선박 제재/회사 제재 변경 이력 조회
- 선박/회사 기본정보 및 현재 Risk&Compliance 상태 조회
- Risk narrative(이전값/이후값) 표시 (LATERAL JOIN)
- indicator column_name 매핑으로 다국어 필드명 지원
- 다국어 캐시 (KO/EN 동시 조회, 언어 토글 즉시 전환)
- 독립 페이지 분리 (/risk-compliance-history)
- 국가코드 ISO2 변환 → 국기 이모지 표시
- Compliance 탭 분리 (Sanctions/Port Calls/STS/Suspicious)
- Risk&Compliance Screening Guide 페이지 생성 (#109)
- favicon 변경 (#105)
- BY PASS API 등록 프로세스 설계 및 개발 (#63)
- 화면에서 API 정보 입력 → Java 코드 자동 생성 (Controller, Service)
- 공통 베이스 클래스 (BaseBypassService, BaseBypassController)
- JSON 응답 RAW 패스스루 (JsonNode)
- 같은 도메인 다중 엔드포인트 지원
- Swagger GroupedOpenApi 그룹 분리 및 사용자 설정 반영
- SPA 새로고침 오류 수정
변경
- API 응답 처리 방식에 따른 패키지 분리 (jobs/batch, jobs/web) (#66)
기타
- Swagger 서버 목록에서 불필요한 내부 IP 및 MDA 프록시 주소 제거 (#110)
[2026-03-25]
추가
- 배치 로그 관리 정책 수립 및 정리 배치 작업 개발 (LogCleanupJob) (#100)
- IMO Meta Table 관리 배치 작업 개발 (All IMO Import + Delete Flag Update) (#80)
- Risk 상세 데이터 수집 배치 프로세스 추가 (RisksByImos API, 파티션 병렬 처리) (#65)
- 배치 모니터링 React SPA 전환 및 10대 기능 강화
- AIS Target signalKindCode(MDA 범례코드) 치환 로직 추가
- 중국 허가선박 전용 API 및 DB Sync 동적 범위 개선
- Swagger 문서 보강, Kafka 조건부 설정, AIS 응답 DTO 개선
- AIS target Kafka producer pipeline 추가
- Ship Last Position Update Job 개선 (#5)
- prod Kafka 클러스터 브로커 주소 설정 (#6)
- 선박 마지막 위치 업데이트 프로세스 변경 (#7)
- API 호출 로그 페이징 및 필터 추가 (#8)
- 재수집 실패건 재시도 프로세스 추가 및 선박제원정보 수집 최적화 (#10)
- 수집 실패건 로그 페이징 기능 상세화, 개별 호출 로그 페이징, 재수집 실패 건 수 표시 (#11)
- 데이터 수집 누락 방지 프로세스 추가 (#13)
- 선박 AIS 마지막 위치 업데이트 대상 변경 (#14)
- 컬럼명 최종변경 (#16)
- 마지막 수집 완료일시 모니터링 기능 추가 (#19)
- core20 테이블 최신 위치 동기화 대상 추가 (#20)
- tb_ship_main_info 테이블 in_sts 컬럼명을 sts_yn으로 변경 (#22)
- 스키마명 변경: t_std_snp_data → std_snp_data, t_std_snp_svc → std_snp_svc (#24)
- tb_ship_main_info, core20 테이블 mmsi 컬럼 업데이트 추가 (#28)
- 자동 재수집 및 재수집 프로세스 전면 개선 (#30)
- 배치 작업 목록 UX 개선: 상태 필터, 카드/테이블 뷰, 정렬, 실행 중 강조 (#33)
- 재시도 초과 레코드 초기화 API/UI 추가
- IMO 기반 Risk 상세 조회 bypass API 추가 (#39)
- 배치 작업 목록 한글 표시명 추가 (#40)
- Job 한글 표시명 DB 관리 및 전체 화면 통합 (#45)
- 배치 모니터링 UI 최적화: 대시보드 퀵 네비 제거, AIS 필터 프리셋, 스케줄 뷰 토글 및 폼 모달 전환 (#46)
- 각 화면별 사용자 가이드 추가 (#41)
- 스케줄 화면 검색/정렬/필터 기능 추가 및 UI 구조 개선 (#54)
- 재수집 이력 화면 개선: 배치 실행일시 추가, 작업명 잘림 해소, CSV 내보내기 제거 (#55)
- AIS API 응답 스트리밍 처리로 메모리 버퍼 제한 우회 (DataBufferLimitException 근본 해결)
- 선박제원정보 수집 배치 작업 병렬화 (Partitioned Step) (#64)
수정
- 기간 설정 재수집 시 RECOLLECT 모드 분기 오류 수정 (#75)
- 자동 재수집 JobParameter 오버플로우 수정 (VARCHAR 2500 제한 해결)
- retryCount 세마틱 오류 수정 (0부터 시작, 재수집 실패 시 증가)
- 실패 레코드 저장 타이밍 경합 해결 (동기 저장으로 변경)
- ChnPrmShip 캐시 갱신 조건 완화 및 스케줄 이전 실행 시간 표시 (#3)
- 재수집 관리 및 이력 추가 (#4)
- 재수집 중복 실행 문제 해결 (#9)
- Quartz orphan trigger 제거 (#12)
- Quartz JDBC Store 미적용 수정 — RAMJobStore에서 JDBC Store로 전환 (#12)
- 마지막 성공 일시 세팅 방법 수정 (#15)
- 테스트용 IMO 목록 건수 제한 제거 (#32)
- 타임라인 상세 화면 이동 오류 수정 및 실행 중 작업 상세 버튼 추가 (#34)
- RECOLLECT 모드에서 Tasklet 자체 스킵으로 last_success_date 복원 로직 제거 (#50)
- Quartz PostgreSQLDelegate BYTEA 컬럼 읽기 오류 수정 (#12)
- CronPreview step=0 무한루프 방지
- AIS WebClient 버퍼 제한 50MB→100MB 확대 및 타임아웃 설정 추가 (DataBufferLimitException 해결)
- ShipDetailUpdateDataReader beforeFetch에서 allImoNumbers 미할당으로 인한 NPE 수정
- 재수집 모드 afterFetch 중복 실행으로 인한 실패 레코드 중복 INSERT 수정 (#64)
- 실패 건 수동 재수집 시 414 Request-URI Too Long 오류 수정 (#71)
변경
- AIS 수집 및 서비스 API 제거 (배치 분리에 따른 코드 정리, ~7,000 LOC 삭제) (#99)
- API URL 환경별 중복 제거 (application.yml 공통 관리)
- RiskRangeImportJob API URL 변경 및 저장 테이블 통합 (#86)
- RiskDetailImportJob IMO 조회 대상을 tb_ship_default_info로 변경 (#81)
- 파티션 스텝 프로세스 공통 모듈화 (StringListPartitioner, BasePartitionedJobConfig, LastExecutionUpdateTasklet) (#73)
- 13개 Job Config의 인라인 LastExecutionUpdateTasklet을 공통 모듈로 교체 (#74)
- 재수집 실패건 추적 기준 sourceStepExecutionId → sourceJobExecutionId로 변경 (#64)
- 실패 레코드 Upsert 패턴 적용 (동일 키 중복 방지)
- 재시도 상태 배지 표시 (대기/재시도 N/3/재시도 초과)
- 미사용 Dead Code 정리 (~1,200 LOC 삭제)
- 미사용 배치 작업 13개 제거 (~4,000 LOC 삭제) (#40)
- API 인증정보 공통화(api-auth) 및 환경별 중복 설정 제거 (#59)
- AIS Import Job 로그에 캐시 적재 흐름 명시 (
API → 캐시)
기타
- 배포 워크플로우 Checkout 단계 복원 (container 환경 Node.js 미지원) (#93)
- Gitea Actions 자동배포 워크플로우 추가
- 프론트엔드 title 변경 (#76)
- Gitea 팀 프로젝트 워크플로우 구조 적용
- commit-msg 정규식 통일 (#1)
- SLF4J 로깅 지침 추가 (#2)
- CLAUDE_BOT_TOKEN 갱신 (#26)
- 팀 글로벌 워크플로우 1.5.0 동기화
- 팀 워크플로우 v1.6.1 동기화
- 실행 확인 모달 시작/종료일시 항목 제거
- MDA 전용 설정파일(application-qa.yml) 제거 (#59)