[WIL] API / REST API

양주영·2021년 9월 20일
1

WIL

목록 보기
1/1

일주일이 어떻게 흘러갔는지도 모를 정도로 숨가쁘게 앞만 보고 달려왔기 때문에
한 주가 지나기 전에 지금까지 했던 것들을 돌이켜 보며 회고하는 시간을 가지려고 한다.
이것저것 모르는 것들 투성이라.. 코드를 하나하나 짚어가며 뜯어볼 예정이지만
그 중에서도 일단 API , REST API , JWT 에 대하여 내가 이해한 부분들을 기록해봐야겠다.



1. API가 뭐길래?

✅ API


💡 API : 응용프로그램 간에 데이터를 주고 받는 방법

API(Application Programming Interface 애플리케이션 프로그래밍 인터페이스, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.

우리가 주목해야할 부분은 Interface이다.
Interface란 어떤 두 가지가 서로 연결되고 영향을 미칠 수 있는 장소/방법/상황을 의미한다. 여기서 '어떤 두 가지'는 사람과 사람, 사람과 기계, 기계와 기계가 될 수 있다.
키보드를 예로 들 수 있는데 키보드를 통해 컴퓨터에 문자를 입력해 명령을 내릴 수 있고, 이는 기계와 사람 간의 인터페이스가 될 수 있다.
즉, API는 프로그램들끼리 서로 연결되고 영향을 미칠 수 있게 만드는 방법이다.


더 구체적으로 알고 싶다면? 👉 https://velog.io/@yangddu/API


그래. API는 응용 프로그램들이 서로 소통하는 방법이라고 생각하자. 
그렇다면 난 여기서 POST / GET 이라는 메소드가 무엇인지, 왜 필요한지 정확한 이해를 해야했고,
그러기 위해선 REST API 개념부터 잡아야 했다.
본 설명은 유튭 '생활코딩' 강의를 참고하여 정리해봤다.


2. REST API는 또 뭐야?

✅ Rest api



💡 REST API : “Representational State Transfer” 의 약자이고,
자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다.

REST API는 컴퓨터의 기능을 실행시키는 명령이다. 내 컴퓨터가 아니라 남의 컴퓨터를 실행시킨다.
인터넷과 웹을 통해서 나의 컴퓨터를 제어할 때 어떻게 하면 시행착오를 줄이고 더 좋은 API를 만들 수 있는가에 고민에 대한 답이 REST API.
특정 기술을 의미하는게 아니라 http를 이용해서 기계들이 통신할 때 http가 가진 잠재력을 최대한 이용할 수 있도록 유도하기 위한 모범사례라고 할 수 있다.

REST API 에서는 클라이언트와 서버가 어떤 데이터 타입으로 통신할 것인지를 규정하지 않는다. 다만, 리소스를 식별할 때는 URI를 통해서 식별한다.
URI 는 단지 정보를 식별하는 이름일 뿐, 이 정보를 가공할 수 있어야 한다.
정보에 대한 가공방법은 굉장히 많아보이지만, 네 가지 밖에 없다.

  1. 생성 Create
  2. 읽기 Read
  3. 수정 Update
  4. 삭제 Delete
    이를 CRUD 라고 한다.
    이러한 작업들을 REST API 에서는 method라고 한다.

REST API는 웹의 통신규약인 http를 이용하기 때문에 http가 가지고 있는 메소드를 이용한다.
http에서 생성을 위한 메소드는 POST,
읽기 위해 GET,
업데이트를 위해 전체 내용을 변경한다면 PUT,
부분을 변경한다면 PATCH,
삭제하기 위해 DELETE라는 메소드를 사용한다.

'REST API 에서는 서버쪽에서 어떠한 일을 처리하고 그 처리한 일의 결과를 응답 코드와 응답 메시지를 통해서 응답하자' 라는 것이 REST API의 핵심.


✅ 2-1. REST API 설계

REST API 설계 시 가장 중요한 항목은 다음의 2가지로 요약할 수 있다.

첫 번째, URI는 정보의 자원을 표현해야 한다.
두 번째, 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.


✅ 2-2. RESTful이란?

REST를 REST답게 쓰기 위한 방법으로 공식적이지 않은 개발자들이 비공식적으로 제시한 것이다. 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것이 목적이다.

  • CRUD의 기능을 전부 활용해야한다. (예. POST로만 모든 것을 처리하면 RESTFUL이 아니다.)

  • URI에 자원과 id외 정보만 들어가야한다.



📝 잠깐! 정리하고 가자.

웹의 장점을 최대한 활용할 수 있는 아키텍처로써 REST(Representational State Transfer) API가 있다. 
인터넷과 웹을 통해서 나의 컴퓨터를 제어할 때 어떻게 하면 시행착오를 줄이고 더 좋은 API를 만들 수 있는가에 대한 답이 REST API.
`REST API`의 리소스를 식별할 때 이 정보들을 가공할 수 있어야 하는데 네 가지 가공방법을 CRUD 라고 하며,
웹의 통신규약인 http를 이용하기 때문에 http가 가지고 있는 메소드를 이용한다.
생성을 위한 메소드 POST, 읽기를 위한 GET 메소드를 사용한다는 것이다.
여기에서 우리가 그토록 원하던 답을 찾을 수 있었다! 야호~


3. get / post


클라이언트에서 서버로 요청하는 타입에 대해서 알아보자.

  • GET : 통상적으로! 데이터 조회(Read)를 요청할 때 예) 영화 목록 조회

  • POST : 통상적으로! 데이터 생성, 변경, 삭제 요청할 때 예) 회원가입, 회원탈퇴, 비밀번호 수정


GET방식으로 데이터를 전달하는 방법

  • ? : 여기서부터 전달할 데이터가 작성된다는 의미이다.
  • & : 전달할 데이터가 더 있다는 뜻이다.
  • 예시 ) google.com/search?q=아이폰&sourceid=chrome&ie=UTF-8
    위 주소는 google.com의 search 창구에 다음 정보를 전달한다.
    q = 아이폰 (검색어)
    sourceid=chrome (브라우저 정보)
    ie=UTF-8 (인코딩 정보)


📝 총 정리


  • API는 한 프로그램에서 다른 프로그램으로 데이터를 주고 받기 위한 방법이다.

  • 서버에 있는 데이터를 읽고 쓰기 위해서는 서버에서 제공하는 web api를 이용해서 처리할 수 있다.

  • REST는 'Representational State Transfer'의 약자이다. 자원을 URI로 표시하고 해당 자원의 상태를 주고 받는 것을 의미한다.

  • REST API에서는 리소스를 URI를 통해 식별하고, 이 URI는 정보를 가공할 수 있어야 하는데 네 가지 방법 CRUD가 있다.

  • REST는 거의 모든 프로토콜에서 사용할 수 있지만 웹 API에 사용할 때는 HTTP를 활용한다.
    - 웹의 통신규약인 http를 이용하기 때문에 http가 가지고 있는 메소드를 이용한다. (get / post / put / delete)

  • 클라이언트에서 서버로 요청하는 타입 중 GET / POST가 있다.
    - GET : 데이터 조회(read)
    - POST : 데이터 생성, 변경, 삭제




참조 >
https://hoyeonkim795.github.io/posts/rest_api/
https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
https://www.youtube.com/watch?v=iyFHfzCRHA8
https://www.youtube.com/watch?v=fwpbLEXL3pU
https://www.youtube.com/watch?v=ogT267HvNuQ
https://www.youtube.com/watch?v=PmY3dWcCxXI
https://meetup.toast.com/posts/92
https://velog.io/@yangddu/API

profile
뚜벅뚜벅

0개의 댓글