이상이 아닌 현실 💼/Web 💻
01. Web Application
sroa.chin
2020. 4. 15. 21:15
#1. Web Application 이란?
로컬에서 독립적으로 수행되는 것이 아니라 웹 브라우저 상에서 HTTP 프로토콜 및 HTML 문서를 근간으로 수행되는 어플리케이션이다. 웹 어플리케이션은 웹 브라우저 상에서 수행되기 때문에 독립 어플리케이션에 비해 *사용자 인터페이서의 한계가 있지만, *웹 2.0 이후 독립 어플리케이션과의 표현력 차는 많이 좁혀졌다.
- 한계 극복
- RIA (Rich Internet Application)
- Ajax(Asynchronous JavaScript and XML)
- 웹 세대
- 웹 1.0 : 단순한 웹사이트의 집합
- 웹 2.0 : 개방, 참여, 공유의 정신을 바탕으로 사용자가 직접 정보를 생산하여 쌍방향으로 소통하는 웹
- 웹 3.0 : 네트워크를 통한 여러 가치 공유 * 탈중앙화
#2. Web Application의 구조 (Web Application Architecture)
1. 2-tier (Client <--> Server)
클라이언트가 서버에 직접 접속해 자원을 활용하는 방식, 개발이 편리하나 웹 어플리케이션의 보안에 취약하고 유지보수가 힘들다.
2. 3-tier (Client <--> Server <--> Database)
데이터베이스를 분리하고 오직 서버을 거쳐서만 접속 가능하도록 구성했다.
- 각 Tier 설명과 구성요소
- Client Tier : 사용자가 실제로 접하는 프로그램,
- 웹 브라우저 : 사용자의 작업창, 모든 사용자의 요청을 받으며 웹 서버로 전달한다.
- Server Tier : Client와 Database를 연결해주는 소프트웨어 또는 하드웨어
- 웹 서버 : HTTP 프로토콜을 기반으로 클라이언트가 요청한 작업의 결과를 응답하는 곳이다. 주로 정적인 HTML, 이미지, CSS, JavaScript를 클라이언트에게 제공할 때, 요청된 페이지 로직의 수행 및 데이터베이스와의 연동을 위한 요청 WAS에게 요청한다. (Ex. Apache, IIS)
- 웹 어플리케이션 서버 (WAS) : 클라이언트가 요청한 작업에 필요한 프로그래밍 로직의 처리, 데이터베이스와의 연동을 처리하는 곳이다. 클라이언트의 요청에 응답하기 위해 처리 결과를 웹 서버로 보낸다. 크게 웹 서버 기느오가 컨테이너 기능으로 구성된다. (Ex. Apache Tomcat, WebLogic, WebSphere, Jeus)
- Presentation
- Business Logic
- Data Access
- Data Tier : 하단 부의 저장매체
- Database : 데이터의 저장소에서 웹으로 발생한 데이터가 저장되는 곳이다. (사용자의 입장에서 가장 안쪽에 있기 때문에 데이터베이스 서버를 Back-End-Server라고 부른다.)
- Client Tier : 사용자가 실제로 접하는 프로그램,
- 요청과 응답 과정
- 웹 브라우저가 웹 서버에게 특정 페이지를 요청한다.
- 웹 서버는 웹 브라우저의 요청을 받아 로직 및 데이터베이스와의 연동을 위해 WAS에 이들의 처리를 요청한다.
- WAS는 데이터베이스와의 연동이 필요하면 데이터베이스와의 데이터 처리를 수행한다.
- 로직 및 데이터베이스 작업 처리 결과를 웹 서버에 리턴한다.
- 웹 서버는 결과를 다시 웹 브라우저에게 응답한다.