발걸음/일지

[네트워크] WEB

리꾸므 2022. 11. 29. 21:23

WEB

 인터넷에서 제공되는 하이퍼텍스트 시스템이다. 웹은 인터넷에서 제공하는 여러 기능 구현물의 하나지만, 지금은 인터넷이라 하면 흔히 웹을 떠올리게 되었다.

 

 

 클라이언트-서버 아키텍처

 웹에서 제공되는 서비스는 주로 서비스를 이용하는 클라이언트와 서비스를 제공하는 서버로 나눠진다. 이러한 구조를 클라이언트-서버 아키텍처라고 부른다.

  • 클라이언트(Client) : 리소스를 사용하는 앱
  • 서버(Serve) : 리소스를 제공해주는 곳
  • 데이터베이스(Data Base) : 리소스를 저장하는 공간(3티어 아키텍처 요소)
  • 클라이언트와 서버는 요청과 응답을 주고받는 관계이다. 
  • 요청이 선행되고 그 후에 응답이 온다.

 

 

 웹 애플리케이션 아키텍처

  CLIENT                              SERVER   
              ------- >                                   ------- > 
 web Brower               Web Server, Application Server             Database
              < -------                                   < -------
              
//
웹 애플리케이션 구조
  • 웹 사이트와 웹 애플리케이션은 차이가 있다.
  • 웹 애플리케이션의 특징
    • 데스크탑 애플리케이션처럼 상호작용 가능하다.
    • 특정 기능을 가지고 있다(정보 검색 등)
    • 정보나 자료 등의 콘텐츠 관리 시스템과 함께 작동한다.
  • 웹 사이트 : 정적 페이지들의 집합체, 동적 페이지를 포함하게 된다면 이미 웹 애플리케이션이 되게 된다.
  • 오늘날 만들어지는 대부분의 웹사이트들은 엄밀히말하면 웹 애플리케이션이다.
  • 웹 애플리케이션은 인터넷 공개 이후부터 막대한 트래픽에 노출될 수 있기에 4가지 요소를 고려해야한다.
    • 신뢰성(reliability)
    • 확장성(scalability)
    • 보안성(security)
    • 견고성(robustness)

 

 

 웹 애플리케이션 요청흐름

  1. 브라우저는 URL을 입력 받으면 서버의 주소를 찾기 위해 DNS 서버에 요청을 보낸다.
  2. IP주소를 찾으면 해당 주소에 HTTPS 요청을 보낸다. 이미 방문 기록이 캐시 메모리에 있으면 주소를 캐시 메모리에서 가져온다.
  3. 웹서버에 요청이 도착한다.
  4. 웹서버는 저장소에 요청을 보내 페이지 관련 데이터들을 가져온다.
  5. 정보들은 가져오는 중에 비지니스 로직이 작용한다.
  6. 비지니스 로직들은 각 데이터들을 어떻게 다룰지가 정해져 있다.
  7. 로직들을 통해 요청받은 데이터들이 처리되고 브라우저에 응답한다.
  8. 요청들이 브라우저에 응답으로 돌아왔을 때, web page 화면에서 출력된다.

  모든 애플리케이션은 client-side와 server-side로 작동한다. 유저가 요청시 크게는 두 프로그램이 작동을 한다.

  • 유저에 입력에 따라 브라우저에서 작동하는 프로그램
  • HTTP 요청에 따라 서버에서 요청 처리하는 프로그램

 

 

 웹 애플리케이션 요소

  • 유저 인터페이스 요소 : 유저 인터페이스와 유저 경험과 관련된 요소, 화면출력, 로그, 알림, 시스템 통계, 환경 설정 등 웹 애플리케이션의 기능적인 부분 외적인 요소들이다.
  • 구조 요소 : 이 요소들은 기능적인 부분을 담당한다. 유저와의 상호작용, 제어. 데이터베이스 등에 관련한 요소들이다. 웹 애플리케이션의 전체적인 구조를 담당한다. 웹브라우저나 클라이언트, 웹 애플리케이션 서버, 그리고 데이터베이스로 이루어져 있다.

 

 

 Web Application Three Tier Architecture

  웹 애플리케이션 구조는 다양한 단계와 계층을 나뉘지만 크게는 3단계로 나눠 볼 수 있다. 이를 Web Application Three tier Architecture라고 칭한다.

  • Presentation Layer :  이 계층은 유저와 브라우저 등을 이용해 직접적으로 접촉한다. Web Server가 이 영역에 포함되며, 유저 인테퍼이스 요소들을 포함한다.
  • Application Layer : Business Layer, Business Logic 혹은 Domain Logic 이라고 불리기도 하는 이 영역은 유저의 요청을 브라우저로부터 받아서 처리한다. Application Server가 이 계층에 포함되며 또한, 데이터 접근을 위한 경로를 규격화 하는 등의 과정이 이 계층에 작성이 왼다.
  • Data access Layer : Persistence Layer라고도 불리는 이 계층은 애플리케이션의 데이터 저장소에 접근하여 데이터를 불러오거나 저장하는 일을 담당한다. Application Layer는 이 게층과 밀접한 연관을 가지고 있다. 이 단계를 통해 Application Layer의 로직들은 어느 데이터베이스에 접근해서 데이터를 회수하고 혹은 저장할지를 더 최적화 할 수 있다.
  • 3 계층에 속하지 않은 웹 애플리케이션 구조 요소
    • Cross-cutting : 보안, 통신 운영 관리등을 위한 요소이다.
    • Third-party integrations : 제 3의 API 서비스를 이용하는 것을 의미 한다. 에를 들면 OAuth 2.0을 이용한 소셜 로그인, PG사를 이용한 결재기능 등이 이에 속한다.