더북(TheBook)

예를 들어 길벗출판사의 웹 사이트를 방문한다고 생각해봅시다. 주소창에 길벗출판사의 웹 사이트 주소(https://www.gilbut.co.kr/)를 입력(요청)하면, 브라우저는 그 주소에 해당하는 길벗출판사의 컴퓨터 위치를 파악합니다. 그리고 그 컴퓨터로부터 길벗출판사의 웹 사이트 페이지를 받아와서 요청자의 브라우저(클라이언트)에 띄웁니다(응답). 이런 일을 하는 컴퓨터가 바로 서버입니다.

모바일 앱을 설치하는 경우를 생각해봅시다. 구글 플레이 스토어나 애플 앱스토어에서 원하는 앱을 고른 후 설치 버튼을 누르면(요청) 내려받기(응답)가 시작됩니다. 앱 설치 파일은 이미 어딘가에 저장되어 있으므로 여러분이 그곳에서 데이터를 받아와 모바일 기기에 설치할 수 있는 것입니다. 그 어딘가가 구글과 애플의 서버입니다. 플레이 스토어와 앱스토어는 클라이언트 역할을 하는 것이고요.

웹이나 앱을 사용할 때는 여러분의 데이터(아이디, 비밀번호, 이메일 등)와 서비스의 데이터가 생성됩니다. 이 데이터를 어딘가에 저장하고, 그 어딘가에서 클라이언트로 데이터를 받아와야 합니다. 이곳이 바로 서버입니다.

서버라고 해서 요청에 대한 응답만 하는 것은 아닙니다. 다른 서버에 요청을 보낼 수도 있습니다. 이때는 요청을 보낸 서버가 클라이언트 역할을 합니다.

정리하면, 서버는 클라이언트의 요청에 대해 응답을 합니다. 응답으로 항상 Yes를 해야 하는 것은 아니고, No를 할 수도 있습니다. 여러분이 어떤 사이트로부터 차단당했다면 그 사이트의 서버는 여러분의 요청에 매번 No를 응답할 것입니다.

노드는 자바스크립트 프로그램이 서버로서 기능하기 위한 도구를 제공하므로 서버 역할을 수행할 수 있습니다. 왜 다른 언어를 사용하지 않고 굳이 노드를 사용해 서버를 만들까요? 이 궁금증을 해결하려면 먼저 노드의 특성을 알아야 합니다. 공식 웹 사이트에 게시된 노드 소개 글을 바탕으로 노드의 특성을 알아봅시다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.