본문 바로가기


냐옹아 멍멍해봐(How to Speak IT)/테크(IT) 회화

웹 사이트를 위한 웹 서버 만들기

반응형

IT 스타트업의 서비스 형태 ① - 1  웹 사이트를 위한 웹 서버 만들기

웹 서버 만들기 

 

지난번 포스팅에서 고객(웹 클라이언트)이 웹 브라우저를 통해 접속할 웹 사이트를 만드는 것에 대해 살펴보았습니다.

 

better-together.tistory.com/217

 

IT 스타트업의 서비스 형태 ① 웹 사이트(ft. 웹 빌더)

IT 서비스 유형 고객이 인터넷을 통해 많은 회사들이 제공하는 서비스를 이용하는 방법은 크게 두 가지입니다. 크롬, 인터넷 익스플로러 같은 웹 브라우저를 이용해 원하는 회사의 웹사이트에

better-together.tistory.com

 

요약하면 웹 사이트를 만드는 것은 HTML로 작성한 웹 페이지들을 웹 서버에 저장하여 웹 사이트를 생성하고 웹 사이트에 도메인을 달아 공개하는 단순한 절차였습니다. 

 

이번 포스팅에서는 고객(웹 클라이언트)이 웹 브라우저로 웹 사이트에 접속해서 웹 사이트를 보는 과정과 함께 웹 서버를 만드는 구체적인 방법에 대해 살펴보도록 하겠습니다.

 

클라이언트의 요청과 서버의 응답 - HTTP 통신

 

웹 사이트에 접속하는 고객은 웹 브라우저의 주소 창에 도메인을 입력합니다(접속하려는 웹 사이트를 검색해서 링크를 타고 접속하는 것도 링크에 도메인이 삽입되어 있는 것이기에 주소 창에 도메인을 입력하는 것과 실질적으로 같습니다).

 

고객이 웹 사이트에 접속하기 위해서는 반드시 컴퓨터가 인터넷에 연결되어 있어야 하고, 웹 브라우저라는 소프트웨어(또는 프로그램)가 설치되어 있어야 합니다. 

 

소프트웨어, 프로그램이란? → 비교하면 쉽다 IT 용어 정리 - 소프트웨어, 프로그램, 애플리케이션(앱)

 

고객은 웹 브라우저에 도메인을 입력하는 방법으로 원하는 서비스를 요청합니다. 그러면 웹 브라우저는 인터넷에 연결된 수많은 웹 서버 중에서 입력된 도메인 주소를 갖고 있는 웹 서버를 찾아 웹 페이지를 보내 달라는 요청을 합니다. 요청을 받은 웹 서버는 요청 내용을 분석하여 요청받은 웹 페이지를 웹 서버 내부에서 찾아냅니다. 그리고 요청에 대한 응답으로 찾아낸 웹 페이지를 웹 브라우저에게 보냅니다. 웹 페이지를 받은 웹 브라우저는 HTML을 읽고 해석하여 사람이 보기 좋게 변환한 후 웹 브라우저 화면에 띄웁니다. 

 

클라이언트의 요청과 서버의 응답 - HTTP 통신

 

HTTP란?

 

웹 브라우저가 웹 페이지를 요청(Request)하고, 웹 서버가 요청에 대한 응답(Response)으로 웹 페이지를 반환하는 일련의 과정을 HTTP 통신이라고 합니다. HTTP(HyperText Transfer Protocol)는 웹에서 클라이언트와 서버가 정보를 주고받을 때 지켜야 할 프로토콜, 즉 규칙입니다. 두 사람이 대화를 하기 위해 공통의 언어가 필요한 것처럼 클라이언트와 서버가 웹에서 웹 페이지를 주고받기 위해 지켜야 할 공통의 규칙을 정해 놓은 것이 HTTP입니다. HTTP에는 클라이언트가 요청하는 방법, 서버가 응답하는 방법이 구체적으로 정해져 있습니다. HTTP가 정해 놓은 방법에 따라 요청과 응답을 주고받는 과정이 HTTP 통신입니다. 

 

HTML, HTTP 자세히 → 쉽게 이해하는 네트워크 19. 팀 버너스 리가 개발한 월드 와이드 웹(WWW)의 3대 요소 - URL, HTML, HTTP

 

 웹 클라이언트 소프트웨어 - 웹 브라우저

 

HTTP에 따라 웹 서버에게 웹 페이지를 요청하고 받을 수 있도록 프로그래밍한 클라이언트 소프트웨어(애플리케이션)가 웹 브라우저입니다. 컴퓨터에 웹 브라우저가 설치되어야 비로소 웹 클라이언트 역할을 할 수 있는 것입니다. 수많은 웹 브라우저가 개발되었으나, 현재 실생활에서 가장 많이 사용하는 웹 브라우저는 구글(Google)의 크롬(Chrome), 마이크로소프트(Microsoft)의 인터넷 익스플로러/엣지(Internet Explorer/Edge), 애플(Apple)의 사파리(Safari), 모질라(Mozilla)의 파이어폭스(Firefox), 오페라(Opera)의 오페라 웹 브라우저입니다. 

 

