사진·영상 중심 소셜 미디어 네이티브 앱
Redis Fan-out 전략 기반의 고성능 라이프스타일 SNS 플랫폼
* 본 이미지는 프로젝트 이해를 돕기 위해 AI로 생성되었습니다.프로젝트 개요
사진과 영상을 중심으로 일상을 공유하는 라이프스타일 SNS 네이티브 앱입니다. 무한 스크롤 피드, 커스텀 미디어 피커, 실시간 다이렉트 메시지 등 현대적인 소셜 미디어 경험을 제공합니다. Redis 캐시 기반의 Fan-out 피드 생성 전략을 도입하여 동시 접속자가 급증하는 상황에서도 안정적인 피드 서빙이 가능하도록 설계했습니다. MongoDB를 활용한 비정형 데이터 구조로 다양한 콘텐츠 포맷을 유연하게 수용하며, 좋아요·댓글·팔로우 등 소셜 인터랙션 전반에 걸쳐 실시간 반응형 UI를 구현했습니다.
주요 기능
- Redis Fan-out 전략 기반 피드 생성 및 무한 스크롤
- 커스텀 미디어 피커 (다중 선택, 필터, 압축·캐싱 최적화)
- Socket.io 기반 1:1 실시간 다이렉트 메시지(DM)
- 좋아요, 댓글, 북마크, 팔로우 등 소셜 인터랙션 및 실시간 반응형 UI
- MongoDB 기반 비정형 콘텐츠 데이터 관리
해결한 문제
SNS 특성상 팔로워 수가 많은 사용자가 게시물을 올릴 경우 수천~수만 명의 피드를 동시에 갱신해야 하는 Fan-out 문제가 발생하며, 이는 순간적인 DB 부하 급증으로 이어집니다. 또한 이미지·영상이 주된 콘텐츠인 만큼 미디어 로딩 속도와 앱 내 미디어 처리 성능이 사용자 경험에 직접적인 영향을 미칩니다.
솔루션
Redis를 피드 캐시 저장소로 활용한 Fan-out on Write 전략을 적용하여, 게시 시점에 팔로워 피드를 미리 생성·캐싱함으로써 조회 시 DB 부하를 최소화했습니다. 미디어 처리 측면에서는 커스텀 사진첩 컴포넌트에 압축 및 캐싱 파이프라인을 내장하여 업로드 용량을 줄이고 로딩 속도를 개선했습니다.
성과
- Redis Fan-out 전략 적용으로 접속자 폭주 시에도 피드 조회 안정성 확보
- 미디어 압축·캐싱 최적화를 통한 콘텐츠 로딩 속도 개선
- Socket.io 기반 실시간 DM으로 앱 이탈 없는 커뮤니케이션 환경 구현
- MongoDB 비정형 구조 채택으로 다양한 콘텐츠 포맷 유연하게 대응
이런 프로젝트에 적합합니다
자주 묻는 질문
Q. 팔로워가 많은 사용자의 게시물이 수만 명의 피드에 동시 반영되는 부하를 어떻게 처리하나요?
Redis를 피드 캐시 저장소로 활용한 Fan-out on Write 전략을 적용하여, 게시 시점에 팔로워 피드를 미리 생성·캐싱합니다. 피드 조회 시 DB를 직접 조회하지 않고 캐시에서 즉시 서빙하므로, 동시 접속자가 급증해도 안정적인 피드 로딩 속도를 유지합니다.
Q. 실시간 DM(다이렉트 메시지)은 어떤 기술로 구현되나요?
Socket.io 기반의 웹소켓 통신으로 1:1 실시간 채팅을 구현했습니다. 메시지 전송·수신이 지연 없이 이루어지며, 사용자가 앱 내에서 피드 탐색과 채팅을 끊김 없이 전환할 수 있는 구조를 설계했습니다.
Q. 미디어 로딩 속도는 어떻게 최적화했나요?
커스텀 사진첩 컴포넌트에 미디어 압축 및 캐싱 파이프라인을 내장하여 업로드 용량을 줄이고 로딩 속도를 개선했습니다. 다중 선택, 필터 기능이 포함된 미디어 피커를 네이티브로 구현하여 SNS 특유의 풍부한 미디어 경험을 제공합니다.