본문 바로가기
공부/기타

[Web] Web WAS 차이 + 스크립트 언어

by haejang 2021. 5. 3.
728x90
728x90

 

참조 & 더 자세한 설명

 

 

1. Web Server


우리는 크롬 등의 웹 브라우저를 통해 인터넷을 사용한다

이 웹 브라우저에 페이지를 요청하면 요청을 받은 서버가 페이지를 반환해준다

 

이 때, 모든 데이터가 서버에 저장되어 있어 항상 정해진 페이지를 출력하는 경우와 (정적 페이지), DB에서 필요한 데이터들을 가공해 매번 다른 페이지를 출력할 수 있는 경우가 있다 (동적 페이지)

 

엔진 : Apache, IIS(Windows 전용), Nginx 등

 

 

2. Static Pages & Dynamic Pages


차이 한 줄 요약 : 페이지를 요청한 사용자의 정보와 현재 시점에 따라 내용이 변할 수 없느냐/있느냐

정적 페이지

  • 모든 데이터가 서버에 미리 저장되어 있음
  • HTML, CSS, Javascript, 이미지 정도로만 이루어짐
  • 사용자가 페이지를 요청할 시 서버는 이미 만들어져 있는 HTML 파일(정적 페이지)을 반환하는 일만을 한다
  • Javascript로 동적 제어를 할 수 있긴 하지만, 그마저도 모두 사전 정의된 동작이므로 정적 페이지라고 표현한다고 한다
  • 즉 Javascript : client-side 스크립트 언어 (client 단에서 코드가 돈 후 결과가 나오는 것)

동적 페이지

  • 사용자의 정보 & 사용자가 요청한 정보 & 사용자가 요청한 시점 등등의 데이터를 가지고 연동된 DB로부터 데이터를 가져와 새로 가공한 페이지를 반환함
  • 즉 데이터의 '처리'가 필요한 페이지
  • 대부분의 웹 페이지는 동적 페이지임
  • PHP, JSP, ASP, Python 등등을 통해 구현
  • 이들은 server-side 스크립트 언어라고 한다 (server단에서 코드가 돈다)
더보기

1. PHP (Hypertext PreProcessor)

  • 오픈소스라 상용으로 사용해도 무료
  • 주요 OS들과 연동이 원활해 범용적으로 사용 가능
  • 빠르고 가볍고 싸지만 보안에 취약하다고 한다
  • 해외에서는 많이 사용함

2. JSP (Java Server Page)

  • Java 기반의 서버 사이드 스크립트 언어
  • 라이센스 비용이 들고, 익히기 어려우나 아주 안정적인 유지보수 가능
  • Tomcat / Spring 프레임워크

3. ASP (Active Server Page)

  • 윈도우 환경에 최적화 but 라이센스 비용 비쌈
  • IIS / ASP.NET 프레임워크

 

 

3. CGI (Common Gateway Interface, 공통 게이트웨이 인터페이스)


정의 : 웹 서버와 외부 프로그램 사이에서 정보를 주고받는 방법이나 규약들

웹 서버가 클라이언트에게 응답을 보내기 위한 애플리케이션과의 통신을 도와주는 인터페이스이다

즉, 동적 페이지를 사용자에게 제공하기 위해 웹 서버 내에 프로그래밍 기능이 들어가는 방식을 말한다

 

출처 : https://cupjoo.tistory.com/54

PHP, ASP 등을 사용하면 DB 연동을 통해 동적 웹 페이지를 구현할 수 있다

그러나 웹 서버에서 모든 처리를 하게 되면 시스템에 부하가 커져 문제가 발생할 수 있다

 

결론 : 웹 서버에서 동적 페이지를 구현한 것

 

 

4. WAS : Web Application Server


드디어 WAS다 (사실 Web과 WAS의 차이에 대해 글을 쓸려다가 여기까지 왔다...)

위의 CGI에서의 문제점을 해결하기 위한 게 WAS이다

WAS는 Web Server와 DB 서버 사이의 미들웨어이다 : DB 연동 및 동적 페이지 처리 등은 WAS에서 담당한다

 

출처 : https://cupjoo.tistory.com/54

참고로 WAS에서 Web Server 역할까지도 할 수 있다

 

WAS의 기본 구조 / 출처 : https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

그래도 굳이 Web Server를 분리해서 Web-WAS-DB (흔히 말하는 3-tier)로 사용하는 이유는 성능이 훨씬 좋기 때문이다

정적 페이지같은 경우는 Web Server에서 제공하는게 훨씬 빠르고 안정적이기 때문에 역할을 분리해서 사용한다고 한다

보통 JSP로 구현한다

 

엔진 : Apache Tomcat, Oracle WebLogic, 티맥스 Jeus 등

 

 

스크립트 언어 한 짤 요약


참고로 HTML은 프로그래밍 언어가 아니라 마크업 언어이다

 

 

 

 

728x90
728x90

댓글