API, 라이브러리, 프레임워크 정리-2

REST API란?

REST API : ‘네트워크’와 ‘웹’에 맞춰진 API 통신 아키텍처 REST를 잘 준수하는 API는 따로 ‘RESTful API’라고 부른다

REST API는 네트워크에서 ‘데이터’를 받아오기 위한 것이고 프로그램에서의 API는 ‘코드’, 나아가 코드뭉치인 라이브러리를 받아오기 위해 쓰는 것이다.

따라서 개발자 입장에서 구분하자면 HTTPRequest를 보내서 JSON 또는 XML 형식으로 데이터 묶음이 온다면 보통 ‘REST API’라고 보면 되고, 그게 아니고 기업에서 설명하는 방식대로 자신의 코드에 import하여 특정 함수나 메소드를 쓸 수 있다면 일반적인 의미의 API라고 보면 된다.

단순 데이터 열람을 위해 REST API를 제공하는 경우가 많으며, 여러 데이터 열람을 위한 공공 OpenAPI나 게임회사에서 제공하는 유저 전적, 승률, 게임 내 각종 기록들도 다 REST API로 오간다.

라이브러리

API를 바탕으로 대상 환경(플랫폼)에서 바로 실행될 수 있도록 모듈화된 프로그램 모음이다. 해당 라이브러리의 기능을 직접 호출하는 프로그램을 실행하거나, 사용자가 해당 라이브러리의 기능을 실행하는 API를 사용하는 프로그램을 직접 개발하면 실행할 수 있다. 자바에서는 보통 .jar의 형태로 배포되는 경우가 있다.

ex) JavaScript의 라이브러리에는 젤 인지도가 높은 JQuery가 있고,
    페이스북에서 만든 라이브러리 리엑트가 있다.

프레임워크

예를 들어, 웹 프레임워크는 ‘웹 서버’를 구현하기 위한 목적으로 만들어진 프레임워크다. 웹 서버를 구현하기 위해선 페이지 구현, DB 관리, 유저 인증, API 서버, 라우팅, 사이트맵, 세션 관리 등 여러 기능이 들어있어야할 것이다. 각 기능을 보유한 라이브러리들을 한데 묶어 담은 것이 바로 프레임워크라고 보면 된다.

제일 큰 차이점은, 라이브러리는 프로그래머가 호출하며, 프레임워크는 프레임워크 자신이 프로그래머의 코드를 호출한다는 것이다. 또한, 일반적인 API는 전체 제어 구조를 호출하는 쪽에서 원하는대로 진행할 수 있지만, 프레임워크는 특정 목적을 벗어나면 기능하지 않는다.

API와 라이브러리의 차이

구현 로직의 유무에 따라.

API: 컴포넌트를 사용하는 규약 및 호출을 위한 수단으로써 구현 로직이 필요하지 않다. 라이브러리: 컴포넌트 자체, 구현 로직이 존재한다.

비유를 하자면, 라이브러리는 도구 자체이고 API는 "도구 주세요!"라고 요청하는 것이라 볼 수 있다.

라이브러리와 프레임워크의 차이

응용프로그램의 흐름 주도권을 누가 가지고 있는지, 누가 누구를 컨트롤하는가에 따라.

라이브러리: 개발자가 코드를 컨트롤합니다. 
즉, 개발자가 라이브러리를 호출한다

프레임워크: 개발자가 프레임워크의 규칙을 따라 코딩을 합니다. 
즉 프레임워크가 개발자를 호출한다.

출처(나무위키)