웹 서버
- Apache, NginX, IIS가 대표적인 제품
- 웹사이트를 위한 서버를 만들어 주는 소프트웨어
- 웹에 필요한 자원들을 특정 폴더들에 저장하여 서버에 지정된 웹사이트 주소로 접속하면 이것들을 받아갈 수 있도록 하는 역할
- Tomcat, Node.js, Django 내장 서버 등과 클라이언트 사이에서 매니징을 담당하기도 한다. 왜냐하면 웹 서버 만으로도 PHP 동적 웹 정도는 처리할 수 있지만, 더 전문적으로 동적 웹을 처리하기 위해서다.
- reverse proxy 제공: 서버의 정보를 감추어 준다. 보안 측면에서 웹 서버를 앞에 내세우는 것이 크다.
- 캐시 제공: 클라이언트들이 자주 쓸 법한 자원들을 저장해준다.
- 로드밸런싱: 이용자가 몰릴 때 여러 개의 Tomcat에 고루 배정해준다.
- WAS에 대한 헬스 체크
- Apache: 다중 프로세스
- 오랜 기간 사용되어 안정성이 높다.
- 클라이언트마다 따로 프로세스를 만든다.
- NginX: 이벤트 기반
- 컴퓨터에 부담이 덜하다.
Tomcat
- 요즘은 Springboot에 내장되어 있어 직접 접할 일은 많이 없다.
- Java와 JSP로 만든 웹 또는 API 애플리케이션을 실행할 때 Tomcat같은 Web Application Server(WAS)가 사용된다.
- Spring으로 코딩한 웹앱을 war 파일로 빌드하면 그 안에 .class, JSP, 이미지, CSS, JS 파일들이 압축되어 있다.
- Tomcat을 다운받으면 여러 폴더들 + 파일들이 들어있는 하나의 폴더로 되어 있다.
- 그 중 특정 폴더에 war 파일을 넣고 명령어를 실행하면 Spring 서비스가 Tomcat을 통해 돌아간다.
- 요즘은 반대로 Spring을 Tomcat이 들어 있는 jar 파일로 빌드해서 배포하곤 한다.
- Java 외의 진영에서는 배포 구조가 달라 WAS가 아닌 다른 방식으로 정의된다.
- 공통적인 것은 우선 웹 서버를 앞단에 두고, 그 뒤에서 WAS가 요리를 하는 것이다.
'Programming > ETC' 카테고리의 다른 글
[Low-code] 로우 코드 서비스 개발 툴, Retool (0) | 2023.08.28 |
---|---|
SPA(Single Page Application) (0) | 2023.07.15 |
Command Prompt(CMD), Git bash, PowerShell (0) | 2023.03.27 |
[Node.js] path 모듈 (0) | 2023.03.27 |
CodePush란? (0) | 2023.02.24 |
댓글