네트워크

[네트워크] 서버, 클라이언트

Jay_J 2024. 5. 18. 07:58

네트워크를 공부하다 보면 서버와 클라이언트에 대해서도 많이 듣게 될 것이다. 나도 공부하다가 항상 서버와 클라이언트만 나오면 머리가 하얘지는 경험을 했기 때문에 간단히 서버와 클라이언트가 무엇인지 메모하고 넘어가겠다.

**클라이언트(Client)**  
클라이언트는 "고객"이라는 의미로 많이 쓰이는 단어이다. 네트워크에서의 '클라이언트'란, 서버에 직접적으로 요청을 보내 원하는 데이터를 받는 주체를 뜻한다. 예를 들어, 우리가 유튜브에서 네트워크 관련된 강의 영상을 보고 싶다면, http://www.youtube.com이라는 도메인에 접속하여 "네트워크 강의" 영상을 검색하고 맨 첫 번째에 보이는 동영상을 시청하고 싶다면, 우리는 유튜브 서버에다가 "내가 지금 네트워크 강의 동영상을 볼 거니까 너희 서버에 저장되어 있는 네트워크 강의 동영상을 나한테 보내줘"라는 요청을 보내는 것이다. 

클라이언트는 이렇게 필요한 정보를 요청하고, 서버는 그 요청에 응답하여 필요한 데이터를 제공하는 구조이다. 클라이언트는 브라우저, 모바일 앱, 데스크톱 애플리케이션 등 다양한 형태로 존재할 수 있다. 클라이언트는 서버의 IP 주소를 이용하여 서버와 통신한다. IP 주소란 인터넷 상에서 장치의 위치를 식별하는 유일한 주소이다. 예를 들어, 우리가 웹 브라우저에 http://www.youtube.com을 입력하면, DNS 서버가 도메인 네임을 IP 주소로 변환해주어 실제 유튜브 서버에 연결할 수 있게 해준다.

**서버(Server)**  
서버란 영어로 'serve'라는 단어에서 유래했다. 'Serve'는 복무하다, 제공하다 등의 의미를 가진 동사인데, 여기에 접미사 '-er'을 붙여서 '~하는 사람'이나 '~하는 주체'로 해석할 수 있다. 즉, 서버란 클라이언트의 요청에 대해 응답을 해 주는 객체인 것이다. 서버는 클라이언트가 요청을 보내면, 그 요청을 처리하여 적절한 데이터를 클라이언트에게 보내주는 역할을 한다. 예를 들어, 유튜브 서버는 우리가 동영상을 요청할 때, 해당 동영상을 찾아서 우리에게 보내주는 역할을 한다.

서버는 웹 서버, 데이터베이스 서버, 파일 서버 등 다양한 종류가 있으며, 각기 다른 기능을 수행한다. 서버는 보통 특정 IP 주소를 가지고 있으며, 이 IP 주소를 통해 클라이언트와 통신한다. 서버는 항상 켜져 있어야 하며, 클라이언트의 요청을 대기하고 있어야 한다.

**IP 주소와 Localhost**  
IP 주소는 인터넷에 연결된 장치가 서로를 식별하고 통신할 수 있도록 해주는 유일한 주소이다. IPv4 주소는 32비트 숫자로 구성되며, 점으로 구분된 네 개의 10진수로 표시된다(예: 192.168.1.1). IPv6 주소는 128비트 숫자로 구성되며, 콜론으로 구분된 여덟 개의 16진수로 표시된다(예: 2001:0db8:85a3:0000:0000:8a2e:0370:7334).

localhost는 로컬 컴퓨터를 가리키는 특수한 도메인 이름이다. 즉, 서버와 클라이언트가 동일한 컴퓨터에서 실행될 때, 클라이언트는 서버와 통신하기 위해 localhost를 사용할 수 있다. localhost의 IP 주소는 일반적으로 127.0.0.1이다. 예를 들어, 웹 개발자가 자신의 컴퓨터에서 웹 서버를 실행하고 브라우저를 통해 해당 서버에 접속하려고 할 때, 브라우저 주소창에 "localhost" 또는 "127.0.0.1"을 입력하여 서버에 연결할 수 있다.