본문 바로가기
IT 개인 공부/Web

프레임워크 vs 라이브러리 vs API

by Libi 2021. 8. 30.
반응형

개발자라면 프레임워크, 라이브러리, API를 모두 들어봤을 것이다.

다른 개념이지만 헷갈릴 수 있는 요소를 충분히 가지고 있기 때문에 애매하게 알고 넘어간다면 누군가 물어봤을때 대답하는데 있어 난처해지는 상황이 발생할 수 있다.

따라서 이들에 대해서 정리해보도록 하자.

 

프레임워크

  • 범용 기능들을 제공해줌으로써 애플리케이션을 개발하기 쉽도록 해주는 소프트웨어이다.
  • 덕분에 개발자는 핵심 로직에만 집중할 수 있음
  • Java로 Web 애플리케이션을 개발할 경우 Servlet 관련 로직들을 구현해야 하지만, Spring 프레임워크를 사용하면 이러한 부분들을 추상화시키고 @RequestMapping 같은 기능으로 쉽게 구현할 수 있게 편의성을 제공해줌
  • 제어의 흐름을 개발자가 아닌 프레임워크가 가지고 있음
  • 즉, 프레임워크가 개발자가 작성한 코드를 제어하고 대신 실행
  • 대표적인 프레임워크로 Java 기반의 Spring, Python 기반의 장고, Javascript 기반의 노드 JS가 존재

 

라이브러리

  • 개발자가 사용할 수 있는 API들을 종류나 목적에 따라서 나누어 정의한 API 묶음
  • 재사용 가능한 코드들의 집합
  • 정렬 알고리즘을 사용할 때 직접 구현해서 사용해도 되지만 이는 상당히 번거로움
  • 실제로 우리는 정렬이 필요할 경우 java.util 패키지에 존재하는 정렬 메서드를 사용함
  • 이처럼 자주 사용될 수 있는 기능들을 구현하여 모아놓은 것이 라이브러리
  • 또한, 직접 sort() 메서드를 가져와서 실행하는 것처럼 개발자가 직접 제어의 흐름을 담당
  • 프레임워크와 라이브러리의 가장 큰 차이점

 

API

  • Application Programming Interface의 약자로써 응용프로그램에서 사용할 수 있도록 운영체제나 다른 프로그램이 제공하는 기능을 제어할 수 있게 만든 인터페이스
  • 인터페이스이기 때문에 구현 로직은 없고 사양만 정의되어 있음
  • 사람 - 리모컨(API) - TV 관계를 생각하면 쉬움
  • 구글 지도를 사용하려면 구글 지도를 사용하는 로직을 구현할 필요 없이 구글 지도 API로 요청해서 사용
  • 실제로 어떻게 구현되어 동작하는지는 알 필요 없으며, 사양에 맞게 적절히 요청하면 됨
  • 즉, 두 프로그램을 연결해주는 다리 역할
  • 라이브러리와 API의 차이는 구현 로직의 유무

 

 

 

[ Reference ]

· https://www.youtube.com/watch?v=_j4u4ftWwhQ

 

반응형

댓글