합리적 낙관주의자

01. Web Application 본문

이상이 아닌 현실 💼/Web 💻

01. Web Application

sroa.chin 2020. 4. 15. 21:15

#1. Web Application 이란?

 

로컬에서 독립적으로 수행되는 것이 아니라 웹 브라우저 상에서 HTTP 프로토콜 및 HTML 문서를 근간으로 수행되는 어플리케이션이다. 웹 어플리케이션은 웹 브라우저 상에서 수행되기 때문에 독립 어플리케이션에 비해 *사용자 인터페이서의 한계가 있지만, *웹 2.0 이후 독립 어플리케이션과의 표현력 차는 많이 좁혀졌다. 

 

  • 한계 극복
    1. RIA (Rich Internet Application) 
    2. Ajax(Asynchronous JavaScript and XML)
  • 웹 세대
    1.  웹 1.0 : 단순한 웹사이트의 집합 
    2.  웹 2.0 : 개방, 참여, 공유의 정신을 바탕으로 사용자가 직접 정보를 생산하여 쌍방향으로 소통하는 웹
    3.  웹 3.0 : 네트워크를 통한 여러 가치 공유 * 탈중앙화

#2. Web Application의 구조 (Web Application Architecture)

 

1. 2-tier (Client <--> Server)

클라이언트가 서버에 직접 접속해 자원을 활용하는 방식, 개발이 편리하나 웹 어플리케이션의 보안에 취약하고 유지보수가 힘들다. 

 

2. 3-tier (Client <--> Server <--> Database) 

데이터베이스를 분리하고 오직 서버을 거쳐서만 접속 가능하도록 구성했다.

  • 각 Tier 설명과 구성요소
    1. Client Tier : 사용자가 실제로 접하는 프로그램,
      • 웹 브라우저 : 사용자의 작업창, 모든 사용자의 요청을 받으며 웹 서버로 전달한다.
    2. Server Tier : Client와 Database를 연결해주는 소프트웨어 또는 하드웨어 
      • 웹 서버 : HTTP 프로토콜을 기반으로 클라이언트가 요청한 작업의 결과를 응답하는 곳이다. 주로 정적인 HTML, 이미지, CSS, JavaScript를 클라이언트에게 제공할 때, 요청된 페이지 로직의 수행 및 데이터베이스와의 연동을 위한 요청 WAS에게 요청한다. (Ex. Apache, IIS)
      • 웹 어플리케이션 서버 (WAS) : 클라이언트가 요청한 작업에 필요한 프로그래밍 로직의 처리, 데이터베이스와의 연동을 처리하는 곳이다. 클라이언트의 요청에 응답하기 위해 처리 결과를 웹 서버로 보낸다. 크게 웹 서버 기느오가 컨테이너 기능으로 구성된다. (Ex. Apache Tomcat, WebLogic, WebSphere, Jeus) 
        • Presentation
        • Business Logic
        • Data Access
    3. Data Tier : 하단 부의 저장매체
      • Database : 데이터의 저장소에서 웹으로 발생한 데이터가 저장되는 곳이다. (사용자의 입장에서 가장 안쪽에 있기 때문에 데이터베이스 서버를 Back-End-Server라고 부른다.)
  • 요청과 응답 과정
    1. 웹 브라우저가 웹 서버에게 특정 페이지를 요청한다.
    2. 웹 서버는 웹 브라우저의 요청을 받아 로직 및 데이터베이스와의 연동을 위해 WAS에 이들의 처리를 요청한다.
    3. WAS는 데이터베이스와의 연동이 필요하면 데이터베이스와의 데이터 처리를 수행한다.
    4. 로직 및 데이터베이스 작업 처리 결과를 웹 서버에 리턴한다.
    5. 웹 서버는 결과를 다시 웹 브라우저에게 응답한다.