api api 많이들 쓰는데, 더이상 헷갈리게 둘 수 없어 정리하고자 한다!
API를 먼저 개념정리를 한 문장으로 한다면,
한 프로그램에서 다른 프로그램으로 데이터를 주고받는 방법
이라 할 수 있다.
내가 좋아하는 유튜버 코딩애플에서는 API를 '메뉴판'이라고 설명한다.
식당에는 사장, 점원, 손님이 있다. 손님은 메뉴판을 보고 메뉴를 고르고, 사장은 손님이 주문한 메뉴에 맞게 음식을 만든다.
메뉴판이 API 리스트라 할 수 있고, 사장이 API를 실행하는 서버라 할 수 있고, 점원이 이 손님과 사장을 매개하는 존재가 된다.
실제 예를 들어 본다면, 카카오 로그인 api를 이용하여 카카오로 로그인하는 기능을 쉽게 구현할 수 있다. 이 외에도 네이버 api, 공공데이터포털 api 등이 있다.
API에 대해 알아보다가, 많은 분 들께서 라이브러리와 프레임워크와 함께 비교하여 정리해 두신 것을 보게 되었다. 나도 마찬가지로 정확하게 차이점을 이해하고 있는 것이 아니기 때문에 정리해보고자 한다.
나무위키에 따르면,
소프트웨어의 구성요소 중 한가지로, API를 기반으로 대상 환경(플랫폼)에서 바로 실행될 수 있도록 모듈화된 프로그램 모음
이라고 한다.
라이브러리를 직역하면 '도서관'이다. 말 그대로, 여러 기능을 모아둔 것이다. 객체나 함수등의 형태의 자주 사용되는 기능들이 라이브러리로 묶여있으면, 필요할 때마다 사용자가 직접 호출하여 사용할 수 있다.
jQuery,
pandas, matplotlib
응용프로그램이나 소프트웨어의 솔루션 개발을 수월하게 하기위해 제공된 소프트웨어 환경
말 그대로 잘 짜여진 '틀'이라고 생각하면 편하다. 사용자는 틀 밖을 벗어날 수 없고, 짜여진 규칙 대로 작성해야 한다. 이것이 라이브러리와의 큰 차이점이다. 라이브러리는 사용자가 능동적으로 사용할 수 있으나, 프레임워크에서는 수동적으로 사용하여야 한다.
Vue, React, Angular
django, flask
(*React는 라이브러리지만 프레임워크처럼 쓰인다)
파이썬에서는 모듈, 패키지라는 용어가 있길래, 간단하게 정리해보았다.
전역변수, 함수, 클래스 등을 모아놓은 파일 .py
기능적으로 동일하거나 동일한 결과를 만드는 모듈들의 집합 또는 폴더. 종종 라이브러리라고도 불린다.