본문 바로가기

💻 개발자/🚀 HTTP, 네트워크

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

반응형

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

리소스가 존재하는 곳과 리소스를 사용하는 앱을 분리시킨 것을 2-Tier 아키텍처, 다른 말로 클라이언트-서버 아키텍처라고 부른다.

클라이언트-서버 아키텍처(2-Tier 아키텍처)

보통 서버는 리소스를 전달해 줄 뿐, 리소스를 저장하는 공간은 데이터 베이스라는 창고에 둔다. 이처럼 클라이언트-서버 아키텍처에 데이터 베이스가 추가된 형태를 3-Tier 아키텍처라고 한다.

3-Tier 아키텍처

여기서 프론트엔드 개발과 백엔드 개발이 나오는데 사용자가 눈으로 보고 대면하는 클라이언트 앱을 프론트엔드 영역

사용자 눈에 직접 보이지 않게 뒤에서 작동하는 서버 앱을 백엔드 영역이라고 부른다.

 

2. HTTP를 이용한 클라이언트-서버 통신과 API

 

클라이언트와 서버 간의 통신은 요청과 응답으로 구성된다. 여기서 요청이 있어야만 응답이 올 수 있다.

하지만 통신 규약을 지켜가면서 요청을 해야하는 데 이때 통신 규약프로토콜(Protocol)이라고 한다.

웹 애플리케이션 아키텍처에서는 클라이언트와 서버가 서로 HTTP라는 프로토콜(Protocol)을 이용해서 서로 대화를 나눈다.

또한 서버에는 마치 식당에서 메뉴판을 제공하듯 리소스를 잘 활용할 수 있도록 API를 제공해야 한다.

API란 Application Programming Interface의 약자이고, Interface의 사전적 의미는 의사소통이 가능하도록 만들어진 접점이다.

 

서버는 리소스 전달을 위해 API문서를 작성해야 클라이언트가 이를 활용할 수 있다.

보통 인터넷에 있는 데이터를 요청할 때에는 HTTP 프로토콜을 사용하며 주소(URL, URI)를 통해 접근할 수 있다.

HTTP API 디자인에는 Best Practice가 존재하고 URL 디자인은 비교적 단순하나 "메소드"라는 개념이 등장한다.

 

반응형