API(+SDK), JSON ?

choi seung-i·2022년 3월 1일
0

공부로그

목록 보기
4/20
post-thumbnail

API(Application Programming Interface)

  • 클라이언트의 요청을 구분할 수 있도록 하는 체계
  • 운영체제 혹은 다른 애플리케이션과 상호 작용하기 위해 정의된 약속을 쓰는 인터페이스
  • API를 만들 때는 데이터를 주고 받는 기능도 들어가기때문에 API를 통해 요청과 응답을 주고 받을 때는 데이터도 같이 담긴다.

REST API

  • HTTPRequest를 보내서 JSON 또는 XML 형식으로 데이터 묶음이 온다면 보통 'REST API'
  • 일반적인 의미의 API와는 달리 REST API는 웹을 매개체로 이용하며 결과물도 단순 텍스트다보니 좀 더 광범위하게 사용되는 편 (ex. openAPI - 지도API, 날씨API 등)

REST ?

  • 네트워크 소프트웨어 아키텍쳐 (네트워크에서 통신을 구성할 때 이런 구조로 설계하라는 지침)
  • REST를 잘 준수하는 API는 따로 'RESTful API'라고 부른다.
  • REST 요소를 지키지 않은 HTTP API는 그냥 '웹 API'나 'HTTP API'로 불러야 한다.



API를 공부하다가 SDK에 대해 찾아보게 되었다.

API 와 SDK 의 차이

API < SDK

SDK : 해당 소프트웨어를 만들때 필요한 것들이 들어있는 키트
API : 키트 안에 들어있는 일부, 작은 부품같은 개념으로 API를 활용하여 다양한 것을 만들 수 있음

SDK (Software Development Kit)

  • 소프트웨어 개발 키트로 소프트웨어 개발 시 API와 같이 SDK가 주요 도구
  • SDK를 통해 광고 및 푸시알림 등 다양한 기능을 추가하여 앱을 향상시킬 수 있음
  • API를 제공해주는 '다른 소프트웨어(SDK)'
    ex1) 구글에서 제공하는 지도SDK를 설치하면 내 소프트웨어에 구글 지도 기능을 넣을 수 있고, 이 SDK에서 제공해주는 API들을 통해 구글 지도에 요청을 보낼 수 있음
    ex2) IOS SDK를 다운로드하면 IOS애플리케이션을 만드는 데 필요한 모든 도구가 제공



클라이언트의 요청 4가지 요소 CRUD

  • 기획에서 CRUD관점에서 봐야하며, 만약 특정 기능이 없다면 기획의도가 명확한 이유있는 기획이어야 함

  • CRUD요청은 각각의 주소를 가진다. ( 서버컴퓨터 주소/각각의 주소 )

    CRUD ?

    C : Create , R : Read , U : Update , D : Delete
    ex) 타임라인에 사진을 올릴 경우
    Create: 올린다 , Read : 불러온다) , Update : 바꾼다 , Delete : 지운다

    RESTful API ?

    • 각각의 주소가 너무 많아지기 때문에 좀더 체계적으로 API를 관리하기위해 RESTful API라 부르는 사회운동(절대 규칙이 아닌)이 만들어짐
      • Create(자원생성) ⇒ POST
      • Read(자원 조회) ⇒ GET
      • Update(자원 수정) ⇒ PUT(전체) / PATCH(부분)
      • Delete(자원 삭제) ⇒ DELETE
    여기서 POST, GET, PUT, PATCH, DELETE를 메소드(함수)라고 부른다



JSON (데이터형식 중 하나)

  • 클라와 서버사이에서 요청/응답을 주고받을 때 필요한 데이터

  • 다양한 형식이 존재할 수 있지만 효율적으로 사용하기 위하여 가장 유명한 형식을 사용하기로 약속
    ⇒ 현재 가장 유명한 데이터 형식은 JSON

  • 단일 정보 불러올 때

{
	키1(Key): 값1(Value),
	키2(Key): 값2(Value)
}
// ex)로그인정보
{
	"id": "mschoise",
	"px": "a123456"
}
  • 여러 정보 불러올 때

{
	키1(Key): 값1(Value),
	키2(Key): 값2(Value),
	키3(Key): [3,4,5 ]
}
// ex)상품정보
{
	"category": "음료",
	"sort": "desc",
	"items": ["카페모카","카피라떼","아메리카노"]
}



컴퓨터의 응답

  • 컴퓨터의 응답은 2가지로 나뉨 [ 자세히보기 ]

    자주보는 응답

    성공 = 200번대
    실패 = 400번대(클라이언트의 요청에서 문제), 500번대(서버 문제)



공부하며 정리&기록하는 ._. 씅로그

profile
Front-end

0개의 댓글