클라이언트-서버 통신과 API

신창용·2022년 12월 1일
0

클라이언트와 서버의 통신

  • 클라이언트와 서버 간의 통신은 요청과 응답으로 구성된다. 하지만 요청이 있어야만 응답이 온다.
  • 예를 들어 주문하지 않은 커피가 갑자기 나오지 않는 것 처럼 주문이 들어가야 커피가 나온다.
  • 이처럼 클라이언트-서버 아키텍처에서는 서버 마음대로 클라이언트에 리소스를 전달하지 않는다.

프로토콜

  • 클라이언트와 서버간의 통신을 알려면 프로토콜이라는 개념을 알아야한다.
  • 프로토콜은 통신 규약! 즉 약속이다. 손님이 주문을 받는 사람에게 외계어로 주문 할 수 없듯이 주문을 하기 위해서는 꼭 지켜야 할 약속이 몇가지 존재한다.

웹 애플리케이션 프로토콜: HTTTP

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

주요 프로토콜

  • 아래의 그림은 어떤 종류의 프로토콜이 있는지 볼 수 있다.
  • OSI 7 Layers는 컴퓨터공학과 네트워크에서 자주 등장하는 개념이다. 해당 프로토콜이 어떤 계층(layer)에 속해있는지를 표시하고 있다.

API

  • 컴퓨터에게 요청 시, 정확한 주문 방법을 따라 요청 해야 한다. 이때 서버가 어떻게 구성되어 있는지 모른다면, 클라이언트는 어떻게 요청을 할 수 있을까?
    - 위에 대한 정답이 바로 API(Application Programming Interface)이다. 서버는 클라이언트에게 리소스를 잘 활용할 수 있도록 인터페이스(interface)를 제공해 주어야 한다. 이것을 API이라고 한다.

  • 서버는 리소스 전달을 위한 메뉴판, 즉 API 문서를 작성해야 클라이언트가 이를 활용할 수 있다. 보통 인터넷에 있는 데이터를 요청할 때에는 HTTP 프로토콜을 사용하며, 주소(URL,URI)를 통해 접근할 수 있다.

HTTP API 디자인을 잘 하는 방법

  • URL 디자인은 비교적 단순하나 "메서드"라는 개념이 등장한다.

  • HTTP 요청에는 메서드라는 것이 존재하며, 사용자 관리 API에서는 사용자를 추가 요청이나 지워달라고 요청 할 수도 있다.

  • HTTP 메서드는 리소스를 사용할때 적절하게 써야한다. 만약 요청 과 적절한 메소드가 일치 하지 않다면 좋은 API 디자인이라고 할 수 없다.

  • 아래의 그림은 자주 사용하게 될 메소드이다.

profile
코딩으로 쓰는 일기장

0개의 댓글