자세한 내용은 성능 개선에 기술해두었습니다.
실제 사용자 이용 패턴을 고려하여, 로그인 이후의 일반적인 워크플로우를 아래와 같이 구성했습니다.
- 최근 승인요청 조회 (22%)
- 최근 질문 조회 (22%)
- 참여 중인 프로젝트 조회 (22%)
- 프로젝트 상세 - 승인요청 조회 (20%)
- 프로젝트 상세 - 질문 조회 (10%)
- 승인요청 생성 (2%)
- 질문 생성 (2%)
단계 | 개선 전략 | 최대 TPS | API 최대 응답시간 | 부하테스트 이후 병목 지점 |
---|---|---|---|---|
0. 초기 상태 | - | 2.3/s |
46s |
RDS CPU |
1. 쿼리 최적화 | N+1 해결, 인덱싱, 쿼리 최적화 | ~50/s |
~80ms |
EC2 CPU |
2. Scale-out | ELB + EC2 인스턴스 추가 | ~160/s |
~80ms |
EC2 CPU |
3. 캐싱 적용 | Redis 도입 | ~200/s |
< 30ms |
EC2 CPU |
API 명 | 개선 전 (p95) | 최종 개선 후 (p95) | 개선 방법 | 개선 결과 |
---|---|---|---|---|
1. 사용자 최근 승인요청 목록 조회 | 약 29초 |
약 30ms |
N+1 해결, 쿼리 최적화, 인덱싱, 캐싱 | 약 967배 향상 |
2. 사용자 최근 질문 목록 조회 | 약 416ms |
약 30ms |
쿼리 최적화, 인덱싱, 캐싱 | 약 14배 향상 |
3. 참여중인 프로젝트 목록 조회 | 약 506ms |
약 25ms |
쿼리 최적화, 인덱싱, 캐싱 | 약 20배 향상 |
4. 특정 프로젝트 승인요청 목록 조회 | 약 150ms |
약 70ms |
N+1 해결, 인덱싱 | 약 2.1배 향상 |
5. 특정 프로젝트 질문 목록 조회 | 약 661ms |
약 129ms |
N+1 해결, 인덱싱 | 약 5.1배 향상 |
이름 | 역할 | 깃허브 |
---|---|---|
정서연 | 프론트 CI/CD 구축 Project, Project Article, Comment API 개발 |
seoyeon-jung |
조준범 | 백엔드 CI/CD 구축 Request, Response API 개발 시스템 로그, 데이터 로그 API 개발 |
JUNBEOM CHO |
윤다빈 | User, Company, Notification API 개발 Spring Security |
yoodab |
팀 협업 과정이 궁금하다면? 👉 팀 노션 바로가기