본문 바로가기

개발 이야기

서버의 개념에 대해

728x90

사람들은 서버를 추상적인 개념으로 알고 있는 경우가 많아서 정확히 서버가 무엇인지 알아보는 시간을 갖도록 하겠습니다.
보통 일상에서도 서버가 터졌다. 서버렉이 심하다. 이런 표현을 많이 씁니다.

server의 사전적 뜻은 service를 제공하는 사람이라는 뜻입니다.

 

그러면 컴퓨터에서 서버는 무엇을 제공할까요?

클라이언트가 요청한 데이터입니다.

레스토랑을 예시로 들면 손님(클라이언트가) 음식을 주문하죠?

서버는 손님의 주문을 확인하고 음식을 서비스합니다.

서버는 '역할'입니다. 서버가 다른 서버에게 요청할때는 클라이언트가 됩니다. 클라이언트도 마찬가지로 역할이죠.

레스토랑 예시를 다시말씀드리면, 웨이터도 주방에 음식을 요청할 수 있고, 식자재를 주문하는 요청, 사장에게 임금을 요청할 수 있습니다. 그때는 웨이터가 클라이언트가 되는 거죠.

여러분도 집컴으로 서버의 역할을 할 수 있습니다.

윈도우서버를 만들수도 있고, 가상머신으로 리눅스를 설치해서 본격적으로 해볼 수도 있죠.

결국 서버도 하나의 컴퓨터입니다.

컴퓨터가 요청하냐 응답하냐에 따라 서버와 클라이언트가 나뉘는 거죠.

 

이것처럼 우리가 인터넷을 통해 하는 행위 들은 모두 서버에게 '요청'하는 행위입니다.

이것을 실생활에서 예시로 말씀드리겠습니다.

카카오톡의 대화는 내가 입력한 채팅내용을 전송버튼을 누르면 이 대화방에 전송'해 줘'.

네이버메인 사이트에 접속한 경우는 네이버에게 너희 사이트 글과 사진들을 '보여 줘'

온라인게임은 내가 하는 행동과 말들을 다른사람들에게 실시간으로 '보여 줘'.

->게임의 경우 동기화가 매우 매우 중요하죠? 동기화가 안되면 서로 보이는 게임진행상황이 다를 겁니다.

그래서 게임서버의 경우 성능이 중요합니다.

 

오늘은 이렇게 서버에 대해 설명했습니다.

잘못된 내용이나 궁금한 내용, 수정하면 좋은 내용들은 댓글에 남겨주세요.