본문 바로가기
포트폴리오 소개/I'm doing this just for fun.

고, 플러터, 라즈베리파이5로 채팅 서비스 만들기 - 1

by 신재은👩🏼‍💻 2024. 2. 1.

본 서비스를 만드는 이유: 그냥. 만들고 싶으니까.

 

환경:

라즈베리파이5는 headless 홈 서버로 간다.

아르곤 케이스 안에 본체만 넣었고 정품 아닌 국산 어댑터로 전원을 공급한다.

마이크로 SD카드의 용량은 256GB다.

이게 하드웨어 세팅 끝이다.

 

putty로만 연결하고 vnc는 쓰지 않는다(사실 쓸 수가 없다).

라즈베리파이 os 위에 도커 올리고, 그 위에 컨테이너 여러 개 올리고, 그 안에 앞으로 내가 만들 백엔드 서비스를 하나씩 넣을 거다.

프론트는 보통은 플러터를 하겠지만 다른 걸 쓸 수도 있다.  

 

데드라인: 엄청 바쁘다. 하루 중 시간이 별로 나지 않는다. 그래서 빨리 못 끝낼 거 같다. 그래도 3월 말 안에는 끝내고 싶다.

 

계획: 

1. 서버 설계: 채팅 서버의 기본 아키텍처를 설계하자. 어떤 기능이 필요한지, 어떤 프로토콜(WebSocket, HTTP 등)을 사용할지 결정하자.(진행 중)

2. 개발 환경 설정: Go 언어 개발 환경을 설정하자. Go 언어와 필요한 라이브러리를 설치하자.

3. 기본 서버 구현: Go에서 제공하는 net/http 패키지나 WebSocket을 사용하여 기본적인 서버를 구현하자. 클라이언트의 연결을 받아 처리할 수 있는 간단한 서버를 만들자.

4. 메시징 로직 구현: 클라이언트 간 메시지 전송 및 수신 기능을 구현하자. 메시지 포맷을 정의하고, 연결된 클라이언트 간 메시지를 중계하는 로직을 개발하자.

4. 동시성 처리: Go의 강점 중 하나인 동시성(concurrency) 기능을 활용하여 여러 클라이언트의 요청을 효율적으로 처리하자. goroutine과 channel을 사용하여 고성능의 채팅 서버를 구축하자.

5. 테스트: 개발한 채팅 서버의 기능과 성능을 테스트하자. 단위 테스트와 함께, 여러 클라이언트가 동시에 접속하고 메시지를 주고받는 시나리오를 시뮬레이션하여 서버를 테스트하자.

6. 보안 적용: 채팅 서버와 클라이언트 간의 통신에 SSL/TLS 암호화를 적용하여 보안을 강화하자.

7. 컨테이너화 및 배포: 개발한 채팅 서버 애플리케이션을 도커 컨테이너로 패키징하고, 라즈베리파이 서버에 배포하자.

8. 모니터링 및 유지보수: 서버의 상태를 모니터링하고, 필요한 경우 업데이트와 유지보수를 수행하자(앞으로 어떻게 관리할지도 구상하자).