1. 프로젝트 개요
- 프로젝트명: HRBANK
- 프로젝트 목표: 기업의 인적자원을체계적으로 관리, 모니터링하기 위한 HR Management System 구현
- 담당 도메인: 데이터 백업 관리 시스템
2. 담당한 작업
역할: 데이터 백업 관리 도메인 구현
백업 프로세스 구현
- 백업 필요성 판단 로직
- 최근 완료된 배치 작업 시간 이후 직원 데이터 변경 여부 체크
- 불필요한 백업 방지를 위한 "건너뜀" 상태 처리
- 백업 작업 수행
- 전체 직원 정보를 CSV 파일로 저장
- OOM 이슈 방지를 위한 대용량 데이터 처리 최적화
- 백업 실패 시 에러 로그 파일 생성 및 관리
- 배치 스케줄링
- Spring Scheduler를 활용한 자동 백업 구현
- 1시간 주기의 정기 백업 작업
- 애플리케이션 설정을 통한 주기 조정 기능
- 백업 이력 조회
- 작업자, 시작 시간, 상태별 필터링 기능
- 커서 기반 페이지네이션 구현
- 시작/종료 시간 기준 정렬 기능
3. 성과
- 커서 페이지네이션에 대한 이해의 폭 넓힘
- 버그해결 과정을통해 페이지네이션의 구현방법에 대한 이해 증가
@Query 어노테이션을 활용하여 쿼리문을 작성 함으로써 JPQL에 대한 이해 증가
- 견고한 배치 시스템 구축
- 트랜잭션 관리를 통한 데이터 일관성 보장
- 실패 시 롤백 및 로깅 처리
4. 문제점 및 해결 과정
1) 마지막 페이지 요소 미조회 문제