CS

웹 서버, 웹 애플리케이션 서버

index.ys 2023. 8. 1. 15:35

웹 서버 (Web Server)와 웹 애플리케이션 서버 (Web Application Server)의 차이점

기능

웹 서버

  • 웹 서버: 웹 서버는 HTTP프로토콜을 사용하여 클라이언트(브라우저)의 요청을 처리하고, 정적 웹 페이지 (HTML ,CSS)를 제공하는 역할을 수행
  • 기본적으로 정적 콘텐츠를 제공하는 역할

웹 애플리케이션 서버

  • 동적인 컨텐츠를 생성하고, 비즈니스 로직을 처리하며 데이터베이스와의 상호작용을 통해 동적인 웹 애플리케이션을 구동하는 역할 수행
  • 웹 애플리케이션 서버는 웹 서버와 함께 사용됨

기술

웹 서버

  • 웹 서버는 주로 정적 파일을 처리하는데 특화되어 있으며, 일반적으로 Apache, Nginx 등 사용

웹 애플리케이션 서버

  • 웹 애플리케이션 서버는 웹 애플리케이션을 실행하는데 필요한 동적 처리를 지원하기 위해 설계
  • Tomcat, JBoss, WildFly, Node.js등이 있음

역할 분담

  • 웹 서버와 웹 애플리케이션 서버는 일반적으로 협업하여 동작함
  • 클라이언트의 요청은 웹서버로 전달되고 웹 서버는 정적 콘텐츠를 직접 처리하여 반환
  • 웹 애플리케이션 서버는 동적인 처리를 수행하여 결과를 웹 서버로 전달하여 클라이언트에게 제공

서버 소프트웨어

  • 웹 서버 : 웹 서버는 주로 정적인 콘텐츠를 제공하는데 사용 ex) Apache, Nginx
  • 웹 애플리케이션 서버 : 동적인 웹 애플리케이션을 실행하는데 사용 ex) Tomcat, JBoss, WildFly

웹 서버는 정적인 컨텐츠를 처리하는데 사용, 웹 애플리케이션 서버는 동적인 컨텐츠를 생성하고 실행하는데 사용.

웹 서버와 웹 애플리케이션 서버는 서비스구축 동시에 사용

프로그래밍 언어 (Programming Language)와 스크립트 언어 (Scripting Language)의 차이점

컴파일러 vs 인터프리터

프로그래밍 언어

  • 대부분의 프로그래밍 언어는 컴파일러르 사용하여 소스코드를 기계어를 변환함
  • 컴파일러는 소스 코드 전체를 한번에 번역하고, 번역된 기계어 코드는 실행 파일로 저장됨
  • 실행 파일만 실행하여 프로그램 실행
  • EX) C, C++, C# , JAVA, Swift 등

스크립트 언어

  • 스크립트 언어는 일반적으로 인터프리터를 사용하여 소스 코드를 한줄씩 읽고, 해당 줄을 바로 실행함
  • 스크립트 언어는 별도의 컴파일 단계 없이 소스 코드를 실행함
  • EX) Python, JavaScript, Ruby 등

컴파일 타임 vs 런타임

프로그래밍 언어

  • 프로그래밍 언어는 보통 컴파일 타임에 오류를 검출함
  • 컴파일러는 소스 코드를 기계어로 변환하는 과정에서 구문 오류나 타입 오류 등을 확인
  • 실행 파일을 생성하기 전에 이러한 오류를 수정 후 실행

스크립트 언어

  • 스크립트 언어는 런타임에 오류를 처리함
  • 인터프리터가 소스 코드를 실행하는 과정에서 문제가 발생하면 해당 지점에서 프로그램이 중지되어 오류를 처리하거나 수정

정적 타입 vs 동적 타입

프로그래밍 언어

  • 정적 타입 언어에서는 변수의 데이터 타입이 컴파일 시점에 결정됨
  • 컴파일러는 타입 불일치 등의 오류를 검출 할 수 있음

스크립트 언어

  • 동적 타입 언어에서는 변수의 데이터 타입이 런타임에 결정됨
  • 변수의 타입을 명시적으로 선언할 필요가 없음 => 빠르게 프로토타이핑하거나 유연한 코드 작성 가능

일반적인 용도

프로그래밍 언어

  • 시스템 프로그래밍, 알고리즘 개발, 데스크톱 애플리케이션 개발등에 사용

스크립트 언어

  • 자동화 작업, 웹 개발, 게임 개발, 데이터 처리 등 작은 규모의 작업에서 사용