라이브러리 & 프레임워크
기술노트
📚 라이브러리 (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)을 이해하는 것이 중요합니다.
- 개발자는 프로젝트의 특성과 요구사항에 맞춰 적절한 라이브러리와 프레임워크를 선택하여 개발 생산성을 높일 수 있습니다.