Open API

Tag “Study”

이 ‘study’ 태그의 목적은 공부하다가 모르는 것이나, 더 자세히 알고 싶은 내용이 생겼을 때 포스팅 하기 위한 태그이다.


Open API

Java spring강의를 듣고 있는데 API가 뭔지 자꾸 감이 안와서 내가 직접 체험하면서 깨닫기 위해 ‘weather open api’를 사용하며 글을 쓰려고 한다.


API(Application Programming Interface)

진짜 너무 와닿지 않아서 많은 블로그 글과 위키피디아, 나무위키 등을 봤다. 한 블로그에서는 이렇게 써놨다.

프로그램간 커뮤니케이션을 담당하는 기능

저 말 뜻을 잘 이해하기 위해 일단 API를 구성하는 단어를 하나씩 살펴보자.

이렇게 위 3개의 단어를 본 후 다시 API를 봐보자. Application의 Programming을 위한 Interface 이다. 따라서 ‘사람’이 아닌 프로그램간의 커뮤니케이션을 담당하는 것이다.


어떤 블로그 에서는 비유적으로 설명했다. 한번 보도록 하자. 레스토랑의 경우,

  1. 점원이 메뉴판을 갖다준다.
  2. 손님은 메뉴판에서 원하는 메뉴를 고른다.
  3. 점원은 손님으로부터 받은 메뉴를 요리사에게 요청을 한다.
  4. 요리사로부터 음식을 받고 점원은 손님에게 음식을 준다.

여기서 점원의 역할은 손님에게 메뉴 알려주기, 요리 요청, 완성된 요리 전달 이다. API는 점원과 같은 역할을 한다. API는 손님(프로그램)이 주문할 수 있게 메뉴(명령 목록)를 정리하고, 주문(명령)을 받으면 요리사(응용프로그램)와 상호작용하여 요청된 메뉴(명령에 대한 값)를 전달한다.

쉽게 말해, API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체 이다.


이번엔 조코딩 에서 들었던 내용이다.

이 때 Front-end가 Back-end에게 요청을 할 때 사용규칙에 맞춰 요청을 해야한다.

그 사용 규칙을 제공하는 것이 바로 API이다.


자 이제 어느정도의 느낌은 알게됐다. 결국엔 API란 내가 만든 프로그램이 다른 응용프로그램과 커뮤니케이션 하기 위한 매개체였다.

하지만 이렇게 글로 대충만 아는 것 보단 직접 사용해보면 더 재밌기에 이번 포스팅에서는 아주아주 간단하게 open api를 써보려고 한다.


Open API

누군가 Back-end를 만들어 놓았고, 여기에 주소와 사용규칙을 공개한 것을 말한다. 우리는 이 back-end의 주소와 사용규칙만 알면 front-end만 만들어도 얼마든지 요청하고 데이터를 가져와서 쓸 수 있다. 이렇게 공개된 back-end를 이용하고, front-end만 만들어 쓰는 것을 Serverless라고 한다.

결론적으로 사용규칙에 맞게 요청하면, 복잡한 기능은 이미 만들어진 back-end에서 처리하고 나온 결과만을 갖고 front-end에 쓸 수 있다.


Weather API

블로그 글을 참고하여 서울의 날씨를 받아오려 해봤다. weather open API에서 가입을 한 후, API Key를 받았다. 그 후 나는 Current Weather Data를 사용하려고 했다.

studyAPI_1

이렇게 위 사진처럼 사용방법이 있다. 브라우저에서 해당 API call 주소를 입력하면,

studyAPI_2

위 주소창에서 빨간색 박스 부분에 원하는 도시의 이름을 적어서 브라우저에 입력하면 된다. 원하는 도시의 날씨가 위 사진과 같이 json형태로 나온 것을 볼 수 있다.(구글 크롬의 JSON View를 설치했습니다) 검은색 부분은 API Key를 입력한 것이다.

여기서 아까 찾았던 API 내용을 대입해 볼 수 있었다. 바로 저 주소창의 서버 자체가 누군가 만들어 놓은 Back-end인 것이다. 우리는 그것을 사용규칙(주소창에 도시이름이랑 API Key넣기)을 따라서 요청을 했고, 요청된 정보(Json format)를 전달 받을 수 있었다.

나중에 이것을 사용하여 뭔가를 만들기에 좋을 것 같다. 생각나는건 웹 페이지에 띄우는 것 정도…?

내일 시험인데 새벽4시까지 포스팅 하고 있는 내 인생 ㄹㅈㄷ


마치면서

Javascript로 웹 페이지에서 구현은 안했지만, 그래도 API가 뭔지를 대략적으로 알았다. 나중에 누군가가 나에게 API가 뭔지 물어본다면, 나는 자신있게

프로그램과 프로그램이 소통하기 위한 매개체

라고 할 것 같다. 물론 아직 공부한 것도 많이 없지만, 나중에 차차 알아가더라도 오늘 공부한 것은 나중의 초석이 되길 바란다.


참고 사이트

https://m.blog.naver.com/azure0777/220749852024

https://namjackson.tistory.com/27

http://blog.wishket.com/api%EB%9E%80-%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85-%EA%B7%B8%EB%A6%B0%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8/

https://www.youtube.com/watch?v=QPEUU89AOg8&t=356s