일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- JavaScript
- 재테크
- 화장품
- 서평
- 자바스크립트
- 독후감
- 독서
- 돈
- 알고리즘트레이닝
- algorithmTest
- 지혜를가진흑곰
- 투자
- 주식
- 다독
- C++
- 책을알려주는남자
- algorithmStudy
- 자바
- 채권
- 알고리즘공부
- 알고리즘 공부
- 프로그래머스 알고리즘 공부
- 백준알고리즘
- Java
- 성분
- algorithmtraining
- 책알남
- 경제
- C
- 프로그래밍언어
- Today
- Total
탁월함은 어떻게 나오는가?
[ComputerScience] WebServer(웹서버 or 웹) Was(웹 애플리케이션 서버) 그리고 Web Application(웹앱) 에 대해서 알아보자 본문
[ComputerScience] WebServer(웹서버 or 웹) Was(웹 애플리케이션 서버) 그리고 Web Application(웹앱) 에 대해서 알아보자
Snow-ball 2022. 12. 6. 15:06Web Server란
웹 서버(Web server)는 다음의 두 가지 뜻 가운데 하나이다.
1. 웹 서버 : 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램
2. 웹 서버 (하드웨어) : 위에 언급한 기능을 제공하는 컴퓨터 프로그램을 실행하는 컴퓨터
웹 서버(Web server)는 HTTP 또는 HTTPS를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트 (이미지 파일 등)을 전송해주는 서비스 프로그램을 말한다. 웹 서버 소프트웨어를 구동하는 하드웨어도 웹 서버라고 해서 혼동하는 경우가 간혹 있다.
웹 서버의 주된 기능은 웹 페이지를 클라이언트로 전달하는 것이다. 주로 그림, CSS, 자바스크립트를 포함한 HTML 문서가 클라이언트로 전달된다. 주된 기능은 콘텐츠를 제공하는 것이지만 클라이언트로부터 콘텐츠를 전달 받는 것도 웹 서버의 기능에 속한다. 이러한 기능은 파일 업로드 포함하여 클라이언트에서 제출한 웹폼을 수신하기 위해 사용된다.
보통 대다수의 웹 서버는 Active Server Page(ASP), PHP 등의 서버 사이드 스크립트 언어(Server-side scripting)을 지원한다. 이는 서버 소프트웨어의 변경 없이도 웹 서버가 수행할 동작을 분리된 서버 사이드 스크립트 언어에 기술할 수 있다는 의미이다. 보통 서버 사이드 스크립트 언어를 통해 구현되는 기능이란 HTML 문서를 동적으로 생성하는 것을 말한다. 이렇게 동적으로 생성된 HTML 문서는 동적 컨텐트라 하는데 주로 데이터베이스의 정보를 조회해서 보여주거나 수정하기 위해 사용된다. 동적 컨텐트와 대비되는 개념으로 정적 컨텐트가 있는데 일반적으로 동적 컨텐트보다 더 빠르게 동작하고 쉡게 캐시될 수 있지만, 반환되는 컨텐트의 내용이 항상 동일하다.
웹서버는 월드 와이드 웹 뿐만 아니라 프린터, 라우터, 웹캠과 같은 임베디드 장치, 그리고 근거리 통신망(local network)에서도 사용된다. 시스템의 모니터링 또는 장치 관리를 위한 목적으로 사용되는데, 이렇게 웹서버는 클라이언트에 다른 소프트웨어의 설치 없이 대부분의 운영체제에 포함된 웹 브라우저만으로 서비스를 제공할 수 있다는 장점이 있다.
웹 애플리케이션 서버란?
웹 애플리케이션 서버 (Web Application Server, 약자 WAS)는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크이다. 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진)로 볼 수 있다. 웹 애플리케이션 서버는 동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터 베이스 서버와 같이 수행이 된다. 일반적인 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행이 된다. 한국에서는 일반적으로 "WAS" 또는 "WAS S/W"로 통칭하고 있으며 공공기관에서는 "웹 응용 서버"로 사용되고, 영어권에서는 "Application Server(약자 AS)"로 불린다.
웹 애플리케이션 서버는 대부분이 자바 기반으로 주로 자바 EE 표준을 수용하고 있으나, 자바 기반이지만 자바 EE 표준을 따르지 않는 제품과 .NET 이나 Citrix 기반인 비 자바 계열도 존재한다.
웹 애플리케이션 서버의 기본 기능은 3가지이다.
1. 프로그램 실행 환경과 데이터베이스 접속 기능을 제공한다.
2. 여러 개의 트랜잭션을 관리한다.
3. 업무를 처리하는 비즈니스 로직을 수행한다.
다만, 웹 애플리케이션의 정확한 정의는 존재하지 않아서 일부 기능을 제공하지 않는 웹 애플리케이션 서버도 존재한다. 업체들은 이러한 3가지 기능 말고도 여러 기능을 추가하고 강화하고 있다.
결론적으로, WAS(웹 애플리케이션 서버)는 웹서버(일명 웹)기반의 웹 애플리케이션(일명 웹앱)과 서버에 필요한 환경을 만들어 동작시켜주는 소프트웨어 프레임워크이다.
좀 더 풀어서 설명하자면, 웹 애플리케이션과 서버가 다양한 요구사항 직면한 현재 다양한 기능을 위한 문제 해결을 위해 구축 된것이다.
3가지 예시를 들어보자.
EX 1. 웹 서버에서는 정적컨텐트와 동적컨텐트 모두 처리가 가능하다. 하지만, 동적컨텐트는 정적컨텐트에 비해 처리하기 위한 비용이 많이 들어간다. 하지만, 최근 웹앱에서는 동적인 컨텐트를 많이 생성하고 사용되고 있는 추세이다. 그렇다면 웹 서버에서 그 많은 처리비용을 쓰다보면 다운될일도 있을 수 있고, 느려져서 고객 경험이 안좋아질 수도 있고, 그 외에 다양한 이슈가 생길 수도 있다. 그렇기 때문에 WAS를 사용해서 로드밸런싱이 가능해질 것이다.
EX 2. 보안 이슈도 생각해볼 수 있다. 물론 웹 서버내에서도 보안에 관련된 로직을 작성할 수 있다. 하지만 WAS 를 사용해서 애초에 보안에 대한 방어를 설정해놓는다면, 웹 서버내로 들어 올 수 없을 것이니 좀 더 안정적인 서비스가 가능할 것이다.
EX 3. 다양한 WAS를 사용해서 프레젠테이션 로직과 비지니스 로직을 구분하여 구성할 수 있게 된다. 웹 서버 내에서 모든 코드를 작성한다면 길이도 길어지지만, 일명 스파게티 코드가 될 가능성이 높아지며, 하나의 수정이 많은 기능들에 영향을 끼치게 되서 부작용을 초래할 수 있다.
이외에도 다양한 예시들을 들을 수 있을 것이다. 하지만, 중요한 요점은 WAS는 결국 웹 서버를 도와주는 소프트웨어 프레임워크라는 점을 기억하면 되겠다. 결국 그것이 보안, 프록시, 캐시기능, 서비스 속도 등 어떤것에도 적용이 가능해질 것이다.
Web Server 와 WAS 구성에 따른 분류
Case1. Web Server와 WAS를 분리하지 않는 경우
* 모든 컨테츠를 한 곳에 집중시켜 웹 서버와 WAS의 역할 동시에 수행
* 스위치를 통한 Load Balancing, 사용자가 적을 경우 효율적
Case 2. Web Server와 WAS를 분리한 경우
* 웹 서버와 WAS의 기능적 분류를 통해 효과적인 분산 유도
* 정적 데이터는 웹 서버에서 처리, 동적인 데이터는 WAS가 처리
Case 3. Web Server와 여러 대의 WAS가 존재하는 경우
* WAS 단을 프레젠테이션 로직과 비즈니스 로직으로 구분하여 구성
* 특정 로직의 부하에 따라 적절한 대응을 할 수 있지만 설계단계, 유지보수 단계가 복잡해질 수 있다.
서버 사이드 스크립트 란?
서버 사이드 스크립트 언어 (Server-side script language) 또는 서버 사이드 스크립트 (Server-side scripting) 이란?
웹에서 사용되는 스크립트 언어 중 서버 사이드에서 실행되는 스크립트 언어를 말한다.
서버 사이드 (Server-side) 란?
네트워크의 한 방식인 클라이언트-서버 구조의 서버 쪽에서 행해지는 처리를 말한다. 이는 클라이언트에서 프로그램이 구동되는 클라이언트 사이드와 대조된다.
웹 애플리케이션이란?
웹 애플리케이션 (Web application) 또는 웹 앱은 소프트웨어 공학적 관점에서 인터넷이나 인트라넷을 통해 웹 브라우저에서 이용할 수 있는 응용 소프트웨어를 말한다. 웹 애플리케이션은 클라이언트로서 웹 브라우저를 사용하는 사람이 많기 때문에 인기를 누리고 있다. 수천만 대의 PC에 굳이 소프트웨어를 배포해서 설치하지 않아도 웹 애플리케이션을 유지 관리할 수 있다는 점이 장점 중의 하나이다. 웹 애플리케이션은 웹 메일, 온라인 전자상거래 및 경매, 위키, 인터넷 게시판, 블로그 및 MMORPG 게임 등 다양한 기능을 구현할 수 있다.
referance
'[Snow-ball]프로그래밍(컴퓨터) > 프로그래밍 및 컴퓨터 개론 이론' 카테고리의 다른 글
예측가능하기 좋은 코딩은 해야하는 것일까? 그렇다면 왜 해야하는 것일까? (0) | 2023.01.30 |
---|---|
[Computer Science] Middleware란 무엇인가? (0) | 2022.11.21 |
[Computer Science] 퍼시스턴트 or 퍼시스턴스 란? (Persistent) (0) | 2022.11.20 |
[Computer Science] 런타임(runtime), 컴파일러(compiler)와 컴파일러 타임(compiler time)에 대해서 알아보자 (2) | 2022.11.13 |
[Computer Science] CLI란? (Command-line interface, 명령 줄 인터페이스) 그리고 셸(Shell)과 터미널(Terminal)에 대해서도 알아보자 (0) | 2022.11.10 |