kakasoo

[TCP/IP] 다중 접속 서버의 구현 본문

프로그래밍/네트워크

[TCP/IP] 다중 접속 서버의 구현

카카수(kakasoo) 2020. 7. 18. 15:08
반응형

내 지인 sdworkbase가 나한테 운영체제에 대한 과외를 해줬을 때, 프로세스에 관한 이야기가 나온 적 있었다. 프로세스는 메모리 공간을 차지한 상태에서 실행 중인 프로그램을 지칭하는 말이다. 저장 중인 상태에서는 프로그램이지만, 동작하는 시점에서는 프로세스다.

이런 원리가 갑자기 왜 나오냐면, 내가 만들 서버에서도, 다중 접속을 허용하기 위해 필요하기 때문이다. 프로세스들은 운영체제에 의해서 실행과 멈춤을 반복하게 되는데, 마치 껌벅이는 듯한 이런 모양새 덕분에 컴퓨터는 적은 자원으로 여러 프로그램들을 실행시킬 수 있게 된다.

말하자면, 하나의 서버는 1등부터 100등까지 선착순으로 정보를 제공해주는데, 1등과 100등의 접속 시간 차이가 단 0.5초에 불과한데도 결과에 대한 지연 시간이 너무 큰 폭으로 벌어질 수 있는 반면, 다른 한 서버는 모든 사용자에 대해 다중 접속을 지원하는 것이다.

내가 만들 서버에도 이런 원리를 구현해보도록 하자.

 

다중 접속 서버의 구현 방법

  • 멀티프로세스 기반 서버 // 다수의 프로세스를 생성하는 방식으로 서비스 제공
  • 멀티플렉싱 기반 서버 // 멀티 플렉싱 기반 서버
  • 멀티쓰레딩 기반 서버 // 클라이언트 수 만큼 쓰레드를 생성하는 방식으로 서비스 제공

 

나는 이 중 멀티플렉싱 기반 서버를 배워볼 생각인데, 이는 내가 window 기반으로 서버를 만들고 있기 떄문에 그렇다.

물론, 나중에는 배우게 될 것이고, 알게 모르게 전반적인 내용이 언급될 수는 있다.

반응형