chapter 1. Framework와의 차이점(API, 라이브러리).md¶
1절. 개념 비교
2절. 예시 비교
3절. 프레임워크 종류 및 동작 방식
1절. 개념 비교¶
API(Application Programming Interface)¶
- 두 개 이상의 Software Component 사이에서 상호작용할 수 있도록 정의된 Interface
- 일반적으로 Method, Protocol, Class로 구성
- 다른 소프트웨어 개발자들이 이를 통해 특정 서비스 또는 기능 구현 가능
라이브러리(Library)¶
- 개발자들이 자주 사용하는 코드 집합
- 여러 기능 제공
- 복잡한 기능을 더 쉽게 구현 가능
- 여러 개발자가 공유하여 사용할 수 있는 소프트웨어 코드 집합
Framework¶
- 개발자들이 Application 개발 시 사용되는 구조 제공
- 일련의 규칙과 구조 정의
- 개발자가 Application 작성 시 규칙과 구조를 따라야 함
- 여러 컴포넌트와 라이브러리 포함
- 특정 기능 구현을 위해 조합하여 사용
정리¶
| API | 라이브러리 | Framework |
|---|---|---|
| Software Component 간의 인터페이스 정의 | 개발자들이 자주 사용하는 코드 집합 | Application 개발 시 사용되는 구조 제공 |
2절. 예시 비교¶
API 예시¶
| 종류 | 설명 |
|---|---|
| Twitter API | 트위터에서 제공하는 API |
| Google Maps API | 구글에서 제공하는 지도 API |
| YouTube API | 유튜브에서 제공하는 API |
| OpenWeather API | 날씨 정보 API |
| GitHub API | 깃허브에서 제공하는 API |
| Kakao API | 카카오에서 제공하는 API |
| Stripe API | 결제 API |
| Twilio API | SMS 및 음성 API |
| AWS API Gateway | 아마존 웹 서비스에서 제공하는 API 관리 서비스 |
| Google Cloud Vision API | 구글에서 제공하는 이미지 분석 API |
라이브러리 예시¶
| 종류 | 설명 |
|---|---|
| Lodash | 자바스크립트 유틸리티 라이브러리 |
| jQuery | 자바스크립트 DOM 조작 라이브러리 |
| React Transition Group | React 애니메이션 라이브러리 |
| Moment.js | 자바스크립트 날짜 라이브러리 |
| Chart.js | 자바스크립트 차트 라이브러리 |
| Axios | 자바스크립트 HTTP 클라이언트 라이브러리 |
| NumPy | 파이썬 수치 계산 라이브러리 |
| Pandas | 파이썬 데이터 분석 라이브러리 |
| Matplotlib | 파이썬 시각화 라이브러리 |
| BeautifulSoup | 파이썬 웹 스크래핑 라이브러리 |
Framework 예시¶
| 종류 | 설명 |
|---|---|
| React | 자바스크립트 UI 프레임워크 (공식사이트에서는 라이브러리 라고 말함) |
| Angular | 자바스크립트 프레임워크 |
| Vue.js | 자바스크립트 프론트엔드 프레임워크 |
| Django | 파이썬 백엔드 웹 프레임워크 |
| Ruby on Rails | 루비 웹 프레임워크 |
| Spring | 자바 백엔드 프레임워크 |
| Express.js | Node.js 웹 프레임워크 |
| Flask | 파이썬 백엔드 웹 프레임워크 |
| Laravel | PHP 웹 프레임워크 |
| ASP.NET | 마이크로소프트 웹 프레임워크 |
3절. 패키지와 모듈¶
모듈(Module)¶
- 소프트웨어의 작은 부분
- 특정 기능을 수행하는 코드 집합
- 파일 하나에 작성 가능
- 다른 모듈에서 재사용 가능
- 라이브러리 or Framework는 모듈들의 집합으로 구성
패키지¶
- 관련된 모듈들을 그룹핑하는 방법
- 소프트웨어에서는 기능별로 모듈을 작성하고 모듈들을 관련된 패키지에 포함
- 패키지 사용 시 모듈들을 조직적으로 관리 가능
- 다른 개발자들과의 코드 공유에 용이