개인노트-인강

개인 노트 정리) 프론트엔드 개발자가 알아야 하는 CS 지식 - 웹(Web) - REST API

roroism 2023. 4. 9. 14:21

프론트엔드 웹 개발의 모든 것 초격차 패키지 Online.
프론트엔드 개발자가 알아야 하는 CS 지식 Ch 01. 웹(Web)

 

# REST API

  • REST API는 실무적인 관점에서 개발자가 웹사이트를 개발할 때,
  • 특히 웹 클라이언트와 웹 서버가 통신과정에서 많이 사용되는 규격입니다.

 

## REST (Representational State Transfer) 등장 배경

  • HTTP는 다양한 HTTP 메서드 (GET, POST, PUT, DELETE 등)를 지원합니다.
  • 실제로는 서버가 HTTP 메서드를 기존 설명에 맞게 사용하지 않더라도, 프로그램 개발은 가능합니다.
  • 하지만 각 서비스가 서로 다른 방식으로 개발하면, 개발자 사이의 소통에 문제가 발생할 수 있습니다.
  • 따라서 기준이 되는 아키텍처로 REST를 채택할 수 있습니다. (REST는 대표적인 아키텍처입니다.)

 

## REST 이해하기

  • REST는 Representational State Transfer 의 약자입니다.
  • 말 그대로 특정한 자원(resource)에 대하여, 자원의 상태에 대한 정보를 주고받는 개발 방식입니다.
  • REST의 구성 요소는 다음과 같습니다.
자원(resource) URI를 이용
행위(verb) HTTP 메서드를 이용
표현(representation) 페이로드(payload)를 이용

행위 : POST인지 DELETE인지.

표현 : 아이디, 수치 등 구체적인 정보.

 

## REST 예제 살펴보기

 

1. 예시 1

  • REST 방식을 채택한 서버로 요청(request)을 보내는 예시는 다음과 같습니다.
  • 클라이언트가 회원가입을 하고 싶은 상태일 때,
  • 이 때, 아이디는 'gildong' , 비밀번호는 '1234' 로 설정하고 싶다면?
자원 회원(user)
행위 회원 등록
표현 아이디 : 'gildong' , 비밀번호 : '1234'

회원이라는 자원에 POST 방식으로 회원 등록 요청을 수행할 수 있으며, 페이로드 파트에는 아이디와 비밀번호 정보를 담아서 서버에 전달하는 것입니다.

 

2. 예시 2

  • 클라이언트가 회원가입을 하고 싶은 상태입니다.
  • 이 때, 아이디는 'gildong' , 비밀번호는 '1234' 로 설정하고 싶다면?
  • 동일한 내용을 HTTP 패킷으로 표현하여 서버로 보내 줄 수 있습니다.

 

## REST API

  • API : 이 때, API라고 하는 것은 서로 다른 두 프로그램이 상호작용하기 위한 인터페이스라고 이해하는 것이 일반적입니다.
  • REST API : REST 아키텍처를 따르는 API.
  • REST API 호출 : REST 방식을 따르고 있는 서버에 특정한 요청(request)을 전송하는 행위.

 

## REST API 연습하기

실제로 REST API가 어떤식으로 정보를 반환하는지 확인해 보기 위해서는 목킹 서비스를 사용해 볼 수 있습니다.

  • 목킹(mocking) : 어떠한 기능이 있는 것처럼 흉내내어 구현한 것을 의미합니다.
  • 클라이언트 개발을 위해 간단히 서버 기능을 테스트할 때 사용합니다.
  • 처음부터 모든 서버 기능을 개발하고, 클라이언트 개발을 시작하면 개발 일정에 지연이 생길 수 있습니다.

어떠한 기능이 있는 것처럼 흉내내어 프로토타입을 보여주는 예시로 이해할 수 있습니다.

 

### REST API 목킹 서비스 예시

  • REST API 목킹 서비스 예시 : https://jsonplaceholder.typicode.com 
  • 사용자(user) 정보 API 확인해 보기
    1) 전체 사용자 목록 : https://jsonplaceholder.typicode.com/users
    2) 특정 사용자 : https://jsonplaceholder.typicode.com/users/1