Skip to content

sang-woon/python_test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Rocket.Chat-Style Messenger App

Rocket.Chat에서 영감을 받아 만든 실시간 메신저 애플리케이션입니다.

✨ 주요 기능

  • 실시간 채팅: WebSocket을 사용한 실시간 메시지 전송
  • 다중 채널: 여러 채널을 생성하고 전환할 수 있습니다
  • 사용자 관리: 온라인 사용자 목록 확인
  • 직관적인 UI: Rocket.Chat 스타일의 모던한 인터페이스
  • 시스템 메시지: 사용자 입장/퇴장 알림
  • 메시지 히스토리: 이전 메시지 기록 조회

🛠 기술 스택

백엔드

  • FastAPI: 현대적인 Python 웹 프레임워크
  • WebSocket: 실시간 양방향 통신
  • Pydantic: 데이터 검증 및 모델링
  • Uvicorn: ASGI 서버

프론트엔드

  • HTML5/CSS3: 모던 웹 표준
  • JavaScript (Vanilla): 순수 자바스크립트
  • WebSocket API: 실시간 통신

📋 요구사항

  • Python 3.8 이상
  • pip (Python 패키지 관리자)

🚀 설치 및 실행

1. 의존성 설치

pip install -r requirements.txt

2. 서버 실행

python main.py

또는 uvicorn으로 직접 실행:

uvicorn main:app --host 0.0.0.0 --port 8000 --reload

3. 브라우저에서 접속

http://localhost:8000

📁 프로젝트 구조

python_test/
├── main.py                 # FastAPI 메인 서버
├── models.py              # 데이터 모델 (Pydantic)
├── requirements.txt       # Python 의존성
├── README.md             # 프로젝트 문서
└── static/               # 정적 파일
    ├── index.html        # 메인 HTML
    ├── style.css         # 스타일시트
    └── app.js           # 클라이언트 JavaScript

🎮 사용 방법

  1. 로그인: 사용자 이름을 입력하고 "입장하기" 클릭
  2. 채널 선택: 왼쪽 사이드바에서 채널을 클릭하여 이동
  3. 메시지 전송: 하단 입력창에 메시지를 입력하고 전송
  4. 새 채널 만들기: "+" 버튼을 클릭하여 새 채널 생성

🔧 API 엔드포인트

REST API

  • GET /: 메인 페이지
  • GET /api/channels: 모든 채널 목록 조회
  • POST /api/channels: 새 채널 생성
  • GET /api/channels/{channel_name}/messages: 채널의 메시지 조회
  • GET /api/users: 모든 사용자 조회

WebSocket

  • WS /ws/{channel_name}/{username}: 실시간 채팅 연결

📝 메시지 타입

  • TEXT: 일반 텍스트 메시지
  • SYSTEM: 시스템 메시지
  • JOIN: 사용자 입장 메시지
  • LEAVE: 사용자 퇴장 메시지

🎨 주요 특징

실시간 통신

WebSocket을 사용하여 모든 사용자에게 즉시 메시지가 전달됩니다.

다중 채널 지원

여러 채널을 만들고 자유롭게 전환할 수 있습니다. 각 채널은 독립적인 대화 공간입니다.

인메모리 저장소

현재 버전은 인메모리 저장소를 사용합니다. 서버 재시작 시 데이터가 초기화됩니다.

🔜 향후 개선 사항

  • 데이터베이스 연동 (MongoDB, PostgreSQL)
  • 사용자 인증 (JWT)
  • 파일 업로드 기능
  • 프라이빗 메시지 (DM)
  • 메시지 검색 기능
  • 이모지 및 리액션 지원
  • 알림 기능
  • 모바일 반응형 디자인 개선

📄 라이선스

MIT License

🙏 감사의 말

이 프로젝트는 Rocket.Chat에서 영감을 받았습니다.

👥 기여

버그 리포트, 기능 제안, Pull Request를 환영합니다!

📞 문의

질문이나 제안사항이 있으시면 이슈를 생성해주세요.

About

hi first time

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors