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

Hwani·2024년 8월 6일

개발을 하다보면 프레임워크, 라이브러리, API를 모두 사용하게 된다.
하지만 이 3개의 용어의 정의를 헷갈려서 정확히 정리해보려고 한다.

프레임워크 (FrameWork)

Frame(틀) + work(일)이라는 단어의 합성어입니다.
일 구조, 혹은 작업 구조라는 뜻과 같이 프레임워크는 어떠한 일을 처리하기 위한 구조를 제공합니다.
프레임워크는 개발자들이 애플리케이션을 개발하는 데 사용되는 구조를 제공한다. 프레임워크는 일련의 규칙과 구조를 정의하고, 개발자가 애플리케이션을 작성할 때 이러한 규칙과 구조를 따르도록 한다. 프레임워크는 보통 여러 컴포넌트와 라이브러리를 포함하며, 개발자가 특정 기능을 구현하기 위해 이를 조합하여 사용한다.

프레임워크 예시

  • Spring Framework - Java 기반의 엔터프라이즈 애플리케이션을 위한 강력한 프레임워크입니다.
    Spring은 종속성 주입(Dependency Injection)과 같은 디자인 패턴을 통해 애플리케이션의 유연성과 모듈성을 향상시키는 것을 목표로 합니다.
    Spring Boot는 Spring을 더 쉽게 사용할 수 있도록 초기 설정 작업을 최소화한 프로젝트입니다.
  • Django - Django는 Python으로 작성된 고수준의 웹 프레임워크입니다.
    Django는 "배터리가 포함된" 접근 방식을 취하며, 데이터베이스 관리, 인증, 파일 관리 등 웹 애플리케이션 개발에 필요한 대부분의 공통 기능을 내장하고 있습니다.
    개발자는 Django의 구조와 규칙에 맞추어 애플리케이션을 구축하게 됩니다. 예를 들어, URL 라우터, 뷰, 모델 등이 이에 해당합니다.

라이브러리 (Library)

라이브러리(Library)는 개발을 진행할 때 자주 사용하는 기능들은 개발자들이 필요와 목적에 따라 사용할 수 있도록 모듈화된 프로그램 모음이다.

라이브러리는 사전적 의미로는 도서관으로, 도서관에 있는 책들을 꺼내 읽는 것 처럼 프로그래밍할 때 모듈화된 프로그램을 라이브러리에서 꺼내 사용 가능하다.

파이썬(Python)의 경우 라이브러리가 잘 활성화 되어있어 인기가 아주 많아 졌다.

라이브러리 예시

Python

  • Numpy 파이썬을 이용해 다양한 수학 계산을 할 수 있도록 해준다.
  • SymPy: NumPy가 수치해석에 더 적합하다면, SymPy는 기호해석에 더 적합한 방식이다. 대부분의 경우에는 NumPy와 scipy의 조합으로 해결이 가능하지만, SymPy까지 사용하면 더 효율적이고 수월한 계산이 가능하다
  • Pandas: 데이터 분석 라이브러리.
  • matplotlib: 데이터 시각화 라이브러리.

Java

  • Lombok: 자동으로 생성자 및 Getter/Setter 메소드를 추가해주는 라이브러리.
  • JSTL: JSP 표준 태그 라이브러리.

JavaScript

  • jQuery: 자바스크립트 라이브러리 중 가장 인지도가 높다.
  • React: 페이스북에서 만든 라이브러리. UI 개발에 사용된다.
  • Jindo: 네이버에서 만든 라이브러리. 스마트에디터에서 쓰인다.
  • axios: 크로스 플랫폼 HTTP 클라이언트 라이브러리.

API (Application Programming Interface)

Application Programming Interface(애플리케이션 프로그램 인터페이스)의 약자로, 소프트웨어 응용 프로그램에서 다른 소프트웨어 구성 요소 또는 서비스와 상호 작용하기 위한 인터페이스를 제공하는 프로그래밍 기술이다.

API 예시

  • SPOTIFY API : Spotify API는 Spotify의 음악 카탈로그에 접근하고, 사용자의 플레이리스트를 관리하며, 음악을 스트리밍하는 기능을 제공한다.
  • NAVERPAY API : 네이버페이 API는 네이버페이의 결제 기능을 외부 웹사이트나 애플레케이션에 통합할 수 있도록 해주는 인터페이스이다.
  • KAKAO API : 카카오 API는 카카오 로그인, 카카오맵, 카카오메시지 등 여러 서비스를 제공하며, 앱 내에서 소셜 로그인, 위치 기반 서비스를 쉽게 통합할 수 있다.

정리

프레임워크, 라이브러리, API는 모두 개발 과정에서 중요한 역할을 수행한다.
프레임워크는 애플리케이션의 전체적인 구조를 제공하며 라이브러리는 필요한 기능을 모듈화하여 제공하고
API는 다른 소프트웨어 또는 서비스와의 상호작용을 가능하게하는 인터페이스를 제공한다.

profile
개발자될거야

0개의 댓글