[WIL] API / REST API
일주일이 어떻게 흘러갔는지도 모를 정도로 숨가쁘게 앞만 보고 달려왔기 때문에
한 주가 지나기 전에 지금까지 했던 것들을 돌이켜 보며 회고하는 시간을 가지려고 한다.
이것저것 모르는 것들 투성이라.. 코드를 하나하나 짚어가며 뜯어볼 예정이지만
그 중에서도 일단 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
는 단지 정보를 식별하는 이름일 뿐, 이 정보를 가공할 수 있어야 한다.
정보에 대한 가공방법은 굉장히 많아보이지만, 네 가지 밖에 없다.
- 생성
Create
- 읽기
Read
- 수정
Update
- 삭제
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
Author And Source
이 문제에 관하여([WIL] API / REST API), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yangddu/WIL-API-REST-API저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)