[TIL] HTTP/네트워크 기초

lmimoh·2022년 10월 5일
0

TIL

목록 보기
14/26
post-thumbnail

Web-Application-Architecture ?

아키텍쳐(Architecture)는 영어로 '건축학'이라는 의미를 가지고 있으며, 이는 프로그래밍이 건축학에 큰 영향을 받았기 때문이다. 프로그래밍에서 아키텍쳐는 일반적으로 '구조를 설계한다'라는 의미로 사용된다.

즉, 웹 어플리케이션 아키텍쳐는 해당 웹 어플리케이션이 서비스를 제공하기 위한 구조를 의미한다.


웹 어플리케이션 아키텍쳐의 종류

만약, 어떠한 웹사이트가 존재하고 해당 사이트는 제공하는 다양한 정보를 서버에서 불러온다고 가정해보자.

이 경우 웹사이트가 서버와 연결이 끊어진 경우, 사이트는 정보를 불러올 수 없기 때문에 이용자에게 서비스를 제공할 수 없게 된다.

반대로, 웹사이트 내부에 이미 다양한 정보가 포함되어 있다고 가정해보자(하드코딩된 상태).

이 경우 서버가 존재하지 않더라도 다양한 정보를 제공할 수 있지만, 새로운 정보를 지속적으로 업데이트 해야 한다. 또한, 결제와 같은 네트워크를 이용한 API를 제공할 수 없다.

이는 실시간으로 서비스를 제공해야하는 경우, 리소스가 존재하는 서버(Server)와 리소스를 사용하는 클라이언트(Client)를 분리하는 것이 유리하다.


2 Tier Architecture, Client-Server Architecture
> 서버와 클라이언트로 이루어진 웹 어플리케이션 구조를 의미한다.

3 Tier Architecture Client-Server-DB Architecture
> 기존의 2티어 아키텍쳐에 리소스를 저장하는 별도의 서버(Server)인 DB를 포함한 웹 어플리케이션 구조를 의미한다.

이때, 아키텍쳐의 각 요소는 여러 종류가 존재하며 다음과 같다.

  • Client의 경우, 이용자가 사용하는 플랫폼에 따라 구분된다.
    (브라우저 <--> 어플을 사용하는 각종 기기)

  • Server의 경우, 서버가 제공하는 기능에 따라 구분된다.
    (File-Server, Wep-Server, Mail-Server 등등..)

또한, DB도 서버에서 요청한 데이터를 제공하므로 일종의 서버라고 볼 수 있다.


Client-Server 간 통신과 API

클라이언트(Client)와 서버(Server) 간의 통신은 클라이언트의 요청과 서버의 응답을 통해 이루어진다.
일반적으로, 서버는 요청되지 않은 응답을 보내지 않는다.

profile
성장하는 개발자, 이민훈입니다.

0개의 댓글