간단한 계좌, 거래 기능에 관한 API를 만든 후 테스트 코드 작성, 성능테스트 등을 학습하고 <이펙티브 자바>, <도메인 주도 개발 시작하기> 등 서적에서 학습한 내용을 적용하여 코드를 작성했습니다.
./gradlwe build
cd build/libs
java -jar tess-0.0.1-SNAPSHOT.jar
build 파일 실행 후 localhost:8080/docs/index.html
Java 11
Spring Boot 2.7.2
MySQL 8.0
100명, 1000명의 user가 동시접속 할 때를 가정하여 송금하기와 계좌전체조회하기 API에서 성능테스트를 진행했습니다. 계좌 전체조회하기에는 캐싱을 적용했습니다.
초기 테스트에서 100명일 때 5%, 1000명일 때 30%였던 실패율을 예외처리 후 0%로 감소시켰습니다.
초당 요청수(RPS)는 평균 약 33.9이고, 응답시간이 약 30ms 이하로 안정적으로 유지됩니다. 계좌 전체조회하기에 대한 캐싱이 적용 후, 테스트 API에 대한 95% 응답시간의 최대값이 87ms에서 20ms정도로 급격히 감소했습니다.
초당 요청수(RPS)는 평균적으로 약 304입니다. 평균 응답 시간은 100ms 이하로 유지됩니다.