라이브러리

기술노트

라이브러리 (Library)

라이브러리(Library)는 소프트웨어 개발에 필요한 기능들을 미리 구현해 놓은 도구들의 집합입니다. 재사용 가능한 함수, 클래스, 값, 자료형 사양 등을 포함하며, 개발자가 필요한 기능을 호출하여 사용할 수 있도록 만들어진 모음입니다. 개발자는 라이브러리를 사용하여 특정 기능을 직접 구현할 필요 없이 효율적으로 개발할 수 있습니다.


🧱 라이브러리의 주요 특징 및 역할

  • 재사용성 : 특정 기능을 미리 구현해 놓았기 때문에, 개발자는 동일한 기능을 여러 번 작성할 필요 없이 라이브러리를 호출하여 재사용할 수 있습니다.
  • 생산성 향상 : 복잡한 기능을 쉽고 빠르게 구현할 수 있도록 도와 개발 생산성을 높입니다.
  • 모듈화 : 특정 기능 단위로 묶여 있어 코드의 모듈성을 높이고, 전체 시스템의 복잡도를 낮춥니다.
  • 개발 편의성 : 표준화된 인터페이스를 제공하여 개발자가 쉽게 기능을 활용할 수 있도록 합니다.

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

라이브러리와 프레임워크의 가장 큰 차이점은 제어 흐름(Flow)에 대한 주도권이 누구에게 있느냐입니다.

  • 라이브러리 : 개발자가 전체적인 프로그램의 흐름을 제어하며, 필요한 시점에 라이브러리의 기능을 능동적으로 호출하여 사용합니다. 즉, "개발자가 라이브러리를 호출한다"고 표현할 수 있습니다.
    • 예시 : jQuery, React (UI 라이브러리), NumPy, Pandas 등
  • 프레임워크 (Framework) : 프레임워크 자체가 전체적인 제어 흐름을 가지고 있으며, 개발자는 프레임워크가 정해놓은 틀(구조) 안에서 필요한 코드를 작성합니다. 이는 '제어의 역전(IoC, Inversion of Control)' 개념이 적용된 것으로, 프레임워크가 개발자의 코드를 호출하는 방식입니다.
    • 예시 : Spring (Java), Django (Python), Angular (JavaScript), Android, iOS 등

프레임워크는 라이브러리를 포함하는 더 큰 개념으로 볼 수 있으며, 프레임워크는 개발자의 고민을 덜어주고 애플리케이션의 구조적 설계를 튼튼하게 만들어주는 효과가 있습니다.


💡 개발자 핵심 Point

  • 라이브러리는 개발자가 특정 기능을 빠르고 효율적으로 구현할 수 있도록 돕는 도구입니다.
  • 프레임워크와 라이브러리의 차이점을 명확히 이해하고, 프로젝트의 요구사항에 맞춰 적절한 도구를 선택하는 것이 중요합니다.
  • 특정 라이브러리를 사용해본 경험이 있다면, 해당 라이브러리의 장단점, 핵심 개념, 그리고 사용하면서 겪었던 문제점과 해결 과정을 설명할 수 있어야 합니다.