기본적인 개발 지식들을 배우고 있는데 오늘은 API와 관련된 내용을 배웠습니다.
사실 아직도 어렵긴 한데 실제 공공에 제공되고 있는 API를 직접 보면서 어떤 식으로 구성되어 있고, 어떻게 기능하는지 공부삼아 살펴보려고 합니다.
API와 RESTful API란
먼저, API와 관련된 개념들을 살펴봅시다. API란 Application Programming Interface의 줄임말로, 서버와 클라이언트 사이에 요청을 더 정확하게 주고받을 수 있도록 만드는 체계라고 볼 수 있습니다. A라는 요청에는 A'라는 주소를 부여하여 클라이언트가 A에 대한 요청을 서버에게 하고 싶다면 A'라는 주소를 통해 요청을 보내게 되죠. 그러면 서버는 이 A'라는 주소를 바탕으로 원하는 정보를 바탕으로 정확하게 응답할 수 있겠죠?
API에서는 Create, Read, Update, Delete라는 4가지 요소인 CRUD를 바탕으로 데이터를 주고받습니다. 데이터를 신규로 생성하고, 불러오고, 바꾸고, 지우는 요청을 할 수 있는 것이죠. 요청을 주고받는 과정에서 앞서 언급한 A'와 같이 개발자 임의로 주소를 붙일 수 있습니다. 하지만 이렇게 되면 직접 개발한 개발자 외에는 해당 API가 어떤 내용인지 파악하기가 어렵고 그로 인해서 여러 가지 주소들이 중복되거나 문제가 발생할 수 있죠. 그래서 이러한 주소를 체계적으로 관리하기 위해서 RESTful API(Represnetational State Transfer API)가 만들어 집니다. API에 필요한 주소를 만들 때 다른 사람도 알아보기 쉽도록 특정한 양식으로 만들 것을 약속한 것이죠. 이 경우, 리소스는 동사형보다 명사형을 사용한다고 하네요.
CRUD | 예시 | RESTful API 요청 | 예시 |
Create(올려줘) | 서버주소/timelinecreate | POST(생성해줘) | POST/group/1/members/2 |
Read(불러와줘) | 서버주소/timelineread | GET(불러와줘) | GET/group/1/members/2 |
Update(바꿔줘) | 서버주소/timelineupdate | PUT/PATCH(전체/부분 바꿔줘) | |
Delete(지워줘) | 서버주소/timelinedelete | DELETE(지워줘) |
REST API를 사용한 카카오톡 소셜 API 구현 방법
저는 "프로필 가져오기" 부분과 관련된 API를 살펴보려고 해요.
카카오톡에서는 "프로필 가져오기'와 관련해서 어떤 기능을 제공하고 있을까요?
먼저, "프로필 가져오기"라고 하는 RESTful API를 사용하고 있어서 GET을 사용해서 불러오기 요청을 처리하고 있습니다.
앞서 요청을 하게 되면 그 결과(Response)로 다음과 같은 정보들을 불러올 수 있습니다. 우측에 Required X라는 부분을 보면 필수적으로 포함되는 정보는 아닙니다. 2021년 6월부터 프로필 정보가 닉네임과 프로필 사진으로 분리되어 제공되고, 각각에 대해 사용자가 '동의'를 해야 정보를 불러올 수 있어서 인 것으로 보입니다.
그래서 실제로 해당 API를 바탕으로 정보를 불러온 sample 화면을 봅시다!
먼저, 이런 요청을 클라이언트에서 보내게 되면, 앞서 보낸 요청이 성공했을 떄 아래와 같은 결과가 나오게 됩니다.
필요한 동의 항목에 모두 동의했을 경우, 이름, 프로필 사진, 프로필 썸네일에 대한 정보를 불러올 수 있습니다.
반면에 사용자가 모든 항목에 대해 동의하지 않은 경우에는 정보를 불러올 수 없는데요. 이렇게 정보가 없는 화면도 결과적으로는 요청한 정보값을 확인하고, 불러올 수 있는 정보를 모두 불러온 것이기 때문에 '성공적으로 응답한 결과'라고 볼 수 있습니다.
API 문서를 보고 나름대로 해석해 보았는데 맞는지는 잘 모르겠네요! ㅎㅎㅎㅎ
아무튼 조금 더 API를 살펴보면서 공부해봐야 겠어요!
API 출처
https://developers.kakao.com/docs/latest/ko/kakaotalk-social/rest-api
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
'도담한 Product Manager 성장기 > 내맘대로 분석 모음' 카테고리의 다른 글
'타입스(Types)'의 백로그를 관리한다 가정해보자 [W8D1&3_코드스테이츠 PMB 12기] (0) | 2022.06.29 |
---|---|
'당근마켓 관심목록 추가' 가능 다시보기 [W7D4_코드스테이츠 PMB 12기] (0) | 2022.06.28 |
모바일 웹 vs 웹 앱 vs 하이브리드 앱 vs 네이티브 앱 [W7D2_코드스테이츠 PMB 12기] (0) | 2022.06.24 |
'샤넬 공식 웹사이트' 프론트엔드 탐색하기[W7D1_코드스테이츠 PMB 12기] (0) | 2022.06.23 |
Kickstarter의 데이터 바탕으로 크라우드 펀딩 데이터 분석과 시각화해보기 [W6D4_코드스테이츠 PMB 12기] (0) | 2022.06.21 |
댓글