본 프로젝트는 외부 시스템과의 연동과 금융 데이터의 처리에 초점을 맞춥니다.
지수 정보 등록
지수 정보 등록 기능을 담당하여 Controller–Service–Repository 계층 구조 기반으로 API를 설계하고 구현하였습니다.
Controller에서는 @Valid와 Jakarta Validation 어노테이션(@NotBlank, @NotNull 등)을 활용하여 클라이언트 요청 단계에서 입력값 검증이 이루어지도록 구성하였으며, 잘못된 데이터가 Service 계층으로 전달되지 않도록 방어 로직을 설계하였습니다.
Service 계층에서는 비즈니스 로직을 집중적으로 처리하였습니다. 동일한 지수 분류명과 지수명이 존재하는지 existsBy 메서드를 활용하여 사전 검증을 수행하고, 기준 시점이 미래일 수 없도록 추가적인 도메인 검증 로직을 구현하여 데이터 정합성을 확보하였습니다. 또한 nullable한 favorite 값에 대해 기본값(false)을 설정하여 예외 상황을 방지하였습니다.
Repository는 Spring Data JPA의 JpaRepository를 상속받아 별도의 구현 없이 CRUD 기능을 활용하였으며, 메서드 이름 기반 쿼리 생성 기능을 통해 existsByIndexClassificationAndIndexName와 같은 조건 조회를 간결하게 처리하였습니다. 이를 통해 불필요한 JPQL 작성 없이 코드의 복잡도를 낮추었습니다.
객체 변환 과정에서는 MapStruct를 도입하여 Entity → DTO 변환을 자동화하였고, 반복적인 매핑 코드를 제거하여 유지보수성을 향상시켰습니다.
추가적으로 지수 정보 등록 시 AutoSyncConfig를 함께 생성하도록 설계하여, 향후 데이터 동기화 기능과의 연계성을 고려한 확장 가능한 구조를 구현하였습니다. 이를 통해 단순 데이터 저장을 넘어 이후 배치/동기화 프로세스와 자연스럽게 연결될 수 있도록 설계하였습니다.
지수 정보 수정