반응형

소켓 프로그램을 만드는건 매우 쉽다.
하지만 잘 만드는건 어렵다.

소켓 프로그램은 일반 응용어플리케이션과 달리 외부 영향과 다양한 변수가 존재한다.
웹소켓은 그나마 TCP/IP와 달리 수월한 편에 속하지만 여전히 잘 만드는건 어렵다.

이번에 작업할 내용은 비교적 간단한 채팅방 개념의 다중 채팅이다.
즉 여러 클라이언트가 소켓 서버에 접속해서 각각 원하는 방에 입장하고 해당 방에서 발생한 대화는 해당 방에만 전달되는 전통적인 그 채팅이다.

기본적인 부분은 차치하고 설계시 고려대상으로 둔 부분은 몇 개의 클라이언트를 지원할 것인가였다.

나름 최대 4000개 이상의 클라이언트를 지원할 생각이다.

그럼 하나의 서버가 이를 다 커버할 수 있을까?
대답은 No

이때 사용할 기술이 PM2, Redis, Nginx다.
PM2는 멀티 프로세스로 서버 소켓 프로그램을 실행할 것이고
Nginx는 멀티 프로세스로 실행되는 서버 소켓 프로그램의 분배 접속에 
Redis는 멀티 프로세스간의 대화 내용을 공유하게 만들어주는 기술로 활용할 것이다.

이제 하나씩 진행해보자.

반응형
Posted by Hippalus
,