구름톤 딥다이브 합반 프로젝트 최우수상 수상
레쥬메이트 (ResuMate)
개인 경험을 기록·관리하는 프로젝트 회고 작성 서비스

구름톤 딥다이브 백엔드 교육 합반 프로젝트로, 취업 도움을 위해 개인 경험을 기록·관리하는 프로젝트 회고 작성 서비스 기획
LLM을 이용하여 회고로부터 본인의 강점과 역량 등을 분석하는 기능 제공
기간 및 참여 인원
- 기간: 2025-08-11 ~ 2025-09-15
- 인원: 9명 (BE 개발 3명)
역할
⚙️ Backend 개발 (기여도 40%)
- 회고 및 폴더 관리 기능 개발
- 회고 분석 기능 개발
- OpenAI API 시간당 토큰 사용량 제한 문제 해결
문제 해결 및 성능 개선
OpenAI API 시간당 토큰 사용량 제한 문제 해결
문제 배경
OpenAI API를 이용해 GPT-5 모델로 회고 내용을 요약하고, 핵심 요소를 뽑아주는 기능을 제공하였습니다.
그런데 회고 분석에 사용되는 OpenAI API는 분당 처리 토큰 제한이 존재하였습니다. 이로 인해 1회 분석에 4000 토큰 이상이 소모되는 사용 패턴에 따라 제한을 많이 받을 것으로 판단하였습니다. 실제 개발 과정에서도 토큰 사용량 제한에 걸리기도 하였습니다.
개선 방법
기존에는 별도의 제한을 두지 않고 POST 요청을 보냈으나, 분당 3만 토큰 이상 사용하면 요청이 실패하였습니다. 따라서 토큰 버킷 알고리즘을 구현한 Bucket4j를 통해 분당 요청을 5회로 제한하였습니다.
5회 제한을 초과하는 요청은 Redis의 List 자료형을 큐처럼 사용하면서, 제한을 넘어서는 요청을 저장하였습니다. 또, @Scheduled 어노테이션을 이용해 5초마다 큐에 쌓인 요청을 꺼내 처리하도록 구현하였습니다.
이와 별개로 사용자가 많아졌을 때를 가정하여, 요청 처리량을 늘리기 위해 멀티 계정 구조를 적용하였습니다. 복수 개의 API 키를 환경변수로 받아, 각각 토큰 버킷을 따로 두면서 어느 API 키 사용량이 초과되었을 때 다른 API 키를 사용하도록 하였습니다.
사용 기술
- Backend:
JavaSpring bootJPASpring Security - DB:
PostgreSQL(Amazon Aurora)Redis - CI/CD :
Github Actions - 인프라 :
AWS FargateDocker - 테스트:
JUnit 5 - 모니터링 및 성능테스트:
PrometheusGrafanaK6 - 문서화 :
Swagger - 외부 API :
OpenAI API
구조

결과물