개발 · 프로그래밍

/

백엔드

대용량 채팅 TPS 처리를 위한 웹소켓 통신 만들며 학습하기

아프리카, 네이버(치지직), 트위치 이러한 스트리밍 플랫폼에서 사용하는 채팅서버를 위한 웹소캣 통신에 대해서 알아보고 실제로 구현을 하는 강의 입니다.

(4.2) 수강평 23개

수강생 483명

Thumbnail

초급자를 위해 준비한
[백엔드, 데브옵스 · 인프라] 강의입니다.

이런 걸
배워요!

  • WebSocket 통신을 사용하는 이유

  • HTTP 통신와 WebSocker 통신의 차이

  • WebSocket의 장점과 단점

트위치, 치지직(네이버), 아프리카의
채팅 서버는 어떻게 구현을 하는 걸까요? 🤔


이러한 실시간에 대한 데이터에 대한 처리를 위한 프로토콜은 바로 WebSocket 통신에 있습니다.

일반적인 HTTP통신이 아니라, 지속적인 Connection에 대한 오버헤드를 줄이고 동시성을 챙기기 위한 통신입니다.

이 강의에서는 간단한 웹 템플릿을 제공하며, 해당 템플릿에 원하는 서버를 구축하여 채팅에 대한 기능을 구현하는 것을 목표로 하고 있습니다.


만약 백엔드 개발자로서, 일반적인 HTTP API는 작성은 할 줄 아시는 분들이 들으신다면, 더욱더 다양한 프로토콜을 다룰 수 있는 백엔드 개발자로서 성장 가능한 강의 입니다.

제 강의를 통해서 다시 한 번 코딩 공부에 대한 두근거림과 재미를 찾을 수 있으면 좋겠습니다.

HTTP 통신만 할 줄 알면, 백엔드 개발은 끝나는게 아닌가요?🤔

취업을 준비하는 학생분들은 이러한 생각을 가지고 있으실 수도 있습니다.

하지만 대기업, 중견기업등 다양한 면접을 보고, 합격을 하며 실제 판교 회사에 근무를 하면서

일반적인 HTTP 통신에 대해서만 개발을 하는 경우는 없습니다.


근본적인 데이터 수집 모듈을 만드실 수도 있고, RPC를 통한 게이트웨이 역할을 하는 서버를 구성하실 수도 있습니다.

이러한 이유로, HTTP통신을 넘어서서 다양한 프로토콜을 통해서 공부하고 직접 구현을 하는것이 취업이나 실무에서 굉장히 중요한 요인입니다.

만약, 대용량 TPS에 대한 RPC통신에 대해서 궁금하시다면, 아래 제 강의를 참고하시면 많은 도움이 될겁니다.

websockets을 그냥 HTTP로 구현을 하면 되는거 아닌가요? 🤔

📌 가능합니다. 불가능한 개발 방식은 아닙니다.

📌 하지만 서버 개발자는 일반적으로 서버에 대한 리소스를 최대한 절감을 하여 가져가야 합니다.

📌 그러기 떄문에, 채팅서버와 같이 지속적인 Connection이 유지되어야 하는 통신 같은 경우에는 WebSocket을 사용하는것이 매우 적합합니다.

📌 이러한 영상에서 확인 가능하신 것처럼, 실제 플랫폼을 구성하는데에 있어서 HTTP만을 사용하는 것이 아니라 다양한 프로토콜을 사용하게 됩니다.

이런 분들이 제 강의를 들으시면 많은 도움이 됩니다.

백엔드 개발로 레벨업하고 싶어요.부트캠프, 독학, 전공을 통해서 HTTP는 알겠는데, 그 이후로 무엇을 해야하는지 모르시는
백엔드 개발자 / 학생

다양한 네트워크 통신이 궁금해요
다양한 프로토콜에 대해서 궁금하고 학습을 원하시는
개발자 지망생 분들

프로토콜에 따라 인프라 구축이 궁금해요
데브옵스 엔지니어로서, 로드밸런싱을 적용하는 경우에 대해서 프로토콜 고려가 필요하신

데브옵스 엔지니어 / 학생

수강 후에는 다음과 같은 지식을 가지실 수 있습니다.

📌 WebSocket 프로토콜에 대한 학습

📌 지속적인 통신에 대한 오버헤드를 줄이는 방법

📌 직접 채팅서버를 구현함으로써 완성된, 포트폴리오

📌 실무에서 HTTP 프로토콜 이외에도 신규 서비스에 대해서 의견을 제안할 수 있는 지식

이런 내용을 배워요.

이러한 채팅서버를 만드는것을 목표로 합니다.

이 강의에서는 해당 영상에서와 같은 채팅 서버를 구현하는 것을 목표로 합니다.

프론트 템플릿을 제공

해당 강의는 백엔드에 치중되어 있습니다.

그렇기 때문에 테스트 및 디버깅을 위한 프론트 템플릿을 따로 제공하고 있습니다.

Draw.io 를 통해서 아키텍처에 대한 설명

websockets을 사용할 때 주의해야 하는 점,

제가 실무에서 직접 겪으면서 디버깅을 진행했던 이력을 공유드립니다.

Bolierplate logging

판교 개발자는 Node에 대해서 어떻게 Bolierplate하는지, winston을 통한 로깅 처리는 어떻게 진행하는지 모든 것을 알려드립니다.

수강 전 참고 사항

실습 환경

  • 강의는 MacOS(M1) 기준으로 설명합니다.

  • 강의에서는 Go, Node.js 를 사용합니다. Go를 모르셔도 Node.js 코드를 제공하기 때문에, 무방합니다.


  • IDE는 Goland 및 vscode를 사용합니다.

2탄 강의가 오픈을 하였습니다.

기존 서비스 로직을 다루는것을 넘어서서, 실제 무중단 배포는 어떻게 되는지, Event 스트림은 어떻게 처리를 하는지에 대해서 중점적으로 다루고 있습니다.


추가적인 MySQL 설계를 통해 서비스를 더 견고하게 만드는 방법에 대해서도 같이 다루고 있습니다.

관심 있으시다면, 해당 링크를 참고해 주세요!!

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • HTTP만 개발해보신 백엔드 개발자

  • 개발을 처음 접하는 취업 준비생

  • 다양한 프로토콜에 흥미가 있으신 개발자

  • 데브옵스로써 프로토콜에 궁금하신 분

선수 지식,
필요할까요?

  • Go [ 모르셔도 Node.Js를 아신다면 무방합니다.]

  • NodeJs [ 모르셔도 Go를 아신다면 무방합니다.]

안녕하세요
July입니다.

자기 소개

비전공자 출신으로 대학교 4학년에 갑자기 개발에 흥미가 생겨 혼자서 삽질을 진행하며 개발을 진행했던 서버 개발자...

Mongo Korea, Oracle등등 다양한 기업에서 세션을 진행한 경험이 있으며 이를 토대로

대용량 데이터와 트래픽을 직접 튜닝한 이력과 경험을 기반으로 강의를 촬영하고 이를 통해 수강생 분들이 좀 더 개발에 재미를 느끼게 하고싶은 지식공유자.

 

경력

[前] 샌드박스 블록체인 개발자

[前] 넥슨 자회사 백엔드 개발자

[前] 판교 대기업 플랫폼 서버 개발자

[] 판교 중견기업 모회사 서버 개발자

- 개인적인 사정 및 회사 사정으로 경력 사항의 상세한 부분은 변경 및 수정되었습니다.

커리큘럼

전체

25개 ∙ (1시간 49분)

수업 자료

가 제공되는 강의입니다.

강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!