일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 와이어프레임
- 앱의 형태
- 네이버검색api
- 앰프리뷰트
- 페르소나
- 서버
- 코드스테이츠
- 집에어
- 프로토타입
- PMB
- flowchart
- UX
- 애자일
- 호텔 예약 수요
- 펫프렌즈
- 프로젝트 관리 도구
- 스크럼
- 스크럼가이드
- 서비스유형
- db
- 하이브리드앱
- 클라이언트
- 앱유형
- pm
- 챌린저스
- API
- 증가분
- 랜딩페이지
- 넷플릭스
- 퍼블리
- Today
- Total
보민님의 블로그
[코드스테이츠 PMB 11기]네이버의 오픈 API로 API 뜯어보기_W7D3 본문
API란
Application Programming Interface
API는 서버와 클라이언트가 서로 정보를 어떻게 주고받을지에 대해 미리 정의한 규칙으로 통신할 때 기반이 되는 역할을 한다. API는 식당의 점원으로 비유되기도 하는데 이는 우리가 음식을 고르면 점원이 주문을 받아 주문서를 요리사에게 요청한다. 요리사는 주문서를 보고 조리 후 완성된 요리는 점원에게 전달하고 점원은 다시 손님에게 전달해준다.
이처럼 API도 형식에 맞춰 요청을 하면 API가 클라이언트에게 전달하고 서버는 주문에 맞는 응답을 전달해준다.
아주 간단히 말하면 수많은 요청속에서 교통정리를 해주고 있다고 생각하자.
REST API란
Representational State Transfer API
REST API란 REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스를 뜻한다. REST는 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미한다.
즉, REST API는 웹상에서 사용되는 여러 리소스를 HTTP URI로 표현하고, 해당 리소스에 대한 행위를 HTTP Method로 정의하는 방식을 말한다. REST API를 이용하면 요청하는 바를 직관적으로 이해할 수 있다.
ex)http://도메인주소/boards/1/posts/2
게시판중에서 첫번째 게시판의 글들 중 두번째 글이라는 사실을 알 수 있다.
Http Method | CRUD | 기능 |
POST | CREATE | 생성 |
GET | READ | 조회 |
PUT | UPDATE | 갱신 |
DELETE | DELETE | 삭제 |
Open API란
말 그대로 공개된 API로 '누구나 쓸 수 있는 공개된 API'를 뜻한다. 정부의 공공데이터포털(www.data.go.kr)에서 국가의 다양한 데이터를 이용하거나 국내외 대기업에서 제공하는 Open API를 이용할 수 있다.
우리는 앱을 이용할때 로그인이 필요한 화면을 본 적이 있을 것이다. 이때 '카카오로 로그인하기', '네이버로 로그인하기' 로 간편하게 로그인할 수 있다. 카카오와 네이버의 어플이 아닌데도 어떻게 가능한 것일까? 이는 카카오와 네이버가 '로그인 API'를 제공했고 해당 앱이 네이버와 카카오의 API를 사용했기 때문이다.
Open API를 사용하면 개발시간과 비용이 줄어 사용자 입장에서는 이득이다. 하지만 왜 기업은 무료로 제공하는걸까.
기업이 무료로 API를 제공하는 이유
API를 공개함으로써 자사의 서비스가 타사의 다양한 서비스에 활용돼 고객데이터를 확보하고 이탈율을 줄일 수 있다. 또한 브랜드 이미지도 높일 수 있다.
Open API 기능과 구조 파악하기
Open API를 더 자세히 알아보기 위해 한가지를 정해 파악해보려한다.
살펴볼 API는 바로~ 네이버의 검색 API 중 네이버 블로그 검색 결과를 출력해주는 REST API 다. 네이버는 아래의 사진과 같이 많은 Open API 서비스를 제공한다. 그 중 검색 API를 선택한 이유는 네이버 블로그에 포스팅을 했는데 검색을 해도 내 글이 나오지 않아 왜 안나오는지 궁금했다. 제목을 똑같이 복붙해도 나오지 않았다. 가만안둬네이버그래서 API를 파악해보며 어떻게 설계되있는지 겸사 겸사 살펴보려한다.
네이버 블로그 검색 API란?
네이버 블로그 검색 결과를 출력해주는 REST API다. 비로그인 오픈 API이므로 GET으로 호출할 때 HTTP Header에 애플리케이션 등록 시 발급받은 Client ID와 Client Secret 값을 같이 전송해 주면 활용 가능하다.
아래의 이미지 출처는 모두 NAVER Devlopers의 자료입니다.
API의 기본 정보
검색 기능이기에 조회(READ)를 하는 행동으로 GET으로 호출한다는 것을 알 수 있다.
요청 변수
변수를 json형식으로 선언한다면 아래와 같이 데이터를 만들 수 있다. search_data라는 임의의 변수를 선언하여 그 안에 요청변수들을 키(key):값(value)로 담았다. 이 값들을 API를 통해 서버에 요청하면 '고양이'를 검색했을때의 블로그 검색결과 3건을 유사도 순으로 정렬해 받을 수 있다.
const search_data = {
query :'고양이', //검색 키워드
display:3, //출력 건수
start :1, //검색 시작 위치
sort :'sim', //정렬 유형 (sim:유사도 순)
}
출력 결과
에러 코드
네이버 뿐만 아니라 모든 서비스에서 공통적으로 4xx번대의 오류코드는 클라이언트 측의 오류고 5xx번대는 서버 내부의 오류를 나타낸다.
API 호출 예제
네이버의 블로그 검색 Open API를 어떻게 활용할 수 있을까?
국내의 지역 별 맛집을 소개하는 프로덕트를 개발한다 가정해보겠다. 국내의 맛집 후기들은 보통 구글보단 네이버로 검색을 하고 블로그 포스팅을 통해 사람들은 후기를 찾아본다. 아직 스타트업이기에 고객의 후기 데이터가 없을 때 프로덕트 내에서 네이버 블로그 검색 API를 활용해 자동으로 5개 정도의 네이버 블로그 포스팅을 표시하는 것을 생각해볼수 있을 것 같다.
Open API의 한계
Open API를 이용하면 개발 기간과 비용을 줄일 수 있다는 장점이 존재하지면 단점도 존재한다.
이미 만들어진 기능을 복붙해서 쓰는것이기에 내가 만드려는 프로덕트에 딱 맞지 않을 수가 있다. 편집이 불가능하고 정보를 보충할 수도 없다. 우리가 만들고자 하는 프로덕트의 목적을 잘 생각해 오픈API를 활용하여도 충분히 대체가 가능한지 아니면 자체적으로 API를 개발할 필요가 있는지 판단 후에 활용할 필요성이 있다.