CS 공부

# 라이브러리와 프레임워크

박태정 입니다. 2025. 2. 17. 17:06
반응형

📚 라이브러리 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