본문 바로가기
Study

프레임워크(Framework)와 라이브러리(Library)의 차이점 파헤치기

by jisayDeveloper 2023. 9. 4.
728x90
반응형
SMALL

프레임워크(Framework)란?

  • 프레임워크는 어플리케이션 개발 시 필수적인 코드, 알고리즘, DB 커넥션 등의 기능들을 위해 뼈대(구조)를 제공한다.
    개발자는 이러한 뼈대 위에서 코드를 작성해 원하는 어플리케이션을 개발할 수 있다.
  • 프레임워크는 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 상호 협력하는 클래스와 인터페이스 의 집합이라고 할 수 있다. 쉽게 말해 프레임워크는 개발자가 개발을 쉽게 할 수 있도록 뼈대를 제공해준다고 생각하면된다.
  • 예를 들어 Java 개발에서 사용되는 Spring Framework나 Python 개발에 사용되는 Django, 안드로이드 앱개발에 사용되는 Android 등이 있다

라이브러리(Library)란?

  • 라이브러리는 개발에 필요한 것들을 미리 구현해 놓은 도구라 할 수 있다. 재사용이 가능한 기능을 미리 구현해놓고 필요한 곳에서 호출하여 사용 가능하도록 만들어진 집합이다.
  • 예를 들어 C++의 STL이나 Python의 Pip로 설치한 패키지/모듈(pandas, tensorflow등)이 있다.

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

  • 프레임워크는 라이브러리를 포함하며 프레임워크 위에 개발자가 작성한 어플리케이션 코드가 올라가게 되고, 이 어플리케이션 코드에서는 라이브러리를 호출할 수 있다. 이처럼 프레임워크와 라이브러리의 가장 큰 차이점은 제어 흐름 이 어디에 있는가이다.


  • 프레임워크는 제어의 역전 개념이 적용되어 있다.(제어의 역전(IoC:Inversion of Control)은 Spring 포스팅할 때 설명하도록 하겠다.) 즉, 프레임워크에게 제어의 흐름을 넘겨 개발자가 작성하는 코드에서 신경 써야 할 부분을 줄인다는 뜻이다. 프레임워크는 전체적인 흐름을 쥐고 있으며 어플리케이션의 코드는 프레임워크에 의해 사용된다. 어플리케이션 코드는 프레임워크가 짜놓은 틀 안에서 수동적으로 동작하기 떄문에 제어의 흐름은 프레임워크에게 있다.


  • 반면 라이브러리는 개발자가 전체적인 흐름을 만들며 라이브러릴를 가져다 쓰게 된다. 즉, 개발자에게 전적으로 제어 흐름이 있으며 필요할 때마다 능동적으로 라이브러리를 호출하여 사용한다.

728x90
반응형
LIST

'Study' 카테고리의 다른 글

[Spring] Spring boot VS Spring Framework  (0) 2023.09.08
래퍼 클래스(Wrapper class) 파헤치기  (0) 2023.09.07
세션(Session)과 쿠키(Cookie) 파헤치기  (0) 2023.09.06
HTTP Method 파헤치기  (0) 2023.09.05
RESTful API 파헤치기  (0) 2023.09.04