30Days) 네트워크(2) - HTTP

nacSeo (낙서)·2022년 11월 30일
0

◉ 학습목표

1. REST API에 대해 이해하고, Open API와 API Key에 대해 설명할 수 있다.
2. Postman이 무엇인지 이해하고 활용할 수 있다.
  1. REST API (Representational State Transfer)

⦿ 학습내용

☞ REST API

✔︎ 로이 필딩의 박사학위 논문에서 웹(http)의 장점을 최대한 활용할 수 있는 아키텍처로 소개
✔︎ 웹에서 사용되는 데이터나 자원(Resource)을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식

☞ 좋은 REST API를 디자인하는 방법

✔︎ 레오나르드 리차드슨의 4단계 REST 성숙도 모델
✔︎ REST 성숙도 모델 - 0단계

  • 단순히 HTTP 프로토콜 사용 → REST API의 시작점

✔︎ REST 성숙도 모델 - 1단계

  • 모든 자원은 개별 리소스에 맞는 엔드포인트(Endpoint) 사용
  • 요청하고 받은 자원에 대한 정보를 응답으로 전달
  • 엔드포인트 작성시 동사, HTTP 메서드, 어떤 행위에 대한 단어 사용 지양, 리소스에 집중해 명사 형태의 단어로 작성

✔︎ REST 성숙도 모델 - 2단계

  • CRUD에 맞게 적절한 HTTP 메서드를 사용하는 것에 중점
  • GET 메서드 : 서버의 데이터를 변화시키지 않는 요청에 사용 (Idempotent(멱등))
  • POST 메서드 : 요청마다 새로운 리소스 생성 (Non-idempotent(멱등❌))
  • PUT 메서드 : 요청마다 같은 리소스 반환 (Idempotent), 교체 용도
  • PATCH 메서드 : 수정 용도

✔︎ REST 성숙도 모델 - 3단계

  • HATEOAS(Hypertext As The Engine Of Application State)라고 표현되는 하이퍼미디어 컨트롤 적용
  • 응답 내에 새로운 링크를 넣어 새로운 기능에 접근할 수 있도록 하는 것이 중요 포인트

☞ Open API

✔︎ 누구에게나 열려있는 API
✔︎ 기관이나 API마다 정해진 이용 수칙 존재, 제한사항(가격, 정보제한 등)이 있을 수도 있음

☞ API Key

✔︎ 서버의 문을 여는 열쇠
✔︎ 로그인된 사용자에게만 자원에 접근할 수 있는 권한을 API Key형태로 제공
✔︎ 데이터를 요청할 때 API Key를 같이 전달해야 원하는 응답을 받을 수 있음

  1. Postman

⦿ 학습내용

☞ API 테스트 도구

✔︎ 매번 코드를 작성하는 것 대신 HTTP 요청을 테스트할 수 있는 다양한 도구 존재
✔︎ 많은 API가 HTTP 프로토콜 이용
✔︎ 클라이언트 입장에서 서버 API를 테스트하거나, API를 만드는 과정에서 매우 유용

☞ HTTP API 테스트 도구 (CLI)

✔︎ curl (대부분의 리눅스 환경에 내장)
✔︎ wuzz

☞ HTTP API 테스트 도구 (GUI)

✔︎ Postman
✔︎ Insomnia

◉ 느낀 점

☞ 어제부터 해서 쉽지 않은, 깊이 있는 내용들에 대해 학습하고 있다. (HTTP, REST API 등등 ...)
해당 내용들이 어려워서 오늘 과제도 쉽지 않겠구나 생각했는데 다행히 과제는 기본적인 postman 사용법을 익히는 느낌이라 크게 어렵지 않고, 금방 끝내버렸다 :D
어제 하루만 봐서 해당 내용들에 대해 크게 이해를 못했지만, 오늘도 어제와 연결되는 내용이라 생각이 들어 학습하다 보니 조금은 감이 잡히는 느낌이다. (역시 반복이 답인가 ,,,)
이틀만에 네트워크 파트가 슝~하고 지나갔고 내일부터는 데이터베이스에 들어간다 ,, 점점 갈수록 공부할 내용도 많고 힘들어진다는데 밀리지 말고 잘 따라가보도록 해보자 🔥🔥🔥

◉ 내일의 키워드

・ SQL
profile
백엔드 개발자 김창하입니다 🙇‍♂️

0개의 댓글