[오늘가챠] 성능 끌어올리기: CompletableFuture를 이용한 병렬 처리
·
◈ Yermi Project/오늘가챠🃏
유저가 사진을 촬영하고 업로드할 때, 백엔드에서는 크게 2가지 무거운 작업이 일어납니다.Cloudinary 서버로 원본 이미지 전송 (수 초 소요)GPS 위경도를 한글 지명으로 변환하는 Reverse Geocoding API 호출 (수 초 소요)이 두 가지 작업을 순차적으로 실행하면 유저는 화면이 멈춘 채로 10초 가까이 기다려야 합니다. 이를 해결하기 위해 자바의 CompletableFuture를 도입한 경험입니다.1. 기존 방식의 문제점 (순차 실행) I/O 바운드 작업들이 직렬로 연결되어 유저 경험(UX)을 심각하게 훼손하고 있었습니다. // 기존의 느린 코드 (직렬 실행)String imageUrl = cloudinaryClient.upload(request.file().getBytes()); /..