거북이처럼 천천히

API 본문

생각 정리

API

유로 청년 2022. 5. 11. 21:41

1. API (application programming interface)

 - 클라이언트, 서버와 같은 서로 다른 프로그램에서 요청(request)와 응답(response)을 주고 받을 수 있게 만든 체계

 - 어떤 소프트웨어가 다른 소프트웨어의 기능을 사용하기 위해 주소로 요청을 보내면 응답을 해주는 소프트웨어끼리의 

   체계

 

 1.1. API는 왜 필요한가?

   - 클라이언트가 서버에게 서로 다른 요청(request)한다면 서버는 어떤 요청(request)이 "메세지를 달라"이며,

     어떤 요청(request)가 "로그인 시켜줘"인지를 알 수 없다. 따라서 요청(request)을 구분할 수 있도록 하는 '체계'

     가 바로 API이다.

 

 1.2. API의 동작 과정

   - 서버쪽에서 사전에 "서버주소/A"로 요청하면 "로그인 기능"을 수행할 것이며, "서버주소/B"로 요청하면 "회원가입

     기능"을 수행할 것이라고 정해둔다면 클라이언트는 본인이 원하는 기능을 수행 할 수 있는 IP 주소로 요청하게 된다.

   - 서버는 사전에 정의한 IP주소로 요청이 들어오면 그에 해당하는 응답을 할 것이며, 동작이 정상적으로 이루어졌는지

     등을 나타내는 HTTP status code과 함께 넣어 응답할 것이다.

 

 

 1.3. CRUD 

   - 클라이언트가 서버에게 원하는 것을 얻기 위해서 작성하는 요청(request)에는 크게 4가지 요소로 구분 가능하다.

   - C(Create), R(Read), U(Upate), D(Delete)

 

   1.3.1. Create

       - 클라이언트가 서버에 사진, 동영상 등의 파일을 올리는 요청

   1.3.1. Read

       - 클라이언트가 서버로부터 데이터들을 불러오는 요청

   1.3.1. Update

       - 클라이언트가 서버에 있는 데이터의 일부 혹은 전체를 수정해달라는 요청

   1.3.1. Delete

       - 클라이언트가 서버에 있는 데이터를 삭제해달라는 요청

 

   - 큰 틀에서 보면 대부분의 요청(Request)는 CRUD, 이 4가지 요청에 속하며, 개발자는 CRUD 관점에서 데이터를 

     바라봐야 할 필요가 있다.

   - CRUD 요청은 각각의 주소를 가지며, 예를 들어 create 요청은 '서버 주소/create'로 요청보내야 하며, read 요청은 

     '서버 주소/read'로 요청보내야 한다. 클라이언트가 원하는 요구사항에 맞춰 정확한 주소로 요청보낸다면 서버는 

     listening하다가 요청이 들어오면 그에 맞는 응답을 하게 된다. 

 

 

 1.4. REST(Representational State Transfer) API

 - CRUD별로 서로 다른 주소가 존재한다면 주소가 너무 많아져서 관리하기 힘들고, 기능이 겹쳐 오류가 발생할 수 있다.

 - 이를 위해 체계적인 API라는 사회운동이 발생하였으며, 그런 API를 'REST API'라고 부른다.

 - REST API를 이용하면 CRUD 요청을 하나의 주소로 관리할 수 있는 장점을 갖는다.

 - CRUD 요청을 하나의 주소로 관리하는 대신에 요청할 때, 클라이언트가 어떤 요청을 보냈는지 파악할 수 있는 스티커 

   (=메소드, Method)를 같이 서버에게 전달한다. 

 

  • Create(생성해 줘) : POST
  • Read(불러와 줘) : GET
  • Update(바꿔 줘) : PUT(전체)/PATCH(일부)
  • Delete(지워 줘) : DELETE

 

 

 1.5. HTTP status code

 - 서버는 클라이언트로부터 요청(request)를 받으면 그에 대한 응답(response)를 하게 되는데, 이 과정에서 서버는 

   클라이언트에게 요청-응답 과정에 대한 결과를 2가지 경우로 나누어 보내게 된다. 

 - 요청-응답 과정이 정상적으로 작동하였다면 '잘 됐어'라는 의미에서 200번대 코드로 표현

 - 문제가 발생한다면 '잘 안 됐어'라는 의미에서 400번대(=클라이언트의 요청에서 문제 발생)와 500번대(=서버에서 

   문제가 발생)로 나누어 표현

 

 

 1.6. SDK(Software Development Kit)

 - 소프트웨어를 개발할 때 도움을 주는 '디른 소프트웨어'

 

'생각 정리' 카테고리의 다른 글

DNS - Part 2  (0) 2022.05.13
DNS - Part 1  (0) 2022.05.12
Domain Name  (0) 2022.05.12
HOST  (0) 2022.05.12
JSON  (0) 2022.05.11