웹 애플리케이션 이해

bo04·2022년 5월 31일
0

spring-mvc1

목록 보기
1/9

요즘은 다 http 메시지에 모든걸 전송함.

서버

웹 서버(web server)

  • html,css같은 정적인 리소스를 보여줌
  • 그러나 복잡한 로직을 사용하기 힘들어서 특정 사람마다 다른 기능을 제공해준다든가 이런게 불가능
  • nginx,apache가 대표적인 웹 서버

웹 애플리케이션 서버(was-web application server)

  • 웹 서버의 정적 리소스를 보여주는 기능+ 프로그램 코드를 실행해서 애플리케이션 로직이 가능해짐
  • 동적 html, json, 서블릿,jsp,스프링 mvc가 사용 가능해짐
  • tomcat이 대포적인 was

웹 서버와 was의 정확한 차이가 뭔데?

사실 따지면 둘의 용어와 경계가 너무 모호함.
주로 웹 서버는 정적 리소스이고 was는 애플리케이션 로직으로 차이점이 있는것 같지만 둘이 서로의 기능을 사용하기도 하므로 정확한 차이는 없음.

그렇지만 자바에서는 밑에처럼 구분하면 훨씬 나음.

  • 서블릿 컨테이너를 제공하고 애플리케이션 코드를 실행하는데 더 특화되어있으면 was
  • 그렇지 않으면 웹 서버

웹 시스템 구성

WAS,DB로만 구성된 웹 시스템

이 구조의 문제점은

  • WAS가 DB기능 제외 모든 기능들을 맡고 있기 때문에 너무 많은 역할을 맡아서 서버 과부하가 발생할 수 있음
  • HTML,CSS같은 정적 리소스는 간단한데 이거 때문에 비싼 애플리케이션 로직 수행이 버벅이는 참사가 발생할 수 있음
  • 배포 후에도 오류 때문에 was 서버가 잘 죽는데 WAS가 죽으면 장애 발생시 서버가 죽었다고 프론트에서 해당 오류 화면('죄송합니다. 서버를 재가동중입니다...' 같이 클라이언트가 오류를 인식할 수 있는 화면)을 띄워주는 서브 서버가 없기 때문에 불편함

WEB,WAS,DB로만 구성된 웹 시스템

맨 앞에 Web server를 두고 그 다음에 was 배치함

  • web server: 정적 리소스만 먼저 처리함
  • was: 그 다음에 복잡한 애플리케이션 로직을 처리함

web server와 was로 서로 분리되어있기 때문에 was는 로직에만 집중할 수 있고, 둘 중에 리소스를 더 많이 사용하는 서버만 따로 증설할 수 있기때문에 경제적이고 효율적임.

바로 위에서 was는 잘 죽는다고 했는데 여기선 서브 서버인 web server가 있기 때문에 was가 죽어도 web server가 오류화면 html을 클라이언트에게 뿌릴 수 있음.

0개의 댓글