개발기간: 2025-09-02 ~ 2025-12-31
<aside>
1.1 프로젝트에 대한 소개 및 목적
<aside>
이 프로젝트는 소셜 페이지의 웹 서비스를 목표로 진행한 프로젝트이다.
실시간 채팅, 쇼핑 기능, 게시글 및 댓글 기능을 중심으로 설계하였다.
여러 기술을 사용하며 특성에 맞는 기술을 선택하여
아키텍처 설계 경험을 하는것을 목표로 하였다.
</aside>
2.1 프론트엔드 (Frontend)
<aside>
React / Next.js
초기에는 React 프로젝트를 시작하였으나,
SEO 최적화, 서버 사이드 렌더링(SSR)의 강점, 보안의 이점을 고려하여
React에서 Next.js로 마이그레이션하였다.
</aside>
2.2 백엔드 (Backend)
<aside>
소셜 서비스 영역
Spring → Next.js (Express)
소셜 서비스 영역은 상대적으로 민감한 개인정보 비중이 낮고,
실시간 기능과 빠른 입출력,개발속도가 중요하다고 판단하여
express로 마이그레이션하였다.
</aside>
<aside>
쇼핑 서비스 영역
Nest.js
결제 기능은 민감한 정보를 다루는 영역이므로
정형화된 데이터 구조, 트랜잭션 처리, 보안성이 중요하다고 판단하였다.
소셜 서비스중 장애가 발생하더라도 결제에 영향을 주지 않기 위해 분리하였다.
</aside>
2.3 데이터베이스 (DataBase)
<aside>
소셜 서비스
MySQL → MongoDB
초기에는 관계형 데이터베이스인 MySQL을 사용하여 설계하였으나
소셜 서비스 영역의 경우 게시글, 댓글, 채팅 메시지 등 비정형 데이터의 비중이 높고
결제와 같은 민감한 정보가 포함되지 않는다는 특성과 빠른 성능을 위하여 적용하였다.
</aside>
<aside>
쇼핑 서비스
PostgreSQL
쇼핑 서비스 영역은 결제 정보 및 주문 데이터 등 민감한 정보를 가지고 있기에 트랜잭션,무결성,안정성을 중시하며 관계형 데이터베이스를 적용하였다.
</aside>
<aside>
공통
Redis
로그인할때 토큰뿐만 아니라 세션으로도 사용하며
소셜과 쇼핑 서비스의 인증을 공동으로 처리하기 위해 필수적으로 사용
</aside>