Skip to content

Commit 1d788c7

Browse files
authored
Merge pull request #93 from wafflestudio/patch/readme-addinfo
Update README.md
2 parents e9abc4c + 27b1aa6 commit 1d788c7

1 file changed

Lines changed: 21 additions & 3 deletions

File tree

README.md

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ Client : https://github.com/wafflestudio/23-5-team3-web
1414
- **아키텍처 구조**
1515
- **주요 기능**
1616
- **트러블 슈팅 및 기술적 의사결정**
17+
- **성능 테스트 및 최적화**
1718
- **업데이트 내역**
1819

1920
## 1. 프로젝트 개요
@@ -57,7 +58,7 @@ Client : https://github.com/wafflestudio/23-5-team3-web
5758
</td>
5859
</tr>
5960
<tr>
60-
<td align="center" style="font-size: 12px;">WebSocket 기반 메시징 및<br>트랜잭션 구현</td>
61+
<td align="center" style="font-size: 12px;">WebSocket 기반 메시징 및<br>트랜잭션 구현, 성능테스트 및 최적화 수행</td>
6162
<td align="center" style="font-size: 12px;">세션 기반 OAuth, <br>신고 기능 구현</td>
6263
<td align="center" style="font-size: 12px;">(프론트엔드)</td>
6364
<td align="center" style="font-size: 12px;">인프라 구축 및<br>FCM 알림 구현</td>
@@ -139,7 +140,24 @@ HttpOnly 쿠키로 XSS 공격을 차단하고, 악성 유저 발생 시 서버
139140
#### 5. 채팅방에서 나가지 않고 탈퇴한 유저의 처리 및 해당 유저의 채팅 보존 처리
140141
채팅방에서 나가지 않고, 회원 탈퇴를 한 유저의 경우와, 해당 유저의 채팅 내역을 페이지네이션으로 가져오기 위해 회원 탈퇴시 User table에서 id(PK) = 0으로 설정하여 채팅 내역을 보존하고, chat_message DB table의 ON DELETE CASCADE를 우회합니다.
141142

142-
## 6. 업데이트 내역
143+
## 6. 성능 테스트 및 최적화
144+
1. **실제 서비스 상황에서의 페이지네이션 방식의 성능 차이 및 인덱스 유무에 따른 메모리 사용량 측정**
145+
- 실제 상황(서울대 구성원 2만명, 각 인원 페이지네이션 횟수 최대 50회)을 가정하여 커서 기반 / 오프셋 기반 페이지네이션 각각의 페이지네이션 API의 응답 시간 및 인덱스 유무에 따른 메모리 사용량을 측정하여, 약 4MB의 추가 메모리 사용을 감수하고 데이터 정합성(메시지 누락/중복 출력 이슈)을 더욱 우선시하여 사용자 경험을 개선하였습니다.
146+
147+
| 페이지네이션 방식 | avg | p(90) | p(95) | 메모리 사용량(MB) |
148+
| -------------- | --- | ----- | ----- | --------------- |
149+
| 오프셋 | 44.49ms | 62.23ms | 72.24ms | 30.0 |
150+
| 커서 | 39.54ms | 58.22ms | 70.62ms | 35.1 |
151+
152+
2. **커서 기반 페이지네이션 시 인터페이스 교체 및 레포지토리 함수 통합으로 쿼리 횟수 감소**
153+
- 기존 Page 인터페이스의 불필요 정보(총 페이지 수)로 인한 추가 쿼리를 방지하기 위해, Slice 인터페이스로 개선 및 페이지네이션 로직의 함수 호출을 통합하여 쿼리 횟수를 5 -> 3회로 감소, p95 및 RPS 약 30% 개선(목표 RPS 1000 도달)
154+
155+
| 개선 전/후 | avg | p(90) | p(95) | RPS(req / s) |
156+
| --------- | --- | ----- | ----- | --------------- |
157+
|| 63.26ms | 83ms | 94.05ms | 787.81 |
158+
|| 48.28ms | 66.92ms | 74.97ms | 1031.68 |
159+
160+
## 7. 업데이트 내역
143161
- ~ 2026.02.07 : 프로젝트 1차 개발 완료, Waffle Studio 동아리 부원 대상 시연 및 버그 바운티
144162
- ~ 2026.02.18 : 버그 바운티, 코드 리팩토링
145-
- After : k6 스크립트 이용 서버 성능테스트(예정)
163+
- After : k6 스크립트 이용 서버 성능테스트(예정)

0 commit comments

Comments
 (0)