라이브러리 & 프레임워크

기술노트

📚 라이브러리 (Library) & 프레임워크 (Framework)

라이브러리프레임워크는 소프트웨어 개발 시 코드의 재사용성을 높이고 개발 생산성을 향상시키는 데 사용되는 도구입니다. 둘 다 개발에 필요한 코드의 집합을 제공하지만, 개발 흐름에 대한 제어권(Inversion of Control, IoC)에서 큰 차이를 보입니다.


📚 라이브러리 (Library)

라이브러리는 개발자가 필요한 기능을 가져다 쓰는 도구입니다. 개발자가 전체 애플리케이션의 흐름을 제어하며, 필요할 때 라이브러리의 함수나 클래스를 호출하여 사용합니다.

  • 제어권 : 개발자에게 있음
  • 비유 : 필요한 도구(망치, 드라이버)를 직접 골라 사용하는 것
  • 예시 : Python의 `requests` (HTTP 요청), `NumPy` (수치 계산), JavaScript의 `jQuery` (DOM 조작)

🏗️ 프레임워크 (Framework)

프레임워크는 애플리케이션의 전체적인 구조와 뼈대를 제공하고, 개발 흐름을 제어합니다. 개발자는 프레임워크가 정해놓은 규칙과 구조에 맞춰 코드를 작성해야 합니다. 프레임워크가 개발자의 코드를 호출하는 방식입니다.

  • 제어권 : 프레임워크에게 있음 (제어의 역전, IoC)
  • 비유 : 이미 지어진 건물의 뼈대(골조)에 맞춰 내부를 채워 넣는 것
  • 예시 : Java의 `Spring`, Python의 `Django`, JavaScript의 `React`, `Angular`, `Vue.js`

🆚 주요 차이점 요약

구분 라이브러리 (Library) 프레임워크 (Framework)
제어권 개발자 프레임워크
역할 필요한 기능 제공 전체 구조와 개발 흐름 제어
비유 도구 상자 건물 골조
예시 `requests`, `NumPy` `Spring`, `Django`, `React`

💡 정보처리기사 핵심 Point

  • 정보처리기사 시험에서는 라이브러리와 프레임워크의 개념, 차이점, 그리고 제어권의 주체를 묻는 문제가 자주 출제됩니다.
  • 프레임워크의 핵심 개념인 제어의 역전(IoC)을 이해하는 것이 중요합니다.
  • 개발자는 프로젝트의 특성과 요구사항에 맞춰 적절한 라이브러리와 프레임워크를 선택하여 개발 생산성을 높일 수 있습니다.