본문 바로가기

개념정리

API란? 2

API, 그리고 GET과 POST의 탄생 배경에 대해 조금 더 깊게 들어가보겠다.

 

앞전에 API의 게시물에서 설명한 개념이있다.

데이터를 다룰땐 CRUD(생성, 불러오기, 변경, 삭제)라는 4가지 요청이 기준이 되는것이다.

(yurim-lee.tistory.com/10 참고)

 

타임라인의 CRUD는 각각의 주소를 가지고 해당 기능을 사용하기원하면 클라이언트는 해당 주소로 요청을 보내야 한다.

 

그런데 이렇게 주소를 구성하면 문제가 하나 발생한다. 바로 주소가 너~무 많아지고 관리하기가 힘들어진다는 것.

한가지 요청을 만드는데 4개 이상의 주소가 생성된다고 생각해보자. 아니 각각 페이지의 기능에 따라 1,000개, 10,000개가 생성된다고 생각해보자. 사이트를 개발하고 유지/보수하려면 아마 울음부터 나올것이다 ^^;.. 

 

심지어 프로그래밍은 사람이 하는것이기 때문에 이런 주소들의 일부는 기능이 겹치고 CRUD가 체계적으로 나뉘지 않게 될수도있다. 그렇다면 에러가 발생하게 된다.

 

따라서 사람들은 좀더 체계적으로 API를 관리하고 싶어했고 그렇게 나온 API를 REST라고 부른다.

 

REST API에서는 이전보다 주소 개수가 줄어든다. CRUD를 하나의 주소로 관리하고요청을 보낼 때 어떠한 요청을 보냈는지 파악 할 수 있는 메소드를 넣어 관리한다.

 

이 메소드는

Creat : POST

Read : GET

Update : PUT(전체) / PATCH(일부)

Delete : DELETE

 

로 구분된다.

 

 

 

--

 

클라이언트가 서버에게 요청을 보냈을때 서버는 다음과 같이 생각한다

'비밀번호가 틀렸으니 다시 입력하도록 해야지'

'요청을 보낸 사용자가 가입된 사용자인가?'

'작성글에 부적절한 내용이 포함되지않았는가?' 등..

 

이러한것들을 확인해서 서버는 '잘했어!' 혹은 '틀렸어 ! 다시해줘'를 반환해야한다.

이러한 입력들을 개발자가 관리해야하는데 잘했어는 good, 잘했어, 잘했습니다, 이상 없음 등의 여러가지 언어로 표현될 수 있고, 이렇게 사람마다 다른 표현을 정의한다면 컴퓨터는 혼란에 빠지게 된다.

 

따라서 개발자들은 명확한 숫자로 이것들을 정의하기로 한다.

크게 '문제없음'은 200번대 코드(201,202...등) '요청에 문제가 있음'은 400번대 코드(401,404...등), '서버에 문제가 있음'은 500번대 코드(500,501...등)으로 정의되었다.

 

우리는 이 코드들을 통해 문제의 발생여부와 원인을 쉽게 파악 할 수 있게된다.

 

 

 

--

 

우리는 지금까지 클라이언트와 서버 두개로 이루어진 시스템을 보았다.

하지만 한 컴퓨터에 여러 소프트웨어가 함꼐 있는 경우가 있다. 예를들어 내 컴퓨터에서 '번역기'라는 소프트웨어를 개발했다고 하자. 이때 A라는 소프트웨어가 이 '번역기'라는 기능이 필요하게 된다. 이 때 내가 이 '번역기'를 A에게 제공하고 싶다면 API를 사용하여 이 소프트웨어를 사용할 수 있다. 이게 Open API의 개념이다.

 

 

 

 

참고-비전공자를 위한 이해할 수 있는 IT지식

'개념정리' 카테고리의 다른 글

로컬스토리지/세션스토리지/쿠키  (0) 2021.05.01
GET과 POST  (0) 2021.02.15
API란?  (0) 2021.02.15
★(기본기 다지기)객체지향언어란?  (2) 2021.01.29