study hard!

API : Application Programming Interface 와 Protocol

Hits: 262

우선 API 를 듣고 한번쯤 스트레스를 받으셨을 법 한 문장을 하나 이야기 해 볼까요~?

아니..저쪽에서 API를 제공을 안 해 준다는데 무슨수로 개발을 한답니까~? 유료 결제를 하던가 테스트 환경은 없다잖아요~!!

라고 이야기 하는 것을 들어보신 적 있으신가요 ㅎㅎ? 뭐.. 들어보셨어도~ 아니어도 오늘 알려 드릴테니 상관은 없지만~~~~ API가 조금 생소 하시다면 혹시 Interface는 한번쯤 들어보셨을 듯 합니다~

Interface 라는 건 서로 다른 시스템 간에 소통(Communication) 하기위한 상호 작용 방식 입니다….H/W 에서도 많이 사용하는 용어죠~? USB, C-Type 등등 H/W 에서도 많이 적용된 개념입니다.

제….책상만 해도 엄청….ㄷㄷㄷ

USB를 연결하면 기기와 기기들이 각자 정해진 기능을 합니다, 외장HDD라면 저장공간을 활용할 수 있게 연결됩니다, 연결된 PC에서는 외장HDD를 나의 공간처럼 복사하고 저장하고 삭제할 수 있습니다 이런 개념을 바로 S/W로 가져가 볼까요~?

우리가 어떤 프로젝트에서 회원가입을 만들고 있다고 가정 해 볼게요~ 그런데 고객님의~ 요청사항 때문에 간편 로그인도 개발해야 하는 상황이에요….SNS계정이나 네이버, 구글, 카카오 등등이 있죠~?

그럼 우리가 만드는 S/W와 네이버/구글/카카오 등과 Interface를 해야 하는 상황입니다, 당연하게도 회원 정보에 대한 Interface를 해야 하기 때문에 우리가 주어야 하는 항목과 계정을 제공하는 쪽에서 주어야 하는 값들이 있겠죠~?

Interface ?????????????????

흠….아무튼 ㅋㅋㅋ

API는 S/W or H/W 간의 데이터를 주고 받는 방법!

이정도로 정리하면 될듯 합니다, 이는 역시 ….Software와 Hardware가 서로 제공을 해야지…성립이 됩니다.

만약에 내가 아무리 네이버 아이디를 이용해서 로그인을 하고 싶어도 네이버에서 ID를 다른 서비스에 연동하게끔 해 주는 사용자 ID 제공 API가 없다면 사용할 수 없는 것이죠~+_+

API의 종류는 무궁무진 합니다.

NAVER에서 제공하는 API 신청화면
Google Calendar API를 이용한 휴대폰 일정관리

등등 facebook 친구목록 가져오기 instagram 등록하게 등등이 모두 API를 활용한 기능들 이라고 보시면 됩니다.

자 그렇다면!!! API가 서비스 간의 데이터를 주고 받는 방법을 말한다~~~ 라는건 이제 알겠는데 그럼 ?? 조금만 더 기술적인 이야기 말고 접근 할 수 있을까~~를 고민했을때 나오는 용어가 프로토콜(Protocol) 일듯 해서 API와 Protocol을 같이 정리 해 보겠습니다.

Protocol은 통신을 위한 규약(약속) 을 말합니다, 전송되는 데이터의 항목/순서/표현법 등을 정의합니다.

우리…흥민이 형이 손을 흔들죠~? 저건 굳이 한국말로 알아듣지 않더라도 인사하는겁니다 ㅎㅎ 저 동작과 같은 의미로 생각해 주시면 됩니다….의도는 인사인데 저기서 주먹을 쥔다거나….손가락 몇개를 접으면…의미가 크게…크..큰일나겠죠~?

이렇듯 API는 약속된 Protocol의 규약들이 존재합니다, 해당 규약들을 통하여 작동하며 인증되고 항목들의 값을 조정하면서 결과를 얻어오는 방식입니다.

Google Data APIs 문서 일부 발췌

기본 프로토콜에서 우측의 화면처럼 일정한 양식에 맞추어 값을 넣으면 내가 원하는 결과를 가져올 수 있습니다, Protocol은 API에서만 사용되는 용어는 아니고 IT전반적으로 사용되는 용어이기 때문에 어디에 프로토콜 정의서가 있냐는 이야기는 해당 시스템을 사용하기 위한 가이드 혹은 지침서가 있냐를 문의하는 거와 비슷하다고 보시면 됩니다.

웹 혹은 서비스 기획 파트에서 근무하시는 분들도 어느정도는 상식선에서 이해하고 계셔야 하는 부분이라고 생각됩니다, 내가 개발하기때문에만 필요한 것이 아니라 내 업에서 사용되는 가장 기본적인 상식이 될테니까요.

내가 기획서에 다른데서도 다 있다고 Facebook, Instagram, Twitter 아이콘을 그냥 문서에 넣는거와 실제로 저 3가지의 서비스의 API를 우리 서비스와 연동하는데 걸리는 시간은 절대 같지 않을테니까요…

한발 더 낳아가서 그러시는 분들은 없으시겠지만….아이콘 박아두고 저게 무슨 기능을 해야하는지 명시하지 않으시는 경우도 …. 가끔….뭐…가끔 있습니다…..그리니 사용자 입장에서의 API가 어떤 것들이 존재하는지 알고 가시는 것도 좋은 방법이라 생각해서 이렇게 오늘 알아봤습니다.

감사합니다.

Leave a Comment