✨UMC 10주차 과제 💡
웹 서버의 개념과 기능
웹서버는 클라이언트의 요청을 받아, HTML과 같은 정적인 콘텐츠를 전달해주는 역할을 한다.
요청에 따라 리소스를 클라이언트에 전달하고, 클라이언트에 콘텐츠 전달받아 처리하는 역할을 한다.
웹 어플리케이션 서버의 개념과 기능
웹 어플리케이션 서버, WAS라고도 하는데 웹 서버 + 웹 컨테이너 결합으로 이루어진 SW이다. 웹 서버를 포함하기에 웹 서버처럼 사용가능하고, DB에 연결되어 트랜잭션 처리나 다른 시스템 연동, 비즈니스 로직 처리등의 기능으 포함한다.
웹 서버와 웹 어플리케이션 서버의 차이점
WAS와 WS의 차이점은 동적인 컨텐츠 처리 수행 가능 여부이다.
WAS는 정적인 요청만 처리할 수 있는 WS와 달리 동적인 요청 처리가 가능하고 DB 접근, 로직 처리 등 할 수 있는 기능이 많다. 그러면 WAS만 사용하면 될텐데 왜 WS + WAS로 많이 사용하는 것일까 ? - WS의 기능을 WAS가 대부분 수행 가능하지만 WAS만 사용시보다 WS가 정적인 데이터 처리가 빠르고 안정적으로 수행 가능하다. 그래서 WAS는 동적인 DB조회나 다양한 로직 처리에 집중할 수 있게 기능을 분리하여 부하를 방지하고, 효율성이 향상된다. 보안적인 면에서도 WAS의 환경설정 파일을 외부에 노출시키지 않아도 되기에 같이 사용하면 장점이 많다.
아파치 웹 서버의 특징과 사용방법
아파치는 다양한 운영체제에서 실행가능하며 개발 및 유지 관이하는 오픈 소스 소프트웨어.
아파치는 멀티 프로세스 모듈 방식으로 클라이언트로부터 요청이 들어오면 한 요청 당 하나의 프로세스를 생성해서 연결할 수 있는 큰 장점이 있다. 하나의 요청만을 처리함으로써 동적인 처리도 가능하다.
그러나 일정 이상의 트래픽이 되면 프로세스 연결 못하는 등의 문제 발생
https://httpd.apache.org/docs/2.2/ko/platform/windows.html
Nginx 웹 서버의 특징과 사용 방법
과거에는 apache가 더많이 사용되었지만 최근에는 Nginx가 많이 사용되고 있다. 많은 양의 트래픽 처리가 가능하고 가벼운 경량 웹서버이기에 웹 사이트에 더 적합하다.
처리 방식: worker process를 생성, Worker process가 대기하다가 Client가 요청 시 연결되어 동작을 시작한다.
Apache와 차이점이 많지만 그 중 하나는 Nginx는 하나의 요청이 아닌 여러 요청을 하나의 process가 받을 수 있다. 그렇기에 동시 처리/ 연결 가능한 양이 늘어나고 많은 프로세스를 실행시키지 않아도 되기에 프로그램이 가볍다. 반면 확장성은 좋지 않다는 단점이 있다.
https://coding-start.tistory.com/381
Tomcat 웹 애플리케이션 서버의 특징과 사용 방법
톰캣은 아파치 재단에서만든 오픈 소스 WAS이다. 톰캣은 Java Servlet과 JSP가 실행할 수 있는 환경을 제공한다.
동적인 데이터를 처리하거나 DB에 데이터 입력, 조회 시,프로그램으로 데이터 조작이 필요한 경우에 톰캣을 사용한다.
아파치 ws와 차이점은 컨테이너 기능 여부로, 톰캣은 클라이언트 요청 시 내부 프로그램으로 생성한 동적 컨텐츠를 전달해주는 웹 컨테이너이다. 자바로 개발시 WS + WAS 조합으로 아파치와 톰캣을 많이 사용한다.
Jetty 웹 애플리케이션 서버의 특징과 사용 방법
Jetty는 자바 HTTP 웹 서버이자 자바 서블릿 컨테이너이다. 자바 기반의 WAS로 Jetty는 웹애플리케이션을 개발, 테스트, 배포 시 사용되며, 높은 성능, 적은 메모리 사용, 간단한 설정이 가능한것이 특징이다. WAS의 모든 필요한 기능을 가지고 있어 외부 웹 컨테이너를 사용할 필요가 없고 주로 Java Servlet, JSP, JSF 기술을 이용해 웹 어플리케이션을 개발한다.
Jetty는 GUI가 없어 서버 설정 및 실행은 명령 프롬프터같은 터미널을 이용해 실행 가능하다.
출처
https://www.youngju.dev/blog/202301/what_is_jetty_server
https://velog.io/@tjdrhd1207/WEB%EA%B3%BC-WAS-JETTY%EB%9E%80
https://victorydntmd.tistory.com/121
https://sorjfkrh5078.tistory.com/289
https://choiblog.tistory.com/47#2.2.%20%EC%9E%A5%EB%8B%A8%EC%A0%90
'UMC' 카테고리의 다른 글
CI/CD(1) - vpc 생성/설정 (0) | 2024.01.16 |
---|---|
SQL 함수 (0) | 2023.06.14 |
SQL 개념 정리 (0) | 2023.06.14 |
umc 6주차 과제 - mission (0) | 2023.06.14 |
umc 6주차 과제 - Java 개념 (0) | 2023.06.14 |