728x90

개발을 하다 보면 “이건 API야”, “저건 라이브러리야” 같은 말을 자주 듣습니다.
하지만 막상 구분하려고 하면 경계가 애매하죠.
특히 API와 라이브러리는 혼용되는 경우가 많습니다.
저 역시 그 모호한 경계 때문에 오래 혼란스러웠습니다.
이 글에서는 세 개념을 명확히 정리해보겠습니다.
1️⃣ 개념 비교
| 구분 | 정의 | 핵심 포인트 |
|---|---|---|
| API (Application Programming Interface) |
서로 다른 소프트웨어가 상호작용할 수 있도록 정해둔 규칙과 명세 |
“어떻게 사용할지를 알려주는 설명서” |
| Library (라이브러리) | 개발자가 자주 사용하는 기능을 모아놓은 코드 집합 |
“직접 가져다 쓰는 도구 상자” |
| Framework (프레임워크) | 애플리케이션 개발을 위한 기본 구조와 규칙 세트 |
“정해진 틀 안에서 만들어야 하는 뼈대” |
요약:
API는 “약속(규칙)”, 라이브러리는 “도구 모음”, 프레임워크는 “개발 틀(구조)”입니다.
2️⃣ 비유로 이해하기
| 개념 | 비유 |
|---|---|
| API | 침대를 주문제작할 때, 내가 원하는 사이즈를 적은 주문서 (요청 규격을 맞춰야 함) |
| Library | 의자를 만들기 위해 망치·톱·못을 꺼내 쓰는 공구 상자 (필요한 도구만 골라 사용) |
| Framework | 요리사가 정해진 레시피를 따라 요리하는 조리 과정 (틀을 벗어나면 안 됨) |
3️⃣ 실제 예시
| 구분 | 예시 |
|---|---|
| API | Google Maps API, Kakao API, Twitter API, OpenWeather API |
| Library | Lodash, Axios, NumPy, Pandas, Chart.js, BeautifulSoup |
| Framework | React, Vue.js, Angular, Django, Spring, Flask, Laravel |
참고: React는 공식적으로는 “라이브러리”지만, 실제로는 프레임워크처럼 사용됩니다.
4️⃣ 모듈, 패키지와의 관계
| 용어 | 설명 |
|---|---|
| 모듈 (Module) | 특정 기능을 수행하는 코드 파일 하나 (예: math.py) |
| 패키지 (Package) | 여러 모듈을 묶은 폴더 단위 (예: numpy, pandas) |
| 라이브러리 (Library) | 관련된 패키지·모듈들의 집합 |
| 프레임워크 (Framework) | 여러 라이브러리 + 규칙/구조까지 포함한 개발 뼈대 |
요약: 모듈 → 패키지 → 라이브러리 → 프레임워크 순으로 확장된 개념입니다.
5️⃣ React 개발 시 npm으로 받는 것들
npm은 Node Package Manager의 약자로, 자바스크립트 패키지 관리 도구입니다.npm install react-scheduler처럼 설치하는 것들은 대부분 라이브러리 또는 패키지입니다.- 즉, 자주 쓰는 기능들을 묶어둔 모듈의 집합이며, 프로젝트에 필요한 기능을 쉽게 추가할 수 있습니다.
6️⃣ 한눈에 정리
| 개념 | 역할 | 예시 |
|---|---|---|
| API | 소프트웨어 간 상호작용 규칙 | Google Maps API |
| Library | 가져다 쓰는 기능 모음 | Axios, Pandas |
| Framework | 애플리케이션 구조 제공 | Django, React |
| Module / Package | 코드 단위 / 묶음 단위 | math, numpy |
결론
API → “어떻게 사용할지에 대한 약속”
라이브러리 → “필요한 기능을 꺼내 쓰는 도구 상자”
프레임워크 → “정해진 틀 안에서 동작하는 구조”
이 세 가지를 구분하면 개발 구조가 명확해지고,
어떤 도구를 언제 사용해야 하는지 훨씬 쉽게 판단할 수 있습니다.
한 문장 정리:
API는 약속, 라이브러리는 도구, 프레임워크는 구조다.
728x90
'IT 끄적이기' 카테고리의 다른 글
| 간단한 개인 사이트 만들기 - AI로 코딩하기 (0) | 2025.11.04 |
|---|---|
| 딩코딩코 바이브코딩 강의 후기 - AI로 개발하기 (0) | 2025.11.02 |
| 리눅스 계정 정보 확인하기 (0) | 2025.09.30 |
| 네트워크 DMZ란? (1) | 2025.09.16 |
| 서브넷마스크, IP 대역, VPN 정리 (0) | 2025.09.16 |