😊 성능 테스트 가이드 시리즈😊 / 클릭 시 이동1. 성능 테스트_성능 목표 잡기2. 성능 테스트_HikariCP의 연결 최대 풀 설정3. 성능 테스트_Caffeine 캐시 설정 및 적용4. 성능 테스트_인덱싱과 트랜잭션 관리 최적화5. 성능 테스트_하드웨어 리소스 업그레이드 결과Total Average response time 7575ms → 4,465 ms(41.06%의 성능 향상) Top 5 slowest requests based on their average response times.API 성능 개선 요약각 API별 성능 개선율 API 엔드포인트 평균 응답 시간 개선율 90th 응답 시간 개선율 GET /matching/senderList (받은 하트 페이지 조회)72.10%66.4..
백엔드
😊 성능 테스트 가이드 시리즈😊 / 클릭 시 이동1. 성능 테스트_성능 목표 잡기2. 성능 테스트_HikariCP의 연결 최대 풀 설정3. 성능 테스트_Caffeine 캐시 설정 및 적용4. 성능 테스트_인덱싱과 트랜잭션 관리 최적화5. 성능 테스트_하드웨어 리소스 업그레이드결과 Total Average response time 7575ms → 4569ms (39.68% 최적화)이번 테스트에서는 이렇게 DB 성능이 나왔는데 이전의 테스트 당시 모니터링 화면과 양상이 유사하지 않은가? 왜냐면 테스트할 때 R관련 API가 실행될 때 데이터가 25만 개 이기 때문에 Tuples out이 계속 증가하다가 이후 CUD관련 API가 실행되면 이는 줄어들고 Tuples in이 되는 것을 볼 수 있다. Top 5 ..
😊 성능 테스트 가이드 시리즈😊 / 클릭 시 이동1. 성능 테스트_성능 목표 잡기2. 성능 테스트_HikariCP의 연결 최대 풀 설정3. 성능 테스트_Caffeine 캐시 설정 및 적용4. 성능 테스트_인덱싱과 트랜잭션 관리 최적화5. 성능 테스트_하드웨어 리소스 업그레이드 결과Total Average response time7575msTop 5 slowest requests based on their average response times. 연결 풀을 설정한 결과로, 문제가 됐던 에러는 발생하지 않게 되었다! 하지만 평균시간과 기준치로 삼았던 90th TTFB를 보면 가장 높은 경우 무려 32414ms, 50631ms가 걸리는 기염을 토했다. 테스트 서버 리소스가 적은 탓(512MB…)이 가장 ..
😊 성능 테스트 가이드 시리즈😊 / 클릭 시 이동1. 성능 테스트_성능 목표 잡기2. 성능 테스트_HikariCP의 연결 최대 풀 설정3. 성능 테스트_Caffeine 캐시 설정 및 적용4. 성능 테스트_인덱싱과 트랜잭션 관리 최적화5. 성능 테스트_하드웨어 리소스 업그레이드 문제 원인 파악기본적으로 테스트를 진행할 때는 에러가 발생하면 안 되는데, 첫 번째 테스트를 진행하던 중에 에러가 발생했다. 딱 특정 지점에만 에러가 발생하는 것을 보고 해당 부분의 log를 분석하였다.2024-09-16T04:22:39.013+09:00 WARN 24884 --- [now_here] [.0-8080-exec-72] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error:..
안녕하세요!이전에 언급했던 것처럼 Now, Here 글로 다시 찾아왔습니다.현재 출시가 얼마 남지 않았고, 대부분의 기능 구현은 완료한 상태입니다.그래서 성능 테스트를 통해 웹 서비스의 성능을 측정하고, 병목지점을 찾아 성능 개선을 이루는 경험을 공유합니다.😊 성능 테스트 가이드 시리즈😊 / 클릭 시 이동1. 성능 테스트_성능 목표 잡기2. 성능 테스트_HikariCP의 연결 최대 풀 설정3. 성능 테스트_Caffeine 캐시 설정 및 적용4. 성능 테스트_인덱싱과 트랜잭션 관리 최적화5. 성능 테스트_하드웨어 리소스 업그레이드성능 목표 잡기 성능이 좋다는 의미는 무엇인가?보통 웹 성능이 좋다는 의미는 웹사이트에 접속했을 때 이들이 원하는 콘텐츠가 로딩될 때까지 걸리는Average response t..
오랜만에 블로그에 글을 씁니다! 요즘 취업 준비로 바쁘게 지내고 있지만, 이전보다 더 개발에 몰입하며 지내서 만족하며 열심히 살고 있습니다. 😄이번 글에서는 10월에 있을 대학교 축제를 겨냥해 기획하고 개발 중인 매칭 웹앱 플랫폼 "Now, Here"의 백엔드 개발 과정에서 고민했던 내용을 공유하려 합니다. 특히, 이번에는 실시간 매칭 알고리즘과 데이터 기반 의사결정 방식을 도입한 경험을 소개하려고 합니다. 앞으로 3~4개의 Now, Here 관련 글을 올릴 예정이니 많은 관심 부탁드립니다! 🫡 Situation과거에 제가 TrueEcho를 개발하면서 유저들 사이에서 친구를 추천하는 FOF 알고리즘을 구현한 적이 있습니다.관련 글 링크 당시에는 친구의 친구들을 해시맵 형태로 저장하여 중복되는 친구가 ..