본문 바로가기

Etc.

API vs Library vs Framework

차이에 대해 정확히 알고있다고 생각했는데 말로하려니 정리가 안돼서
[10분 테코톡] 🙆‍♀️티버의 API vs Library vs Framework을 다시 한 번 보고 글로 정리하면서 확실히 기억하려고 한다. API vs Library vs Framework 의 차이를 쉽게 이해하려면 [10분 테코톡] 🙆‍♀️티버의 API vs Library vs Framework 영상을 먼저 보는 것을 추천한다.👍


API(Application Programming Interface)

응용 프로그램에서 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스

프로그램 간에 연결을 시켜주는 다리라고 생각하면 쉽다.

특징

  • uri 를 통해 데이터를 받는 형태가 많음
  • 구현과 독립적으로 사양(사용법)만 정의되어 있다
  • API에 따라 접근 권한이 필요할 수 있다.
  • ex) Kakao Map API, java API, 여러 기업들의 오픈 API

어떤 기능이 필요할 때 API를 찾아서 사용한다.


Library

단어 뜻 그대로 도서관으로 생각해보면 쉽다. 필요한 책이 있으면 대여하기 위해 도서관에서 빌려오는 것처럼, 응용 프로그램 개발을 위해 필요한 기능을 가져다쓰는 소프트웨어

특징

  • 독립성을 가진다. 다른 라이브러리를 의존하지 않는다.
  • 응용 프로그램이 능동적으로 라이브러리를 사용한다. 다시 말해서 개발자가 개발할 때 필요한 부분에 능동적으로 라이브러리를 호출해서 사용한다.
  • ex) Lombok, jQuery

Framework

응용 프로그램이나 소프트웨어의 솔루션 개발을 수월하게 하기 위해 제공된 소프트웨어 환경. 단어 뜻 그대로 틀 안에서 일을 한다고 생각하면 쉽다.

Spring Framework를 사용한다면 -> 컨트롤러 생성, 컨트롤러에 비즈니스 로직 작성,
Framework 없이 was를 만들어 사용한다면 -> Socket, InuputStream, OutputStream, Request, 컨트롤러 맵핑, 컨트롤러 생성, 비즈니스 로직 작성

Framework가 없으면 처리해야할 로직이 엄청나게 많다. Spring Framework 덕분에 개발자는 비즈니스 로직에 집중할 수 있었던 것이다.

특징

  • 상호협력하는 클래스와 인터페이스의 집합
  • 응용 프로그램이 수동적으로 프레임워크에 의해 사용된다.
  • Junit, Spring Frameowrk

정리

개발자가 라이브러리를 호출하는 코드를 작성함으로써 라이브러리를 사용했었다면 프레임워크는 프레임워크가 처리할 거 하면서 중간중간에 개발자가 작성한 코드를 호출함으로써 프레임워크라는 틀 안에서 개발자가 작성한 코드를 사용하는 것.

즉 다시 말해서 내가 만든 응용 프로그램이 수동적으로 사용되느냐, 능동적으로 사용하느냐에 라이브러리와 프레임워크 차이점이 있는 것

마지막으로 정리하자면

  • Library와 API 차이점은 구현 로직의 유뮤이다.
  • Library와 Framework의 차이점은 응용 프로그램의 흐름 주도권을 누가 가지고 있냐의 차이

'Etc.' 카테고리의 다른 글

Springboot + vue.js 업로드한 pdf 파일 열기, 다운로드  (2) 2021.07.01
Github API issue + JS로 댓글 기능 만들기  (0) 2021.06.01
HTTP  (0) 2020.09.24
HTTP Cache  (0) 2020.09.11
TDD 정리  (0) 2020.02.17