Web

API vs Library vs Framework

TedDev 2024. 9. 9. 08:40
728x90

API, 라이브러리, 프레임워크는 소프트웨어 개발에서 자주 사용되는 용어이지만, 각 개념은 서로 다른 역할과 특징을 가지고 있다. 이 세 가지를 이해하는 것은 개발자에게 매우 중요한데, 각 개념을 일반적인 지식과 함께 쉽게 살펴보겠다.

 

API (Application Programming Interface)

API는 두 프로그램이 서로 소통할 수 있도록 해주는 인터페이스이다. 쉽게 말해, 프로그램들이 특정 기능을 요청하고 그에 대한 응답을 받는 방식으로 동작하는 '다리'라고 볼 수 있다.

예시

  • 지도를 활용한 서비스를 만들고 싶다면, 직접 지도를 개발하는 대신, 구글 맵 API와 같은 서비스를 통해 지도를 불러올 수 있다. API를 통해 다른 프로그램의 기능을 사용할 수 있기 때문에 개발자는 시간을 절약하고 보다 정확한 기능을 구현할 수 있다.

주요 특징

  • 인터페이스 : 프로그램들이 서로 연결되도록 해줌
  • 독립성 : 각 프로그램의 내부 구현은 알 필요 없이 API를 통해 필요한 기능만 사용할 수 있음
  • 오픈 API : 많은 기업이 오픈 API를 제공해 누구나 사용할 수 있도록 함

 

라이브러리

라이브러리는 개발에 필요한 함수와 기능을 모아놓은 일종의 도구 모음집이다. 개발자는 이 도구를 필요할 때 호출해 원하는 기능을 구현한다. 중요한 점은 개발자가 능동적으로 라이브러리를 호출해서 사용하는 것

예시

  • 학생들의 성적을 계산하는 프로그램을 만들 때 라이브러리를 사용해 평균값을 계산하거나 데이터를 처리하는 함수를 불러올 수 있다. 개발자가 직접 모든 기능을 구현할 필요 없이 필요한 기능을 이미 구현된 라이브러리를 통해 가져와서 사용할 수 있다.

주요 특징

  • 재사용성 : 자주 사용되는 코드나 기능을 묶어 놓았기 때문에, 필요할 때마다 호출해 재사용할 수 있음
  • 독립성 : 다른 라이브러리에 의존하지 않고 독립적으로 작동
  • 능동적 사용 : 개발자가 필요할 때 호출해서 사용

 

프레임워크

프레임워크는 특정한 구조와 규칙을 제공해 소프트웨어 개발을 쉽게 해주는 뼈대이다. 프레임워크 안에서 개발자는 규정된 방식대로 코드를 작성하면 되며, 전체적인 흐름과 구조는 프레임워크가 제어한다. 즉, 개발자는 비즈니스 로직에만 집중하고, 나머지는 프레임워크가 처리해 주는 방식이다.

예시

  • 스프링 프레임워크를 사용하면, 웹 애플리케이션을 개발할 때 요청을 처리하고 응답을 보내는 등 복잡한 과정들을 프레임워크가 관리한다. 개발자는 주로 비즈니스 로직을 작성하는 데 집중하면 된다. 프레임워크가 요청을 받고 적절한 컨트롤러를 호출해 주는 흐름을 자동으로 처리한다.

주요 특징

  • 틀 제공 : 개발자가 일일이 세부적인 부분을 구현하지 않아도 되는 구조를 제공
  • 흐름 제어 : 개발자가 아닌 프레임워크가 응용 프로그램의 흐름을 주도함
  • 수동적 사용 : 개발자는 프레임워크가 제공하는 틀 안에서 코드를 작성하고, 프레임워크가 이를 실행

 

차이점 정리

API vs 라이브러리

  • API는 서로 다른 프로그램이 소통할 수 있게 해주는 인터페이스인 반면 라이브러리는 개발에 필요한 기능을 모아둔 도구이다.
  • API는 요청-응답 방식으로 작동하며 다른 프로그램의 기능을 사용할 때 주로 사용된다. 라이브러리는 개발자가 필요할 때 직접 호출해서 사용하는 일종의 도구 모음이다.

라이브러리 vs 프레임워크

  • 라이브러리는 개발자가 필요할 때 능동적으로 호출해 사용하는 도구이고, 프레임워크는 정해진 틀 안에서 개발자가 코드를 작성하고, 프레임워크가 전체 흐름을 주도한다.
  • 라이브러리는 개발자 주도로 사용되지만, 프레임워크는 프레임워크가 주도하는 구조이다.

 

 

이러한 차이점들을 잘 이해하고, 상황에 맞는 도구를 적절하게 사용하는 것이 소프트웨어 개발에서 효율성을 높이는 중요한 요소이다.

반응형