개발기간: 2025-09-02 ~ 2025-12-31

<aside>

  1. 프로젝트의 개요
  2. 프로젝트에 사용된 기술 스택
  3. 프로젝트의 설계
  4. 기술적 문제와 해결
  5. 그 외 시스템 설명
  6. 결론 </aside>

1. 프로젝트의 개요

1.1 프로젝트에 대한 소개 및 목적

<aside>

이 프로젝트는 소셜 페이지의 웹 서비스를 목표로 진행한 프로젝트이다.

실시간 채팅, 쇼핑 기능, 게시글 및 댓글 기능을 중심으로 설계하였다.

여러 기술을 사용하며 특성에 맞는 기술을 선택하여

아키텍처 설계 경험을 하는것을 목표로 하였다.

</aside>


2. 프로젝트에 사용된 기술 스택

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>