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
value는 Park 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으로 활용가능
'IT도서 > 비전공자를 위한 이해할 수 있는 IT지식' 카테고리의 다른 글
IT도서 : 비전공자를 위한 이해할 수 있는 IT지식(5) : 애플리케이션 (0) | 2021.09.20 |
---|---|
IT도서 : 비전공자를 위한 이해할 수 있는 IT지식(4_1) : 번외) 개발자들의 대화 (0) | 2021.09.20 |
IT도서 : 비전공자를 위한 이해할 수 있는 IT지식(3) : 네트워크, 서버, 클라이언트 (0) | 2021.09.14 |
IT도서 : 비전공자를 위한 이해할 수 있는 IT지식(2) : 프로그래밍 언어 & 운영체제(OS) (0) | 2021.09.14 |
IT도서 : 비전공자를 위한 이해할 수 있는 IT지식(1) : 오리엔테이션 (0) | 2021.09.14 |
댓글