📚 라이브러리 vs 프레임워크 🤔
오늘은 "라이브러리"와 "프레임워크"의 차이점에 대해 정리해보려고 한다.
둘 다 특정한 기능을 모듈화한 것인데, 뭐가 다를까?
📌 라이브러리란?
라이브러리는 공통으로 사용될 수 있는 특정 기능들을 모듈화한 것이다.
즉, 특정한 기능을 쉽게 사용할 수 있도록 정리된 코드 묶음이라고 보면 된다.
- 디렉토리명, 파일명 등에 대한 규칙이 따로 없다.
- 개발자가 원하는 대로 자유롭게 가져다 쓸 수 있다.
- 특정 기능을 수행하는 도구(tool) 같은 느낌이다.
예를 들어, Pandas
는 데이터 분석을 쉽게 할 수 있도록 도와주는 라이브러리이다.
필요한 기능을 직접 호출해서 사용하면 된다.
import pandas as pd
data = pd.read_csv('data.csv') # 파일 읽기
여기서 pd.read_csv()
는 Pandas 라이브러리가 제공하는 기능을 내가 호출해서 사용하는 것이다.
즉, 내가 주도적으로 사용하는 것이 라이브러리의 특징이라고 할 수 있다.
⚙️ 프레임워크란?
프레임워크도 특정한 기능을 모듈화한 것이다.
그런데... 라이브러리와 뭐가 다를까? 🤔
- 디렉토리명, 파일명 등에 대한 규칙이 있다.
- 코드 구조가 정해져 있고, 정해진 방식대로 개발해야 한다.
- 단순한 도구가 아니라 하나의 틀(Framework) 을 제공한다.
예를 들어, Spring Boot
는 웹 애플리케이션 개발을 쉽게 해주는 프레임워크다.
이걸 사용하면 특정한 방식에 따라 프로젝트 구조를 만들어야 한다.
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, World!";
}
}
여기서 @RestController
, @GetMapping
같은 어노테이션을 사용해야 한다.
프레임워크가 제공하는 방식에 따라 코드를 작성해야 하므로, 개발자가 완전히 자유롭지는 않다.
🔍 정리: 라이브러리 vs 프레임워크
라이브러리 📚 | 프레임워크 🏗️ | |
---|---|---|
정의 | 특정 기능을 수행하는 코드 묶음 | 애플리케이션 구조를 제공하는 틀 |
사용 방식 | 개발자가 필요할 때 호출해서 사용 | 정해진 방식대로 코드를 작성해야 함 |
유연성 | 자유롭다 | 엄격한 규칙이 있다 |
🎯 결론
라이브러리는 내가 필요할 때 가져와서 사용하는 도구 같은 개념이고,
프레임워크는 내가 따라야 하는 설계 구조를 제공하는 틀 같은 개념이다.
그렇다면 한 가지 궁금한 점... 🤔
프레임워크 안에서도 라이브러리를 사용할 수 있을까?
그렇다! 예를 들어, Spring Boot(프레임워크)에서 Lombok
, JPA
같은 라이브러리를 함께 사용한다.
결국, 프레임워크는 라이브러리를 포함할 수도 있다는 점도 기억해 두면 좋을 것 같다! 🚀
'CS 공부' 카테고리의 다른 글
# 싱글톤 패턴 구현 방법 7가지 (0) | 2025.02.20 |
---|---|
# 싱글톤 패턴 (0) | 2025.02.17 |
# 디자인 패턴 소개 (0) | 2025.02.17 |
# JIT 컴파일러 (1) | 2025.02.16 |
# 오버헤드와 가비지 컬렉션 (1) | 2025.02.16 |