API가 무엇인가..? 쉽게 이해하자!

양주영·2021년 9월 7일
0

programming

목록 보기
1/1

API란 무엇일까?

먼저 사전적 정의를 알아보자.

API(Application Programming Interface 애플리케이션 프로그래밍 인터페이스, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.

Application Programming Interface...? 프로그래밍언어...제어...인터페이스..!?
흠.. 그래서 API가 뭐라구요..?

정리하자면,

API는 한 프로그램에서 다른 프로그램으로 데이터를 주고 받기 위한 방법이다.


이해를 돕기 위해, 식당 메뉴판을 예로 들 수 있다. 식당 내 손님은 커스텀으로 음식을 주문하는 게 아니라 메뉴판을 보고 메뉴판에 적힌 메뉴를 주문한다.
여기서 메뉴판은 API와 같은 역할을 하고 있다고 볼 수 있다.

메뉴판 API 역할 : 식당과 손님 사이에서 음식을 주고받기 위한 방법 ( 여기서 방법은 그냥 코드를 말한다. 코드를 사용하며 주고 받는다. )

⭐️ 쉽게 말해 프로그램간 커뮤니케이션을 담당하는 기능
API해당 프로그램의 기능을 다른 프로그램이 쓸 수 있게 하는 것이 목적이다.


예시 :
웹툰 보내주는 프로그램(웹서버)어떻게 보여줄까?

    1. 먼저 메뉴판을 만들어줘야 한다.
      - 신과함께
      - 패션왕
      - 등등

    1. 웹툰 서비스 API : 웹툰 서버와 손님이 웹툰을 주고받기 위한 방법



API는 작성할 때 작성하는 법이 정해져 있다.


정확히 만드려면 세 가지 정보가 들어가야한다.

예 ) (GET요청)comic.naver.com/webtoon/detail?id=318995

    1. (GET요청)
      요청방식이 들어가야 한다. 데이터를 달라고 할 것인지 보낼 것인지에 대한 방식

    1. comic.naver.com/webtoon/detail
      무슨 자료 요청할지 (endpoint) / 어떤 데이터를 요청할 것인지 웹툰? 댓글?뉴스?

    1. id=318995
      자료요청에 필요한 추가정보/ 내 아이디, 이름, 몇 화 보고 싶은지 등등

+) 참고로, 웹의 경우 REST API라는 원칙에 따라 작성하면 좋다.


그렇다면 이제 유저 입장에서 생각해보자.
유저도 이러한 코드를 작성해서 데이터를 꺼내올 수 있다.

네? 전 코드를 못 짜는데요 ? 아냐 너 매일 하고 있어. 주소창에 적고 있잖아! 
  • 주소창 ➡️ API 요청 코드 짜는 곳이다. (GET 요청가능)

우리가 보이는 페이지 내의 버튼, 이미지 버튼, 링크 버튼 등등
Html 파일 안에다가 API 요청을 쉽게 할 수 있는 버튼들이 숨겨져 있다.
이 버튼을 누르면 저쪽으로 get요청 해주세요 등등 이런식으로 코드가 숨겨져 있는 거다.



API는 항상 public일 필요가 없다.


Public / private / Partner API

  • Public API : 누구나 사용가능한 공개 api

  • Private API : 사내에서 몰래쓰는 api

  • Partner api : 미리 정해둔 사람만 쓰는 api

웹 말고도 다른 곳에서도 API가 존재한다. 모든 프로그램은 api를 가질 수 있다.

Windows api : 윈도우 운영체제 기능들 사용 가능

Database 관리프로그램 api : db 입출력 기능들 사용가능

XX 프로그램 API : XX기능들 사용가능



📝 정리


  • API는 어렵고 복잡한 과정을 쉽게 전달받을 수 있도록 만들어주는 다리 역할을 해줌으로써 작업을 빠르고 간결하게 진행할 수 있다.

  • 개발자가 프로그램을 만드는데 필요한 어떤 기능을 직접 구현하지 않고 API 제공자들이 제공하는 데이터와 모듈 등을 갖다쓸 수 있게 해주는 게 API와 API 문서이다.

  • API가 공개되지 않았다면 쓸 수 없다. 또 공개 API라고 하더라도 호출 횟수가 많아지면 비용을 지불해야 할 수도 있다.




참조 :
https://www.youtube.com/watch?v=ckSdPNKM2pY
https://dev-dain.tistory.com/50

profile
뚜벅뚜벅

0개의 댓글