2026/07 4

3. 알림 조회 성능 개선 - 동시성

본 게시물은 트래블록스 프로젝트를 진행하며 발생한 문제 및 개선 사항을 정리한 글입니다. https://hyomee2.tistory.com/133 2. 알림 조회 성능 개선 - 반정규화본 게시물은 트래블록스 프로젝트를 진행하며 발생한 문제 및 개선 사항을 정리한 글입니다. https://hyomee2.tistory.com/132 1. 알림 조회 성능 개선 - 인덱스본 게시물은 트래블록스 프로젝트를 진행하hyomee2.tistory.com 앞선 글에서는 반정규화를 이용하여 병목이었던 COUNT 집계 쿼리를 제거하고 알림 목록 조회 API의 응답 시간을 개선했다.하지만 반정규화를 적용하며 또 다른 문제를 마주했다.바로 동시성 문제다!문제 상황예를 들어 현재 특정 사용자의 notification_count(알..

projects/travlocks 2026.07.06

2. 알림 조회 성능 개선 - 반정규화

본 게시물은 트래블록스 프로젝트를 진행하며 발생한 문제 및 개선 사항을 정리한 글입니다. https://hyomee2.tistory.com/132 1. 알림 조회 성능 개선 - 인덱스본 게시물은 트래블록스 프로젝트를 진행하며 발생한 문제 및 개선 사항을 정리한 글입니다. 배경초기 알림 테이블(notifications)에는 별도의 인덱스가 없이 설계되었지만, 대용량 환경을 대비해hyomee2.tistory.com 앞선 글에서는 인덱스를 이용해서 조회 쿼리 시간을 크게 단축시킬 수 있었다.하지만 실제 사용자가 체감하는 것은 쿼리 실행 시간이 아니라 API 응답 시간이므로,실제 서비스 관점에서 성능을 검증하고자 k6을 이용해 부하테스트를 진행했다. 부하테스트import http from 'k6/http';im..

projects/travlocks 2026.07.03

1. 알림 조회 성능 개선 - 인덱스

본 게시물은 트래블록스 프로젝트를 진행하며 발생한 문제 및 개선 사항을 정리한 글입니다. 배경초기 알림 테이블(notifications)에는 별도의 인덱스가 없이 설계되었지만, 대용량 환경을 대비해 안정적인 성능을 유지할 수 있도록 최적화가 필요하다고 판단했다.따라서 1차적으로는 복합 인덱스를 통해, 2차적으로는 Covering Index 전략을 이용해 조회 성능을 최적화하려 했다.커서 기반 페이징을 이용했기에 사용한 SQL문은 아래와 같았다.SELECT notification_id, created_at, actor_id, actor_nickname_snapshot, receiver_id, template_id, typeFROM notificationsWHERE receiver_id = 1ORDER BY..

projects/travlocks 2026.07.03