Spring Boot + Apache POI로 엑셀 파일 처리하기
·
Spring
📌 들어가며..이번에 진행하고 있는 프로젝트에서 서울시 공공 자전거(따릉이) 대여소 데이터를 활용해야 했어요.서울 열린데이터 광장에서 서울시 공공 자전거 대여소 현황 데이터를 1년에 2번 업데이트되는 엑셀 파일 형태로 제공하고 있습니다. 즉, 6개월 단위로 새로운 데이터가 올라올 때마다 수동으로 엑셀을 다운받고, 필요한 데이터를 DB에 적재해야 하는 상황입니다. 그래서 Spring Boot 프로젝트에 Apache POI를 도입해서 엑셀 데이터를 파싱하고 데이터베이스에 저장하는 기능을 구현했습니다. 이 글에서는 Apache POI가 무엇인지, 실제로 어떻게 구현했는지, 그리고 구현하는 과정에서 만난 문제들을 어떻게 해결했는지 정리해보려고 해요. 📌 Apache POI가 뭘까Apache POI는 ..
[Spring, Java] 외부 API 병렬 처리로 성능 최적화하기: CompletableFuture + @Async 적용
·
Spring
📌 들어가며..개발을 하다보면, 외부 API를 호출하는 과정에서 응답 시간이 길어져 전체 처리 속도가 느려지는 문제를 종종 겪게 됩니다. 특히 여러 개의 외부 API를 순차적으로 호출한다면, 각 API의 응답 시간이 누적되어 서비스의 응답 지연으로 이어질 수 있습니다. 이런 상황에서 병렬 처리를 통해 전체 응답 속도를 개선할 수 있는데, Java의 CompletableFuture와 Spring의 @Async를 활용하면 효율적인 비동기 병렬 처리가 가능합니다. 이번 글에서는 CompletableFuture와 @Async를 활용해 외부 API 병렬 호출을 적용하고, 이를 통해 성능을 최적화하는 방법을 다룹니다. 문제 상황예를 들어, 사용자 요청에 따라 외부 API을 3번 호출해야 하는 서비스가 있다..
[Spring] API 문서 자동화: springdoc-openapi로 Swagger UI 만들기
·
Spring
📌 들어가며..Spring Boot로 REST API를 개발하다 보면, API 명세를 프론트엔드 개발자나 같이 개발하는 팀원들과 공유하고 테스트할 수 있는 문서가 필요합니다. 이럴 때 API 명세를 자동으로 문서화하기 위해 대표적으로 SpringFox나 SpringDoc을 사용합니다. 하지만 Spring Boot 3부터는 SpringFox를 더 이상 지원하지 않기 때문에, SpringDoc을 사용하는 것이 훨씬 안정적입니다. SpringFox에서 SpringDoc으로 마이그레이션하는 방법도 공식 문서에 잘 정리되어 있습니다. 적용 환경Spring Boot 3.5.0Java 21 Gradlespringdoc-openapi 2.8.8 📌 springdoc-openapi 라이브러리란?Spring ..