발걸음/일지
[네트워크] 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)
웹 애플리케이션 요청흐름
- 브라우저는 URL을 입력 받으면 서버의 주소를 찾기 위해 DNS 서버에 요청을 보낸다.
- IP주소를 찾으면 해당 주소에 HTTPS 요청을 보낸다. 이미 방문 기록이 캐시 메모리에 있으면 주소를 캐시 메모리에서 가져온다.
- 웹서버에 요청이 도착한다.
- 웹서버는 저장소에 요청을 보내 페이지 관련 데이터들을 가져온다.
- 정보들은 가져오는 중에 비지니스 로직이 작용한다.
- 비지니스 로직들은 각 데이터들을 어떻게 다룰지가 정해져 있다.
- 로직들을 통해 요청받은 데이터들이 처리되고 브라우저에 응답한다.
- 요청들이 브라우저에 응답으로 돌아왔을 때, 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사를 이용한 결재기능 등이 이에 속한다.