본문 바로가기
React(리액트)

[TIL] 라이브러리(Library) & 프레임워크(Framework) 란?

by 프린벼르 2022. 2. 27.

라이브러리 표지


오늘은 그동안 너무 헷갈렸던 라이브러리와 프레임워크의 개념에 대해 포스팅을 하려한다.

1.  라이브러리 (library) 란 무엇일까 ?

현실세계에서의 라이브러리(도서관)란 필요할 때마다 꺼내볼 수 있는 책(지식)들이 모여있는 곳이다.
프로그래밍에서의 라이브러리필요한 기능들이 모여있는 코드의 묶음이라고 생각할 수 있다.
자주 사용되는 기능들을 라이브러리(객체나 함수등의 형태)로 만들어두면, 필요할 때마다 직접 호출하여 사용할 수 있다.
( 물론 남들이 만들어둔 외부 라이브러리도 가져다 사용할 수 있다. )

2.  프레임워크 (Framework) 란 ?

프레임워크는 작업(work)의 구조(frame)가 정해져 있는 라이브러리라고 볼 수 있다.
단, '프레임워크가 원하는 방식'대로 다양한 기능을 제공한다.
앱/서버 등의 구동, 메모리 관리, 이벤트 루프 등의 공통된 부분은 프레임워크가 알아서 관리하며,
개발자는 서비스별로 다른 부분만 "프레임워크가 정해준 방식대로" 클래스, 메서드 등에 구현해두면 된다.

(자세한 내용은 아래의 라이브러리 vs.프레임워크 항목을 보면 알 수 있다.)

3.  라이브러리 vs 프레임워크

가장 큰 차이점은 "코드 흐름의 제어권"이 누구에게 있느냐이다.

1. 라이브러리 : 라이브러리의 객체나 함수를 개발자가 직접 호출하여 사용한다.
2. 프레임워크 : 개발자가 구현한 메서드가 프레임워크에 의해 호출된다.
즉, 프레임워크는 라이브러리처럼 다양한 기능을 제공하지만, 개발자가 직접 필요한 기능을 가져다가
호출하는 방식이 아니라
"프레임워크의 구조에 맞추어" 객체나 함수를 구현해두면 프레임워크에 의해
적절한 시점/상황에 자동으로 호출되고 실행되는
구조라고 볼 수 있다.

4.  결론 : Framework와 Library의 차이?

☑️ 공통점

  • 다른 사람들이 만들어둔 코드이다.

☑️ 차이점

  • 프레임워크는 다른 사람들이 만들어둔 틀 속으로 내가 들어가는 것이지만, 라이브러리는 내 작업에 다른 사람들이 만들어둔 코드를 가져와서 사용하는 것이다.
  • 내가 불려가면 프레임워크, 내가 부르면 라이브러리!

댓글