본문 바로가기
IT도서/비전공자를 위한 이해할 수 있는 IT지식

IT도서 : 비전공자를 위한 이해할 수 있는 IT지식(4) : API와 JSON

by Ulegi 2021. 9. 19.

API와 JSON

 

API 란??

클라이언트가 서버에 요청을 하면 => 서버는 요청에 따라 적합한 처리를 해서 응답

이때! 컴퓨터는 이 요청이 로그인인지! 메시지인지! 모르기 때문에,  구분할 수 있게 하는 체계가 바로 API

 

즉, API란 클라이언트와 서버와 같은 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만든 체계 / 약속

 

1. 서버는 주소에 따라 요청의 종류를 정해놓아야한다. 

ex) 서버주소/A 으로 요청이 오면 로그인 , 서버주소/B로 요청이 오면 메시지 전송 등

2. 클라이언트가 원하는 요청에 따라 다르게 요청 (정확히는 서버의 주소에 요청)

 

※ API는 서버 개발자가 개발하고, 클라이언트 개발자가 그 API를 사용

 

API의 기본 4가지 요청 : CRUD

C : CREATE : 올리다 (새 게시물 생성)

R : READ : 불러오다 (로드)

U : UPDATE : 바꾸다 (수정)

D : DELETE : 지우다 (삭제)

=> CRUD 요청은 각가의 주소를 가짐

ex) 서버주소/postcreate , 서버주소/postupdate

 

하지만!! 이렇게 하면 주소가 너무 많아지고 관리하기가 힘들어짐

=> RESTful API 의 탄생배경

 

RESTful API

- CRUD 를 하나의 주소로 관리

- 요청을 보낼 때 어떤 요청을 보냈는지 파악할 수 있는 메소드를 붙여 전송

 

RESTful API 의 5가지 메소드

C : CREATE : 생성 - POST

R : READ : 불러오다 (로드) - GET

U : UPDATE : 바꾸다 (수정) - PUT(전체 수정) / PATCH(일부 수정)

D : DELETE : 지우다 (삭제) - DELETE

 

HTTP 상태코드

클라이언트가 서버에 요청하면 서버는 응답코드(HTTP 상태코드)로 상황을 설명

ex)

A를 알려줘! => A가 없다! 

B를 알려줘! => 너는 읽기 권한이 없다!

하지만 모든 표현에 하나하나 대응하기에는 곤란함

=> 응답코드의 탄생배경

 

잘 됐어! 라는 응답코드 : 200번대 코드 (201, 202, ......)

잘 안됐어! 라는 응답코드

- 클라이언트의 요청에 문제가 있다 : 400번대 코드 (ex, 404 : 정의되지 않은 요청)

- 서버에 문제가 있다 : 500번대 코드

 

 

API는 서로 다른 소프트웨어의 기능을 사용하기 위해서도 사용!

ex) 어떤 게임 소프트웨어가 한/영 번역기능을 사용하기 위해서 한/영 번역 소프트웨어의 API를 사용

 

SDK (Software Development Kit)란?

- API를 제공해주는 다른 소프트웨어

- 개발자에게 미리 만들어진 도구를 제공함으로써 개발 과정을 더 쉽게 제공

ex) 구글 지도 SDK

 

JSON

클라이언트와 서버가 통신할 때, 요청이나 응답이 모두 형식이 다르면 그를 처리하기 위한 각자의 코드가 필요

=> 비효율

그래서 데이터를 주고 받을 때 형식이 탄생! (XML, JSON 등)

 

최근에는 개발자들은 클라이언트와 서버가 요청과 응답을 주고 받을 때 필요한 데이터들을 JSON형식으로 주고 받음

 

JSON의 형식

// JSON 형식
{
    key1 : value1,
    key2 : value2
}

- 중괄호로 시작

- key, value로 구성

- 키와 값은 : 으로 구분

// ex) 로그인 요청
{
    "id" : "Park Ji Sung",
    "pw" : "pw123"
}

여기서 key id, pw

valuePark Ji Sung, pw123

 

만약 한번에 여러 데이터를 가져오려면? => 배열 사용 ( ex, 메뉴 : [스테이크, 파스타, 라자냐] )

// JSON 형식
{
    key1 : value1,
    key2 : value2,
    key3 : [value3, value4, value5]
}

 

Git BooK (깃붓)

깃 북은 깔끔한 API문서 작성을 도와주는 서비스

 

Open API 

몇 서비스들은 서버가 제공하는 다양한 기능들을 일반인이 사용할 수 있도록 오픈해둠

그리고 개발자들은 서비스가 제공하는 API를 보며 그 기능을 사용

이 API를 Open API 라고 함

 

Open API를 공개하는 이유

ex) 네이버의 API with 맛집 검색 어플리케이션

검색 결과에 네이버 블로그 후기 => 어플리케이션을 통한 네이버 방문 => 네이버 블로그 영향력↑

or

API를 유료로 공개 => BM으로 활용가능

 

 

 

 

 

 

 

 

 

 

 

 

댓글