1. Server란?
위키백과에서 서버의 정의는 다음과 같다.
서버(server)는 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템으로 컴퓨터 프로그램(server program) 또는 장치(device)를 의미한다.
web에서 서버란 사용자가 요청하거나 사용하는 어떠한 기능을 제공하는 프로그램을 실행시키고 있는 컴퓨터라고 할 수 있다.
보통 서버는 높은 성능과 안정성을 갖추고 있으며, 네트워크 상에서 다른 컴퓨터나 기기들과 통신하기 위한 역할을 한다. 예를 들어, 웹 서버는 인터넷상에서 웹페이지를 호스팅 하고, 이메일 서버는 이메일을 수신하고 전송하는 역할을 한다.
서버는 일반적으로 클라이언트-서버 모델을 따르며, 클라이언트는 서버에 데이터나 서비스를 요청하고, 서버는 이에 대한 응답을 제공한다.
2. 클라이언트-서버 시스템
서버는 클라이언트로부터 요청을 받아야 처리를 시작하여 서비스를 제공한다. 진행과정은 다음과 같다.
- 클라이언트가 서버에게 데이터나 서비스를 요청한다.
- 서버는 관련 데이터를 DB에서 찾거나, 서비스를 실행시키는 등 클라이언트에서 온 요청을 응답하여 처리한다.
- 서버는 처리 결과를 클라이언트에게 반환한다.
- 클라이언트는 처리 결과를 응답 받는다.
3. 네트워크
서버와 클라이언트가 서로 통신할 수 있게 "다리 역할"을 하는 것이 네트워크다. 네트워크는 컴퓨터나 다른 기기들이 서로 연결되어 정보를 주고받을 수 있게 도와주는 기술이다. 이를 통해 데이터나 리소스를 공유하고, 컴퓨터나 기기들 간에 통신할 수 있다.
- 지리적으로 떨어진 컴퓨터나 기기들을 연결할 수 있는데, 네트워크 인터페이스 카드(NIC)와 케이블, 라우터, 스위치, 허브 등의 하드웨어 장비들이 각각의 역할을 수행하여 정보를 주고받는다. Wi-Fi는 무선 네트워크를 사용하여 유선으로 연결하는 것이 아니라 무선 신호를 이용하여 연결한다.
- 서로 정보를 주고받기 위해서는 IP 주소, 서브넷 마스크, 게이트웨이등의 정보를 설정하고 네트워크 프로토콜을 이용하여 통신을 하게 된다.
- 네트워크는 클라이언트-서버 모델과 같이 다양한 형태로 구성되어 서비스나 데이터를 제공한다.
사용자는 브라우저 등을 통해서 서버에 정보를 요청하고 응답을 받는다. 사용자의 요청이 서버에 도달하기 위해서는 해당 서버의 정보가 필요한데, 이렇게 해당 서버로 정확하게 도달하게끔 제공되는 정보가 바로 IP주소이다. 택배에 비유하면 택배를 받을 실제 주소와 받는 사람을 입력해야 하는데, 네트워크에서는 요청을 받을 서버 주소가 IP주소이고 요청을 받을 사람이 포트번호에 해당된다.
하지만 우리는 보통 "192.168.**.*" 이런 숫자의 형식으로 되어있는 IP주소가 아닌 "www.naver.com"처럼 문자열 형식을 통해 페이지에 접근한다. 숫자는 사람들이 외우기 어렵기 때문에 외우기 쉽게 해당 IP에 "별칭"을 지어주자!라고 해서 등장한 것이 DNS(Domain Name System)이라는 개념이다.
4. DNS(Domain Name System)
DNS는 인터넷에서 사용되고 있는 서버, 즉 컴퓨터의 이름인 도메인의 별칭을 해당 컴퓨터의 IP 주소로 변환하는 시스템이다.
인터넷상에서 컴퓨터는 IP 주소를 이용하여 서로 통신한다. 하지만 IP 주소는 일반적으로 숫자로 구성되어 외우기 어렵기에 이를 보완하기 위해 도메인 이름이 만들어졌으며, 도메인 이름은 사람이 쉽게 외울 수 있는 형태로 구성되어 있다. DNS는 이러한 도메인 이름을 IP 주소로 변환해 주는 역할을 한다.
- 사용자가 웹 브라우저에서 도메인 이름을 입력하면,
- DNS 서버는 해당 도메인 이름에 해당하는 IP 주소를 찾기 위해
- 계층 구조로 이루어진 DNS 시스템을 통해 질의를 전달하게 되고
- 도메인 이름과 IP 주소를 매핑하여
- 요청한 곳에 전달한다.
DNS는 인터넷 사용자들이 웹 사이트를 방문하거나 이메일을 보낼 때마다 사용되며, 웹 사이트나 이메일 서비스 등 인터넷상에서 다양한 서비스를 이용할 때 필수적으로 사용된다.