목차

  1. 프로젝트 소개
  2. 프로젝트 구조
  3. 기술 스택 및 개발 환경

프로젝트 소개

Go 및 백엔드에서 사용하는 전반적인 기술을 익히는 것을 목표로 하는 프로젝트로, 최종 결과물로는 다수의 사용자들이 실시간으로 채팅을 주고받을 수 있는 웹 어플리케이션을 개발하는 것을 목표로 합니다.

채팅은 다수의 유저가 동시에 접속해서 실시간으로 메시지를 주고 받는 기능을 필요로 합니다. 이 때문에 현대 서버 기술에서 중요하게 여겨지는 동시성, 캐시, 데이터베이스 등의 기술의 필요성을 느낄 수 있는 프로젝트라고 생각했습니다. 동시에 이런 기능을 테스트하는 방법을 만들어보는 것도 목표로 하고 있습니다.

여기서 다수란 약 15000명의 사용자가 동시에 접속할 수 있는 서비스로, 이는 스팀 서비스에서 인기 게임 100위 안에 들어가는 게임의 동시 접속자 수와 비슷한 수치입니다. 이와 관련해서 세부적인 테스트 환경은 추후에 다시 정의할 예정입니다.


프로젝트 구조

메인 서버: 회원 가입, 로그인 등의 유저 관리 기능 처리. 채팅 서버로 유저와의 연결 담당. 캐시 및 데이터베이스 서버와의 연결 담당.

캐시 서버: 로그인 정보, 채팅 메시지 등을 저장하고 조회하는 서버.

데이터베이스 서버: 유저 정보, 채팅 메시지 등을 저장하고 조회하는 서버.


기술 스택 및 개발 환경

1. 서버 개발 언어: Go
2. 사용 프레임워크: Gin
3. 배포 환경: Microsoft Azure
4. 데이터베이스: PostgreSQL
5. 채팅 메시지 전달 및 로그인 캐시 서버: Redis
6. 채팅 메시지 저장 및 조회: MongoDB
7. 테스트 방법: Postman, websocket king

서버 개발 언어: Go

사용 프레임워크: Gin

배포 환경: Microsoft Azure

데이터베이스: PostgreSQL

채팅 메시지 전달 및 로그인 캐시 서버: Redis

채팅 메시지 저장 및 조회: MongoDB

테스트 방법: Postman, websocket king


2024-02-25
카테고리로 돌아가기 ↩