[Spring/Springboot] API, 프레임워크, 라이브러리의 차이
2024. 12. 15. 23:06ㆍCS/Spring

API
- 두 개 이상의 소프트웨어 컴포넌트 사이에서 상호 작용할 수 있도록 정의된 인터페이스
- (ex) 함수, 프로토콜, 클래스 → 다른 소프트웨어 개발자들이 이를 사용하여 특정 서비스 또는 기능 사용 가능 = 다른 개발자들이 사용할 수 있는 함수, 메서드, 클래스 등을 정의
- “엄마의 와사비를 넣은 짭짤한 간장 계란밥”(외부 함수, 클래스) → 나는 접시에 담아와서(끌어 와서) 먹기만 하면 됨
- 예시 API
- AWS API Gateway: 아마존 웹 서비스에서 제공하는 API 관리 서비스
- Google Cloud Vision API: 구글에서 제공하는 이미지 분석 API
프레임워크
- 개발자들이 애플리케이션을 개발하는 데 사용되는 구조를 제공 → 일련의 규칙과 구조를 정의하고, 개발자가 애플리케이션을 작성할 때 이러한 규칙과 구조를 따르도록함
- 구조(Spring Framework)가 있고, 개발가는 그 구조 안에서 구현만 하면 되는 것
- 유튜브의 “간장 계란밥 레시피 (재료 구조)” → 나는 레시피를 보고, 내 손으로 재료 손질하고, 비벼(구현)하면 됨
- 예시 프레임워크
- Django: 파이썬 백엔드 웹 프레임워크
- Ruby on Rails: 루비 웹 프레임워크
라이브러리
- 개발자들이 자주 사용하는 코드 집합 → 라이브러리는 여러 개발자가 공유하여 사용할 수 있는 소프트웨어 코드 모음
- 어머니는 요리할 때마다 특정한 레시피를 고수하지 않고, 상황에 맞춰 다양한 방법으로 요리하실 수 있는 요리 백과사전을 갖고 계십니다. 그 백과사전에는 다양한 소스 만들기 팁, 요리법, 그리고 요리의 기본기가 모두 담겨있죠.즉, 라이브러리는 이미 존재하는 다양한 기능들을 모아놓은 요리책 같은 것이죠. 당신은 그 기능들을 그때그때 필요할 때 꺼내 사용하기만 하면 되는 것이고요.
- 예시 라이브러리
- Pandas: 파이썬 데이터 분석 라이브러리
- Matplotlib: 파이썬 시각화 라이브러리
- 예시 라이브러리
- 이렇게 어머니의 요리 백과사전(라이브러리)을 사용하면, 더 이상 매번 레시피를 새로 짜야 할 필요도 없고, 실수할 위험도 줄어들겠죠!
- 만약 이번에 당신이 다음 번에도 비슷한 요리를 하고 싶다면, 그때마다 어머니에게 요청할 필요 없이, 그 요리 백과사전을 참조하면 됩니다. 어머니의 노하우가 담긴 이 백과사전이 바로 라이브러리와 같습니다.
프레임워크 VS 라이브러리
- 프레임워크 : 프레임워크가 내가 작성한 코드를 제어하고, 대신 실행하면
- 라이브러리 : 내가 작성한 코드가 직접 제어의 흐름을 담당하면
'CS > Spring' 카테고리의 다른 글
[Spring/Springboot] 서블릿(Servlet) (0) | 2024.12.15 |
---|---|
[Spring/Springboot] AOP 관점 지향 프로그래밍 (0) | 2024.12.15 |
[Spring/Springboot] Bean/싱글톤 패턴/컴포넌트 스캔 (0) | 2024.12.15 |
[Spring/Springboot] 제어의 역전 IoC(Inversion of Control) (0) | 2024.12.15 |
[Spring/SpringBoot] 의존 관계 주입 DI(Dependency Injection) (0) | 2024.12.15 |