UMC

웹서버&웹어플리케이션 개념 정리

eunkyung 2023. 6. 14. 21:09

✨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 조합으로 아파치와 톰캣을 많이 사용한다.

사용방법:https://jin2rang.tistory.com/entry/%ED%86%B0%EC%BA%A3%EC%84%9C%EB%B2%84-%EC%84%A4%EC%A0%95-%EB%B0%8F-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0-A-to-Z 

 

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

https://kchanguk.tistory.com/2

'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