정보

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

밤새는 탐험가89 2024. 11. 28. 10:48

https://explorer89.tistory.com/10

 

라이브러리와 프레임워크

라이브러리 자주 사용될 기능들을 모아 놓은 도구 상자 같은 개념 개발자와 구현할 기능 사이에서 개발자가 구현할 기능을 쉽게 해줄 수 있도록 도와주는 중간 계층의미 프레임워크 프레임워크

explorer89.tistory.com

 

 

라이브러리와 프레임워크의 차이 (집 짓는 비유)

  1. 라이브러리: 도구상자
    • 비유: 집을 지을 때 사용하는 도구들이에요. 예를 들어:
      • 망치, 톱, 못 등등.
    • 역할: 필요한 작업을 수행하기 위해 호출하는 기능/코드의 집합입니다.
      • 개발자가 필요한 기능만 선택적으로 가져와 사용합니다.
      • 개발자가 주도권을 가지고, 어떤 도구를 언제, 어떻게 쓸지를 결정합니다.
    • : UIKit, Foundation, NumPy, Pandas, Alamofire 등.
  2. 프레임워크: 설계도 + 규칙 + 도구
    • 비유: 집을 지을 때 사용하는 설계도와 건축 규칙, 그리고 그 설계도에 필요한 도구들까지 포함한 패키지입니다.
      • 설계도가 이미 짜여 있어서 규칙을 따라 집을 지어야 합니다.
      • 프레임워크는 개발자가 아닌, 프레임워크 자체가 주도권을 가집니다.
    • 역할: 앱이나 프로그램을 만들 때 전반적인 구조와 흐름을 정의합니다.
      • 개발자는 설계된 규칙과 흐름을 따라가면서 빈 곳(훅)에 필요한 코드를 추가합니다.
    • : SwiftUI, React, Django, Spring 등.

 

핵심 차이: 주도권

  1. 라이브러리:
    • 개발자가 라이브러리를 호출합니다.
    • 개발자가 "내가 할 일을 도와줘!"라고 말하는 상황.
  2. 프레임워크:
    • 프레임워크가 개발자의 코드를 호출합니다.
    • 프레임워크가 "내 설계도에 맞게 이 부분을 채워줘!"라고 말하는 상황.

 

예시로 정리

라이브러리 사용

  • 개발자가 직접 도구를 가져다가 쓴다.
  • 내가 필요한 기능만 가져와서 사용.
import Alamofire

Alamofire.request("https://example.com").response { response in
    print(response)
}

 

 

프레임워크 사용

  • 프레임워크의 흐름에 내가 맞춰야 한다.
  • 설계된 틀(View 구조) 안에서 내가 규칙에 따라 코드를 작성해야 함.
struct ContentView: View {
    var body: some View {
        Text("Hello, World!")
    }
}

 

 

요약

  • 라이브러리는 "도구상자"처럼 원하는 도구를 골라 사용.
  • 프레임워크는 "설계도와 규칙"을 포함한 더 큰 구조. 설계도 안에서 개발자는 규칙을 따라야 함.