본문 바로가기

Tech

프로토콜(Protocol)이란?

프로토콜~

 

예전에 고등학교 면접 보러 갔을 때 들었던 여러 면접 질문 중 지금까지 기억에 남는 질문이 있습니다.

프로토콜이 무엇인지 말해보세요.

"잘 모르겠습니다. 입학해서 열심히 공부해보겠습니다."라고 답했던 기억이 나네요. 😀

 

이후에 선생님께서 해당 질문에 대해 이야기해 주셨는데,

"그냥 프로토콜은 약속이라고만 대답해도 됐다."

 

지금 생각해보면 많은 기술적인 부분이 생략되었지만

프로토콜의 본질을 이해하는 데는 '약속'이라는 말이 가장 잘 어울리는 것 같습니다.


프로토콜?

프로토콜이 뭘까요? 프로토콜이라는 단어를 처음 들어보시는 분들을 위해 일상에서 예시를 들어보도록 하겠습니다.

 

여러분이 식당에 갔습니다. 메뉴를 고른 뒤 벨을 누릅니다.

여러분은 아마 종업원이 '주문하시겠어요?' 비슷한 말을 하기를 기대하겠죠?

주문하시겠어요?

예상대로 비슷한 말을 하네요.

이제 메뉴를 말합니다.

안심 카츠 5개랑 등심 카츠 1개 주세요!

종업원이

더 필요한 것 있으세요?

종업원은 아마 앞접시를 달라던지, 물을 더 가져다 달라던지, 아니면 '아뇨 괜찮아요.' 비슷한 말을 기대하겠죠?

앞접시 한 개만 더 가져다주세요!
네 알겠습니다~

종업원과 여러분의 대화에서 여러분이 보내는 특정한 메시지가 있고 (벨을 누르기), 수신된 응답에 대응해서 취하는 특정 행동(메뉴를 말하기)이 있음에 주목해주세요.

 

우리가 벨을 누르고, 종업원이 메뉴를 질문하고, 그거에 대해 대답하고.. 이러한 것들이 사람 간의 프로토콜의 중심 역할을 합니다.

 

만약 종업원이 종업원-손님 관계에서 암묵적으로 정의된 프로토콜이 아닌 다른 프로토콜을 사용한다고 가정해봅시다.

여러분이 벨을 눌렀더니 종업원이 와서 다음과 같이 말합니다.

최근 건강 악화로 인해 사임한 아베 신조를 이어 일본의 총리가 된 스가 요시히데의 대한 정책에 대해 어떻게 생각하시나요?

혹은

Чем я могу помочь вам?

여러분은 '뭐지..? 몰카인가?'라고 생각하겠죠?

두 사람이 다른 프로토콜을 사용한다면,

서로 상호작용할 수 없으며 원하는 동작(여기선 메뉴 주문)을 수행할 수 없습니다.

 

결국 네트워킹을 수행하려면 두 개체가 함께 인식하는 프로토콜이 필요합니다!


컴퓨터 네트워크 상에서 쓰이는 프로토콜과 사람들이 사용하는 프로토콜의 유일한 차이는 메시지를 교환하고 행동을 하는 개체가 사람이냐 컴퓨터(소프트웨어와 하드웨어)냐의 차이일 뿐입니다.

 

네트워크 프로토콜 중에 가장 유명한 TCP를 볼까요?

A 컴퓨터가 '통신 하자!'라고 보냅니다.

그 메시지를 받은 B 컴퓨터는 '그래! 통신하자! 나도 준비되었어!'라고 보냅니다.

A 컴퓨터는 '오키오키~' 라 보냅니다.

 

이제 A 컴퓨터가 데이터를 보냅니다.

B 컴퓨터는 '잘 받았음! 이제 ~~ 까지 보내줘!'라고 보냅니다.

A 컴퓨터는 '오키오키~'라 보냅니다.

 

사람이 사용하는 프로토콜이랑 매우 매우 유사하지 않나요?

결국 프로토콜은

'둘 이상의 통신 개체 간에 교환되는 메시지 포맷이나 순서뿐 아니라, 메시지의 송수신과 다른 이벤트에 따른 행동들을 정의하는 역할을 수행합니다.'

 

네트워크 상에서는 위에서 본 TCP 뿐 아니라

IP, UDP, HTTP, FTP 등등.. 수많은 프로토콜들을 수 많은 목적을 위해 사용합니다.

다음에는 각 프로토콜에 대해 정리해보도록 하겠습니다~

'Tech' 카테고리의 다른 글

웹 서버, 웹 어플리케이션 서버  (0) 2020.10.15