작성한 부스트코스 후기입니다.
여러분들의 성원에 더 노력하는 부스트코스가 되겠습니다.
감사합니다.
******************************************
(본문 내용)
사진을 누르면 강좌 페이지로 이동합니다.
이때까지 웹 프로그래밍 언어, HTTP의 개념, 웹 브라우저 등에 대해 알아보았습니다. 이번 챕터에서는 [ WEB 개발의 이해 ]에서 마지막으로 다뤄볼 부분인, 웹 서버에 대해서 알아보도록 하겠습니다.
※ 이 글은 커넥트재단의 실무형 온라인 교육 프로그램인 부스트코스 웹 프로그래밍 과정을 기반으로 작성되었습니다.
1-6 웹 서버란?
웹 서버는 다음 2가지의 뜻을 가지고 있습니다.
1) 클라이언트(웹 브라우저)로 부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램.
2) 두 번째로, 위에 언급한 기능을 제공하는 프로그램을 실행하는 컴퓨터(하드웨어).
이전 포스팅 참고 : https://blog.naver.com/mitty0304/221776771917
여기서 웹 서버의 가장 중요한 기능은 클라이언트(웹 브라우저)가 요청하는 HTML 문서와 각종 리소스들을 전달하는 것입니다. 리소스에는 크게 정적(Static)인 데이터와 동적인 결과가 있습니다. 정적인 데이터에는 이미지, HTML 파일, CSS 파일, Javascript 파일과 같이 컴퓨터에 저장되어 있는 파일을 말합니다. 그리고 동적인 결과는 웹 서버에 의해 실행된 프로그램으로 만들어진 결과를 의미합니다.
웹 브라우저와 서버간에 어떤 통신이 일어나는지 직접 확인해볼까요?
1) 네이버 페이지에서 [우클릭 - 페이지 소스보기]를 클릭합니다.
2) 상단 메뉴에 [Network] 탭을 클릭합니다.
3) 하단 메뉴에 [All]을 선택하고 해당 페이지 [새로고침]을 눌러봅니다.
4) 웹 서버가 웹 브라우저에 해당 페이지 콘텐츠들 (이미지 파일, js 파일, css 파일 등)을 보여주는 것을 확인할 수 있습니다.
1-7 웹 서버 소프트웨어의 종류
웹 서버 소프트웨어에는 다양한 종류가 있습니다. 대표적인 웹 서버 소프트웨어는 Apache, Ngix, Microsoft, Google 웹서버가 있습니다. 특히 Apache 웹 서버는 2020년 기준 웹 서버 시장에서 가장 많이 사용되고 있습니다. 또한 오픈소스 소프트웨어이기 때문에 거의 모든 운영체제에서 사용이 가능합니다.
2번째로 많은 사용률을 차지한 Nginx는 더 적은 자원으로 빠르게 데이터를 서비스할 수 있는 서버입니다. Apache 웹 서버와 마찬가지로 오픈소스 소프트웨어입니다. 참고로 오픈 소스 소프트웨어는 소스코드를 공개해 누구나 특별한 제한 없이 코드를 보고 사용할 수 있는 오픈 소스 라이선스를 만족하는 소프트웨어를 말합니다. 오픈소스 소프트웨어는 소프트웨어 개발 영역에서 필수 요소라 할 정도로 정말 많이 사용되고 있습니다. 오픈 소스 소프트웨어에 대한 더 많은 정보는 아래의 링크를 참고하시길 바랍니다.
To promote and protect open source software and communities... For over 20 years the Open Source Initiative (OSI) has worked to raise awareness and adoption of open source software, and build bridges between open source communities of practice. As a global non-profit , the OSI champions software fre...
opensource.org
1-8 WAS ?
WAS에 대해 알아보기 전, 몇가지 중요한 용어를 짚고 가보려 합니다.
1) 클라이언트 서버 구조
클라이언트는 서비스를 제공하는 서버에게 정보를 요청하여 응답받은 결과를 사용합니다.
2) DBMS (Database Management System)
다수의 유저들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어입니다.
대표적으로 MySQL, MariaDB, Oracle, PostgreSQL 등이 있습니다.
3) 미들 웨어 (MiddleWare)
기존의 DBMS의 경우 클라이언트에서 비지니스 로직이 많이 생기면 클라이언트 관리로 인해 비용이 많이 발생하는 문제점이 있었습니다. 이를 해결하기 위해 미들 웨어라는 개념이 등장하였는데, 비지니스 로직을 아래 그림과 같이 클라이언트와 DBMS 사이에서 작동하게 함으로써 클라이언트는 입력과 출력만 담당하도록 합니다.
4) WAS (Web Application Server)
일종의 미들웨어로 웹 클라이언트의 요청 중 웹 어플리케이션이 동작할 수 있도록 지원합니다. 프로그램 실행 환경과 데이터베이스 접속 기능을 제공하고 자체적으로 웹 서버 기능도 가지고 있습니다. 현재는 웹 서버를 따로 설치하지 않고 WAS 만으로도 웹 서버의 기능을 충분히 활용할 수 있습니다. 하지만, 규모가 큰 웹 어플리케이션은 장애 극복(failover)을 위해 웹 서버와 WAS를 분리하는 경우가 많습니다. 참고로 이번 웹 프로그래밍 기초 챕터에서 진행하는 프로젝트는 '톰캣'이라는 WAS를 사용하게 됩니다.
******************************************