프로젝트 배경
1) 기획 의도
• 실시간 채팅 서비스의 전체 구조를 직접 구현해보고자 기획함
• React와 TypeScript를 실무 수준으로 학습하고 적용
• Socket.IO를 활용한 실시간 통신 방식 이해
• JWT 인증과 사용자 정보 처리 흐름을 익히기 위한 목적
• 프론트엔드부터 백엔드, 배포까지 전체 개발 프로세스를 경험하는 데 초점
2) 프로젝트 목표
• 실시간 메시지 송수신, 상대방 온라인 상태 표시 기능 구현
• React 기반의 컴포넌트 UI 설계 및 상태 관리 적용
• Node.js + Express + MySQL을 활용한 백엔드 API 구성
• JWT를 활용한 로그인 인증 및 사용자 세션 처리
• Docker를 활용한 로컬 개발 환경 구성 및 EC2 기반 수동 배포 테스트
3) 주안점
• Socket.IO 기반의 실시간 통신 로직 설계 및 적용
• JWT 인증 구조 설계로 사용자 인증 및 보안 처리
• 반응형 UI 및 styled-components 활용한 모듈형 스타일링 적용
• Sequelize ORM을 활용한 데이터 모델링 및 쿼리 최적화
• Docker 기반 컨테이너 개발 환경 구성으로 프로젝트 이식성 강화
• 실시간 채팅 서비스의 전체 구조를 직접 구현해보고자 기획함
• React와 TypeScript를 실무 수준으로 학습하고 적용
• Socket.IO를 활용한 실시간 통신 방식 이해
• JWT 인증과 사용자 정보 처리 흐름을 익히기 위한 목적
• 프론트엔드부터 백엔드, 배포까지 전체 개발 프로세스를 경험하는 데 초점
2) 프로젝트 목표
• 실시간 메시지 송수신, 상대방 온라인 상태 표시 기능 구현
• React 기반의 컴포넌트 UI 설계 및 상태 관리 적용
• Node.js + Express + MySQL을 활용한 백엔드 API 구성
• JWT를 활용한 로그인 인증 및 사용자 세션 처리
• Docker를 활용한 로컬 개발 환경 구성 및 EC2 기반 수동 배포 테스트
3) 주안점
• Socket.IO 기반의 실시간 통신 로직 설계 및 적용
• JWT 인증 구조 설계로 사용자 인증 및 보안 처리
• 반응형 UI 및 styled-components 활용한 모듈형 스타일링 적용
• Sequelize ORM을 활용한 데이터 모델링 및 쿼리 최적화
• Docker 기반 컨테이너 개발 환경 구성으로 프로젝트 이식성 강화
핵심 기능
실시간 채팅 기능 (Socket.IO)
메시지 전송/수신을 실시간으로 처리, 채팅방 간 이벤트 동기화 구현
무한스크롤 메시지 목록
이전 대화 불러오기를 페이지네이션 없이 자연스럽게 구현
JWT 기반 로그인 및 회원가입 기능
토큰을 통한 인증/인가 처리로 사용자 보안 강화
채팅방 생성 및 사용자 관리 기능
사용자 간의 대화방 생성 및 참여자 목록 관리 가능
진행 단계
기획 및 설계
2024.11.
• 채팅 앱 기능 정의 및 기술 스택 선정
• UI 구성안, DB 설계, API 명세서 작성
• UI 구성안, DB 설계, API 명세서 작성
프론트엔드 개발
2024.11.
• React + TypeScript + Recoil 기반 SPA 구축
• 무한스크롤 메시지 리스트, 로그인/회원가입, 채팅방 UI 개발
• Socket.IO 클라이언트 연동 및 상태 관리 로직 구현
• 무한스크롤 메시지 리스트, 로그인/회원가입, 채팅방 UI 개발
• Socket.IO 클라이언트 연동 및 상태 관리 로직 구현
백엔드 개발
2024.12.
• Node.js + Express 서버 구축
• JWT 인증 및 사용자 세션 처리
• MySQL + Sequelize 기반 데이터 처리
• Socket.IO 서버 구성 및 실시간 이벤트 처리
• JWT 인증 및 사용자 세션 처리
• MySQL + Sequelize 기반 데이터 처리
• Socket.IO 서버 구성 및 실시간 이벤트 처리
테스트 및 디버깅
2025.01.
• 기능별 동작 테스트 및 버그 수정
• 반응형 웹 대응 및 UX 개선
• 반응형 웹 대응 및 UX 개선
배포 및 완료
2025.02.
• Docker를 활용한 컨테이너 환경 구성
• AWS EC2 + Nginx를 통한 수동 배포
• 배포 후 실시간 기능 정상 작동 여부 검증
• AWS EC2 + Nginx를 통한 수동 배포
• 배포 후 실시간 기능 정상 작동 여부 검증
프로젝트 상세
1) 포트폴리오 소개
• 카테고리: 실시간 커뮤니케이션 웹앱
• 메인 타깃: 일반 사용자
• 요약: 채팅 기반의 소셜 커뮤니케이션 기능을 갖춘 실시간 웹 메신저 서비스 개발
2) 작업 범위
• 프론트엔드 개발 (React + TypeScript)
• 백엔드 개발 (Node.js + Express + MySQL)
• REST API 설계 및 Socket.IO를 활용한 실시간 통신 구현
• Docker 및 AWS 기반 배포 환경 구성
3) 주요 업무
• 로그인/회원가입 및 JWT 인증 처리
• 실시간 채팅 기능 구현 (Socket.IO)
• 상대방 온라인 상태 표시
• 무한스크롤 기반 메시지 목록 로딩
• 채팅방 생성 및 사용자 목록 관리
• 사용자 프로필 관리 페이지
• MySQL + Sequelize 기반 데이터 모델링 및 쿼리 처리
4) 주안점
• 실시간성 중심의 통신 로직 구조화 (Socket.IO)
• JWT 기반의 사용자 인증 및 정보 보호
• 모바일 최적화를 고려한 반응형 UI 구성
• AWS EC2 + Docker 조합으로 배포 설정
• 카테고리: 실시간 커뮤니케이션 웹앱
• 메인 타깃: 일반 사용자
• 요약: 채팅 기반의 소셜 커뮤니케이션 기능을 갖춘 실시간 웹 메신저 서비스 개발
2) 작업 범위
• 프론트엔드 개발 (React + TypeScript)
• 백엔드 개발 (Node.js + Express + MySQL)
• REST API 설계 및 Socket.IO를 활용한 실시간 통신 구현
• Docker 및 AWS 기반 배포 환경 구성
3) 주요 업무
• 로그인/회원가입 및 JWT 인증 처리
• 실시간 채팅 기능 구현 (Socket.IO)
• 상대방 온라인 상태 표시
• 무한스크롤 기반 메시지 목록 로딩
• 채팅방 생성 및 사용자 목록 관리
• 사용자 프로필 관리 페이지
• MySQL + Sequelize 기반 데이터 모델링 및 쿼리 처리
4) 주안점
• 실시간성 중심의 통신 로직 구조화 (Socket.IO)
• JWT 기반의 사용자 인증 및 정보 보호
• 모바일 최적화를 고려한 반응형 UI 구성
• AWS EC2 + Docker 조합으로 배포 설정

로그인

회원가입

친구 목록 페이지

채팅 목록 페이지

친구 찾기 및 추가

나와의 채팅

1:1 실시간 채팅 & 메시지 읽음 처리

메시지 삭제

프로필 사진 변경