Problem
어떤 문제를 풀었나
기존 SNS는 단순 텍스트나 이미지 중심의 콘텐츠 공유에 그쳤으며, 사용자가 창작자로서 자신만의 콘텐츠를 체계적으로 정리하고 출판하는 경험을 제공하지 못했습니다.
Project Detail
나만의 콘텐츠를 책으로 출판하는 크리에이터 SNS
사용자가 앨범, 웹 소설, 레시피북 등 다양한 콘텐츠를 직접 출판할 수 있는 SNS 플랫폼으로, 디지털 환경 속에서 아날로그 감성을 경험할 수 있도록 지원합니다.
기간
2024.01 ~ 2024.02
팀 구성
6명 (FE 3 / BE 3)
기술 스택
10개 기술 사용
Problem
기존 SNS는 단순 텍스트나 이미지 중심의 콘텐츠 공유에 그쳤으며, 사용자가 창작자로서 자신만의 콘텐츠를 체계적으로 정리하고 출판하는 경험을 제공하지 못했습니다.
Contribution
채팅 및 카테고리 관리 기능 개발 · 이메일 인증 및 실시간 알림 기능 구현
Outcome
최우수 성과와 함께 사용자가 직접 창작자가 되어 자신만의 콘텐츠를 책 형태로 출판
사용자가 앨범, 웹 소설, 레시피북 등 다양한 콘텐츠를 직접 출판할 수 있는 SNS 플랫폼으로, 디지털 환경 속에서 아날로그 감성을 경험할 수 있도록 지원합니다.
Target User
자신만의 콘텐츠를 창작하고 공유하고 싶은 크리에이터
Core Experience
나만의 콘텐츠를 책으로 출판하는 크리에이터 SNS
Why It Matters
사용자가 직접 창작자가 되어 자신만의 콘텐츠를 책 형태로 출판
디지털 시대의 다양한 SNS 중에서, 사용자가 직접 창작자가 되어 자신만의 콘텐츠를 책 형태로 출판할 수 있는 독특한 공간을 제공합니다. 앨범, 웹 소설, 요리 레시피북, 여행 모음집 등 자신만의 다양한 콘텐츠를 직접 만들고 공유할 수 있게 하여 디지털 환경 속에서 아날로그 감성을 경험할 수 있는 새로운 형태의 SNS를 제시합니다.
기존 SNS는 단순 텍스트나 이미지 중심의 콘텐츠 공유에 그쳤으며, 사용자가 창작자로서 자신만의 콘텐츠를 체계적으로 정리하고 출판하는 경험을 제공하지 못했습니다.
자신만의 콘텐츠를 창작하고 공유하고 싶은 크리에이터
What makes this project special
사용자가 직접 창작자가 되어 자신만의 콘텐츠를 책 형태로 출판
앨범, 웹 소설, 레시피북, 여행 모음집 등 다양한 콘텐츠 형식 지원
디지털 환경 속에서 아날로그 감성을 경험할 수 있는 UI/UX
Elasticsearch 기반 실시간 검색으로 빠른 콘텐츠 탐색
WebSocket 기반 실시간 채팅 및 알림 기능
Engineering details and infrastructure
시스템 아키텍처
MySQL LIKE 쿼리 대비 검색 속도 50% 이상 향상 (100~150ms → 40~60ms), HTML 태그 포함 텍스트도 효율적으로 검색
CompletableFuture와 @Async를 활용한 MySQL-Elasticsearch 실시간 동기화 구현
SMTP를 통한 이메일 전송 및 Redis TTL 기반 인증 코드 관리로 보안성 강화
실시간 채팅 및 알림 기능 구현, JWT 토큰 기반 인증 및 인터셉터로 보안 강화
MySQL, Redis, ELK Stack, Nginx 포함 인프라 통합 관리 및 배포 간소화
@Nickname 커스텀 어노테이션과 HandlerMethodArgumentResolver로 닉네임 검증 로직 중앙 집중화
Technical challenges encountered during the project and solutions
RDB LIKE 쿼리의 성능 저하, HTML 태그 포함 텍스트 검색 비효율, MySQL-Elasticsearch 간 데이터 동기화 문제가 있었습니다.
CompletableFuture와 @Async를 활용한 비동기 프로그래밍으로 MySQL 저장 시 Elasticsearch에 동시 적재, HTML 태그 포함 텍스트도 효율적으로 검색 가능하도록 구성했습니다.
이메일 전송의 신뢰성과 속도 보장, 인증 코드의 보안성과 유효기간 관리, 효율적인 실시간 알림 시스템 구축이 필요했습니다.
JavaMailSender를 활용한 SMTP 이메일 전송, Redis TTL 기반 인증 코드 저장 및 유효성 관리, 빠른 데이터 접근 속도를 활용한 검증 최적화를 구현했습니다.
닉네임 검증 로직이 컨트롤러에 분산되어 코드 중복과 가독성 저하, 일관되지 않은 검증 로직 문제가 있었습니다.
@Nickname 커스텀 어노테이션과 HandlerMethodArgumentResolver를 구현하여 닉네임 검증을 단일 진입점에서 처리, 중앙 집중화된 유효성 검증 로직을 구현했습니다.
마이브러리 프로젝트는 사용자가 직접 창작자가 되어 콘텐츠를 책 형태로 출판할 수 있는 SNS를 구축하는 과정에서 Elasticsearch, Redis, WebSocket 등 다양한 기술을 실무적으로 적용할 수 있었던 프로젝트입니다.
Elasticsearch 도입으로 검색 성능 최적화, API 응답 속도 100~150ms에서 40~60ms로 개선
SMTP와 Redis를 활용한 이메일 인증 시스템 구축으로 보안성 강화
커스텀 어노테이션을 통해 닉네임 검증 로직을 중앙 집중화하여 코드 중복 제거
Docker Compose로 MySQL, Redis, ELK Stack, Nginx 통합 관리 및 배포 간소화
CI/CD 파이프라인 미도입으로 배포 작업이 수동으로 이루어져 시간과 효율성 측면에서 불리
CDC 대신 애플리케이션 레이어 비동기 프로그래밍으로 동기화, 데이터 일관성 측면에서 완벽하지 않은 해결책
Spring 최신 버전으로 인해 Elasticsearch 라이브러리 Deprecated, 공식 문서와 커뮤니티 자료 활용 필요
CI/CD 파이프라인 도입으로 배포 자동화
CDC 기반 데이터 동기화 전략 적용
모니터링 및 로깅 시스템 고도화