개발 일지/CS

[Web] 웹 애플리케이션

미숫가루설탕많이 2023. 1. 26. 15:05

 웹 애플리케이션(web application)은 인터넷을 통해 웹 브라우저에서 이용할 수 있는 응용 프로그램이다.

 

 웹사이트(website)와 헷갈릴 수 있지만, 웹 개발 영역에서 웹사이트는 일반적으로 정적 페이지들의 집합체를 의미한다. 만약 웹사이트가 정적 페이지들 뿐 아니라, 동적 페이지를 포함하게 된다면 웹 애플리케이션이 된다.

 

 사실 오늘날 만들어지는 대부분의 웹사이트는 웹 애플리케이션이라고 할 수 있다.

 

 유저가 웹브라우저에서 요청을 하면 애플리케이션의 다양한 요소들이 상호작용을 한다. 수많은 유저들의 다양한 요청과 입력에 대해 알맞은 응답을 하기 위해 웹 애플리케이션 서버는 많은 부분 요소와 외부 애플리케이션 또한 공유하여 설계된다.

 

 웹 애플리케이션은 인터넷에 공개되는 순간부터 글로벌 네트워크의 막대한 트래픽에 노출될 수 있기 때문에 신뢰성(reliability), 확장성(scalability), 보안성(security), 견고성(robustness)을 고려해야 한다.

 

 

 

 

특징

 

  • 데스크탑 애플리케이션처럼 상호작용이 가능하다.

  •  특정 기능(정보 검색 등)을 가지고 있다.
  • 정보나 자료 등의 콘텐츠 관리 시스템과 함께 작동한다.

 

 

 

 

요소

 

  • 유저 인터페이스 요소
    : 화면 출력, 로그, 알림, 시스템 통계, 환경 설정 등 애플리케이션의 외적인 요소들이다.
  • 구조 요소
    : 유저와의 상호작용, 제어, 데이터베이스 등 애플리케이션의 기능적인 요소들로 웹 애플리케이션의 전체적인 구조를 담당한다.

 

 

 

 

Web Application Three Tier Architecture

 

 웹 애플리케이션의 구조는 크게 3단계로 나누어볼 수 있다.

 

  • Presentation Layer
    : 이 계층은 유저와 브라우저 등을 이용해 직접적으로 접촉한다. Web Server가 이 영역에 포함되며, 유저 인터페이스 요소들을 포함한다.

  • Application Layer(Business Layer, Business Logic, Domain Logic)
    : 이 영역은 유저의 요청을 브라우저로부터 받아서 처리한다. Application Server가 이 계층에 포함되며, 데이터 접근을 위한 경로를 규격화하는 등의 과정이 이 계층에 작성된다.

  • Data Access Layer(Persistence Layer)
    : 이 계층은 애플리케이션의 데이터 저장소에 접근하여 데이터를 불러오거나 저장을 담당한다. Application Layer는 이 계층과 밀접한 연관을 가지고 있으며, 이 단계를 통해 Application Layer의 로직들은 어느 데이터베이스에 접근해서 데이터를 회수하고 혹은 저장할지를 더 최적화할 수 있다.

 

 

 

 

구현 방식

 

 웹 애플리케이션을 구성하는 방식은 크게 세 가지 방식이 있다.

 

  • Single Page Application
    : 직관적으로 알기 쉽고 상호작용 가능한 요소들을 이용해서 유저 경험을 극대화한다. 유저의 입력과 요청에 의한 것들이 현재 페이지에서 이루어진다. 이러한 기능을 위해 AJAX, Asynchronous JavaScript, XML이 주로 사용된다.

  • Microservice architecture
    : 작고 가벼운 특정한 한 가지 기능에 집중한 웹 애플리케이션을 의미한다. 각 기능 요소들은 상호 의존적으로 설계되지 않기 때문에 개발자는 원하는 언어를 사용해 기능 개발에 유연성을 갖게 되면서 개발 과정의 전반적인 속도와 생산성이 향상된다.

  • Serverless Architecture
    : 개발자가 웹 애플리케이션의 서버와 기타 기반 기능들에 대해 외부의 3자인 클라우드 서비스 제공자에게 의탁하는 방식이다. 개발자가 특정기능의 개발에 집중할 수 있다.

'개발 일지 > CS' 카테고리의 다른 글

[Web] AJAX  (0) 2023.01.26
[Web] SSR / CSR  (0) 2023.01.26
[Web] 클라이언트-서버 아키텍처  (0) 2023.01.26
[Network] URL  (0) 2023.01.26
[Network] TCP / UDP  (0) 2023.01.26