[HTTP/네트워크] 웹 애플리케이션 아키텍처

Yuni·2022년 8월 4일
0

코드스테이츠

목록 보기
25/39

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

리소스를 사용하는 앱을 클라이언트 리소스를 제공(serve)하는 곳을 서버라고 부르며 클라이언트와 서버는 요청과 응답을 주고받는다.

  • 2티어 아키텍처 : 상품 정보같은 리소스가 존재하는 곳과 리소스를 사용하는 앱를 분리시킨 것(= 클라이언트-서버 아키텍처)
  • 3티어 아키텍처 : 2티어 아키텍처에 데이터베이스가 추가된 형태

클라이언트와 서버의 종류

✔ 클라이언트

클라이언트는 보통 플랫폼에 따라 구분된다.

  • 브라우저를 통해 주로 이용하는 웹 플랫폼에서의 클라이언트(웹사이트 또는 웹 앱라고 부름)
  • iOS나 안드로이드와 같은 스마트폰/태블릿 플랫폼
  • 윈도우와 같은 데스크탑 플랫폼에서 이용하는 앱

✔ 서버

서버는 무엇을 하느냐에 따라 종류가 달라진다.

  • 파일 서버는 파일을 제공하는 앱
  • 웹 서버는 웹사이트에서 필요로 하는 정보들을 제공하는 앱
  • 메일 서버는 메일을 주고받을 수 있도록 도와주는 앱

데이터베이스도 데이터 제공자로서 일하므로 일종의 서버라고 볼 수 있다.

클라이언트 - 서버 통신

클라이언트와 서버 간의 통신을 알기위해 프로토콜에 대한 이해가 필요하다. 프로토콜은 통신 규약, 즉 서버와 클라이언트가 원활하게 메세지를 주고받기 위한 규칙이다.

웹 애플리케이션 아키텍처에서는 클라이언트와 서버가 서로 HTTP라는 프로토콜을 이용해서 서로 메세지를 주고 받는다. HTTP를 이용해 주고받는 메시지는 HTTP 메시지라고 부른다.

주요 프로토콜

API

커피 주문에 비유하자면 메뉴를 주문할 때 알아서 맛있는거 주세요!라는 요청은 컴퓨터에서 허용하지 않는다. 정확한 메뉴를 요청해야한다. 어떻게 해야 서버에 있는 사용 가능한 리소스 즉 메뉴를 파악할 수 있을까? 여기서 필요한게 바로 API(Application Programming Interface)이다.

서버는 클라이언트에게 리소스를 잘 활용할 수 있도록 인터페이스를 제공해 줘야하고 이것을 API라고 부른다. 위에 상황에 비유하자면 메뉴판이라고 볼 수 있다.

보통 인터넷에 있는 데이터를 요청할 때는 HTTP라는 프로토콜을 사용하며 주소(URL, URI)를 통해 접근할 수 있다. 주소 안에는 클라이언트에서 요청과 함께 값을 보내기 위해 파라미터를 사용한다. 이 때 ?(물음표)와 &(앰퍼샌드)기호를 사용한다.

HTTP 요청에는 메서드라는 것이 존재하며 CRUD 각각의 행동과 일치하는 종류가 있다.

profile
배운 것을 기억하기 위해 기록합니다 😎

0개의 댓글