1. 프로젝트 개요
이 프로젝트는 금융 지수 데이터를 쉽게 분석할 수 있는 대시보드 서비스이다.
금융 시계열 데이터를 관계형 데이터베이스를 통해 저장하고, 페이지네이션을 통해 데이터의 양이 많은 상황에서도 최적의 , 저장된 금융 시계열 데이터를 그래프, 표로 간편하게 분석해 확인, .csv 파일로 다운로드할 수 있으며, 금융위원회의 지수시세정보 공공데이터 API를 연동해 간편하게 지수 정보와 데이터를 가져올 수 있다. 한편 사용자의 설정 여부에 따라 매일 특정 시간에 이루어지는 자동 API 연동 또한 지원하여 직접 연동하는 번거로움 없이 간편하게 금융 지수 데이터를 확인, 분석할 수 있다.
2. 담당한 작업
역할: Backend Developer (연동 작업 관련)
- POST 요청의 REST API로 구현
- WebClient를 활용해 지수 시세 정보 공공데이터 API를 실행, 데이터가 존재하는 가장 최신 날짜의 지수 정보들을 가져온다. 이때 지수 이름, 지수 분류가 같은 연동된 데이터가 존재한다면 업데이트를 진행하고, 그렇지 않다면 DB에 그대로 저장
- 지수 정보에 대한 연동 작업을 진행한 뒤, 진행된 연동 작업에 대해 해당 지수 정보, 작업 유형(정보), 작업자(ip), 작업이 이루어진 시간, 성공/실패 여부를 DB에 저장
- Repository는 Spring Data JPA의 JPARepository를 상속받아 직접적인 구현 없이 기본적인 CRUD를 활용
- 메서드 이름 기반 쿼리 생성 기능을 활용하여
findByIndexClassificationAndIndexNameAndSourceType 과 같이 레포지토리 메서드를 작성 (예시는 추가를 요청했던 IndexInfoRepository)
- MapStruct를 활용해 엔티티를 DTO로 변환해 엔티티 정보 중 실제로 요구되는 정보만 선택적으로 응답
- POST 요청의 REST API로 구현
- 연동할 지수 정보들의 리스트, 날짜 정보를 입력받아 지수 시세 정보 공공데이터 API를 실행해 입력받은 기간의 입력받은 지수의 데이터들를 가져와 DB에 저장
- 요청 json을 @RequestBody 어노테이션을 활용해 DTO로 변환
- 지수 데이터에 대한 연동 작업을 진행한 뒤, 진행된 연동 작업에 대해 해당 지수 정보, 작업 유형(데이터), 해당 데이터의 대상 날짜, 작업자(ip), 작업이 이루어진 시간, 성공/실패 여부를 DB에 저장
- 위의 연동 과정에서 저장된 연동 작업 로그들을 조회
- 날짜 구간, 성공 여부, 작업자, 지수를 통한 필터링 기능 구현