2020.6월 말 기준 전 세계 웹 브라우저 점유율(출처: https://www.itworld.co.kr/news/157433)

 

웹 서버 소프트웨어(프로그램)

 

컴퓨터에 웹 브라우저라는 소프트웨어가 설치되어야 웹 클라이언트 역할을 하는 것처럼, 웹 서버도 HTTP에 따라 요청을 받고 응답할 수 있도록 프로그래밍된 서버 소프트웨어 또는 프로그램이 설치되어야 웹 서버로 동작할 수 있습니다*. 

 

*. 물리적인 컴퓨터, 즉 하드웨어는 그 자체만으로는 아무것도 할 수 없습니다. 반드시 컴퓨터를 사용하는 목적에  맞는 소프트웨어를 설치해야 원하는 작업을 할 수 있습니다. 

 

흔히 PC보다 뛰어난 성능을 가진 서버 컴퓨터를 웹 서버라고 생각하는데, 컴퓨터의 역할을 결정하는 것은 소프트웨어이지, 컴퓨터 성능과는 크게 상관이 없습니다. 내 컴퓨터에 웹 서버 소프트웨어를 설치하면 내 컴퓨터도 웹 서버가 될 수 있습니다. 최초의 웹 서버도 스티브 잡스가 애플에서 쫓겨난 이후 만든 넥스트(Next) 컴퓨터가 사용되었습니다. 

 

 

최초의 웹 서버(출처: https://en.wikipedia.org/wiki/File:First_Web_Server.jpg) 

 

보통 웹 서버라고 얘기할 때는 인터넷에서 웹 클라이언트로부터 요청을 받는 측을 의미하지만, 웹 서버 소프트웨어나 웹 서버로 사용되는 컴퓨터 하드웨어를 웹 서버라 부르는 경우도 있습니다. 

 

많은 종류의 웹 서버 소프트웨어가 존재하지만, 현재 가장 많이 사용되는 웹 서버 소프트웨어는 아파치(Apache) HTTP 서버, 엔진엑스(NginX) HTTP 서버, 구글 웹 서버(Google Web Server, GWS), 마이크로소프트의 IIS(Internet Information Service)입니다. 아파치와 엔진엑스는 어떤 운영체제에서도 사용 가능한 오픈 소스이고, IIS는 마이크로소프트의 운영체제인 윈도우에서 무료로 제공하는 소프트웨어이며, 구글 웹 서버는 구글 클라우드 등 구글이 제공하는 서비스를 기반으로 웹을 운영할 경우, 즉 구글 생태계 내에서만 독점적으로 사용할 수 있는 소프트웨어입니다. 

 

2019. 1월 기준 전 세계 웹 서버 소프트웨어 점유율 (출처: https://namu.wiki/w/Google%20Web%20Server)

 

웹 서버 소프트웨어는 다수의 클라이언트로부터 접속을 기다리다가, 수신된 요청이 있으면 요청 내용을 분석하여 적절한 응답(요청받은 웹 페이지 전송)을 반환하는 역할을 합니다. 또한, 동시에 접속을 허가하는 클라이언트 수의 제한이나 안정성 확보를 위한 조치, 요청 및 응답에 관한 로그의 기록, 필요한 경우 특정 사용자에게만 정보 제공을 허가하기 위한 인증 제어 및 암호화 처리 등 HTTP(HTTPS)의 제어에 필요한 여러 가지 기능을 제공합니다. 

 

 웹 서버 만들기

 서버 컴퓨터 구매

 

웹 서버를 만들기 위해선 먼저 웹 서버로 사용할 컴퓨터가 있어야 합니다. 내 컴퓨터도 가능하나, 1년 365일, 24시간, 클라이언트가 접속할 수 있도록 켜놔야 하기 때문에 보통 별도의 서버 컴퓨터를 사용합니다. 많은 양의 데이터를 저장하고 처리해야 하는 서버 컴퓨터의 특성상 보통 일반 PC보다 고성능 컴퓨터를 사용합니다. 특히 얼마나 많은 정보가 담긴 웹페이지를 제공하느냐에 따라 저장공간(디스크 용량)을 결정하게 됩니다. 웹페이지에 담는 이미지, 오디오, 동영상 등의 파일이 많을수록 더 큰 저장 공간의 확보가 필요합니다. 

 

 웹 서버 소프트웨어 설치 및 웹 페이지 만들고 URL로 저장하기

 

웹 서버 컴퓨터에 운영체제와 웹 서버 소프트웨어를 설치합니다. PC의 운영체제로는 윈도우와 맥 OS를 많이 사용하는데, 서버용 운영체제로는 리눅스, 유닉스가 많이 쓰이고, 윈도우가 그 뒤를 따르고 있습니다. 아이콘 등을 사용하는 GUI(Graphic User Interface) 방식의 윈도우와 달리 리눅스와 유닉스는 CLI(Command Line Interface) 방식, 즉 명령어를  입력해서 사용하는 방식이기 때문에 명령어 사용법을 익혀야 합니다. 

 

GUI와 CLI 비교(출처: https://anydifferencebetween.com/graphical-user-interface-vs-command-line-interface/)

 

웹 페이지(HTML 파일)를 만들고 웹 페이지에 담기는 이미지, 오디오, 동영상 등의 리소스(resource) 파일을 웹 서버에 저장합니다. 파일을 저장할 때는 웹 페이지와 리소스의 위치를 찾기 위한 주소인 URL(Uniform Resource Locator)을 사용합니다. URL은 인터넷상에서 자원의 위치를 표시하기 위한 약속입니다.

 

HTTP 통신으로 웹 페이지라는 자원을 주고받는 웹은 http://www로 시작하는 URL을 사용하여 웹 페이지가 저장된 위치를 표시합니다. 약속된 URL을 사용함으로써 웹 브라우저는 URL을 입력해 원하는 웹 페이지를 달라고 웹 서버에 요청할 수 있는 것입니다. 웹 사이트에 접속할 때 입력하는 도메인은 웹 사이트를 대표하는 웹 페이지, 보통 홈페이지라고 부르는 웹 페이지가 저장된 URL입니다. 네이버 웹 사이트에 접속할 때 웹 브라우저의 주소 입력란에 www.naver.com을 입력해도 웹웹 브라우저는 http://www.naver.com/index.html이라는 URL로 해석하여 네이버 웹 서버에 저장된 index.html이라는 파일을 달라고 요청합니다.   

 

URL 자세히 → 쉽게 이해하는 네트워크 18. TCP/IP 응용(애플리케이션) 계층과 URL 구성 요소 및 종류

 

 서버용 인터넷 전용 회선, 보안 설정

 

웹 페이지도 만들어 저장하고, 웹 서버 소프트웨어도 설치했으면 웹 서버를 인터넷에 연결해서 웹 브라우저가 웹 서버와 통신할 수 있도록 해야 합니다. 인터넷에서는 수많은 불특정 다수의 웹 클라이언트가 접속하기 때문에 방화벽 등의 일정한 보안 시스템을 설정해야 합니다. 또한 주고 받는 웹 페이지의 용량, 하루에 접속하는 클라이언트의 수, 동시 접속자 수 등, 한마디로 트래픽을 고려해서 서버용 인터넷 회선을 선택해야 합니다. KT나 SK 브로드밴드 같은 인터넷 사업자(ISP)는 보통 집에서 사용하는 가정용 인터넷 회선으로는 영리 목적의 웹 서버를 운영할 수 없도록 약관에 규정하고 있습니다. 따라서 영리 목적으로 웹 서버를 운영하기 위해서는 인터넷 사업자의 기업 전용 인터넷 회선을 별도로 계약하고 요금을 지불해야 합니다.  

 

고정적인 관리 비용

 

웹 서버가 24시간 내내 멈추지 않고 운영되기 위해선 웹 서버와 인터넷 트래픽 등을 계속 관리해야 하기 때문에 전문적인 엔지니어도 필요합니다. 엔지니어의 급여, 인터넷 사용료, 전기세 등 매달 들어가는 고정 비용만도 상당합니다. 

 

 웹 호스팅

 

자금과 전문 인력이 부족한 개인이나 소규모 사업자가 이 모든 과정을 스스로 하며 웹 사이트를 운영하기 어렵기 때문에 등장한 것이 웹 호스팅입니다. 

 

웹 호스팅은 호스팅 업체에게 월 사용료만 지불하고 웹 서버 공간을 임대해서 사용하는 서비스입니다. 호스팅 업체는 웹 서버와 인터넷 회선 등 서버를 운영하는 데 필요한 모든 서버 장비와 소프트웨어 및 전문 인력을 갖추고 웹 서버를 대신 관리해줍니다. 월 사용료는 기본적으로 선택하는 저장 공간(디스크)이나 트래픽과 부가 서비스 등에 따라 달라집니다. 

 

따라서 웹 사이트를 웹 호스팅의 방법으로 운영하면 하루 방문자 등을 예상해서 저장 공간과 트래픽을 선택하고 그에 따른 월 사용료만 지불하면 됩니다. 

 

 

 


참고 자료

 

HTTP, 위키백과

 

웹 서버, 위키백과

 

구글 웹 서버, 나무 위키

 

 

반응형