반응형
웹서버
- 일반적으로 '서버'라고 하면 서버역할을 하는 컴퓨터를 뜻한다.
- 하지만 어떤 컴퓨터가 서버역할을 하도록 도와주는 소프트웨어도 서버라는 이름으로 부른다. (=웹서버)
- 웹서버는 이름 그대로 웹사이트를 제공하는 소프트웨어로 html,css,js 및 기타 asset 파일 등을 사용자에게 보내는 역할을 한다.
- apache-php-mysql(apm)과 같이 기초적인 구조의 동적 웹은 처리할 수도 있지만 다른 구조는 처리할 수 없는 경우가 많다.
- 대표적으로
Apache
와NginX
가 있다.
WAS
- Web Application Server의 약자
- 단순히 웹을 제공해주는 것이 아닌 동적 웹페이지 생성과 같이 프로그래밍되어 내장된 작업을 수행한 후 전달하는 기능까지 보유하고 있다.
- Tomcat을 예를 들자면, 스프링으로 코딩한 웹앱을
.war
파일로 빌드하면 그 안에 .class,jsp,이미지,css,js 등이 압축되어 있다. 이를 웹서버에 전달해 사용자에게까지 전달될 수 있도록 하는 것이다. (cf. 요즘은 spring을 톰캣이 들어있는.jar
파일로 빌드해 배포한다.) - 이렇게 WAS는 내장된 웹사이트를 동적으로 변경하는 작업을 주로 수행한다.
- 대표적으로
TomCat
,Node.js
,Django
등이 있지만, 정확히 구분하자면 TomCat을 제외한 것들은 WAS가 아니다. 사실 다 정의하기 나름인데, 진영마다 배포구조가 다 달라서 특정 진영의 어떤 프로그램이 WAS라고 콕 찝어서 말하기는 어렵기 때문이다. 다른 소프트웨어들은 그 외에도 많은 기능을 수행한다.
정리 및 결론
- 보통 웹서버가 제일 앞단에 위치하며 웹파일을 받아 사용자한테 보내주는 역할을하고, 그 뒤에서 WAS(혹은 비슷한 타기능의 소프트웨어)가 웹을 처리하여 이를 웹서버에 전달한다.
- 참고로 WAS도 리소스 전달은 할 수 있다. 앞서 언급했듯이 웹서버도 웹페이지 빌드 및 처리가 가능하다. 즉, 기능이 겹치는 부분도 존재한다는 것이다. 하지만 각 소프트웨어가 더 잘하는 것을 특화하여 관리하도록 하기 위해 둘 모두를 사용하는 경우가 더 많다.
- 또한 웹서버에는 WAS에는 존재하지 않는
reverse proxy
기능, WAS가 정상적으로 돌아가고 있는지 체크하는 기능 등이 존재하기 때문에 더욱 가치가 높다. - cf.
reverse proxy
: 서버의 주소를 직접적으로 노출하지 않도록 외부 주소를 하나 생성해놓는 것 / 보안상 내부 구조(리소스위치, 서비스포트위치)를 감출 때 사용 / 로드밸런싱이나 캐싱 가능
반응형
'🛠 기타 > WEB' 카테고리의 다른 글
Redux - createStore / dispatch / subscribe (0) | 2021.04.18 |
---|---|
Redux - 기초 개념 (0) | 2021.04.17 |
Nodejs - boilerplate (0) | 2021.04.16 |
Node.js - bcrypt (0) | 2021.02.04 |
JWT (JSON Web Token) (0) | 2021.02.03 |