오늘은 그동안 너무 헷갈렸던 라이브러리와 프레임워크의 개념에 대해 포스팅을 하려한다.
1. 라이브러리 (library) 란 무엇일까 ?
현실세계에서의 라이브러리(도서관)란 필요할 때마다 꺼내볼 수 있는 책(지식)들이 모여있는 곳이다.
프로그래밍에서의 라이브러리란 필요한 기능들이 모여있는 코드의 묶음이라고 생각할 수 있다.
자주 사용되는 기능들을 라이브러리(객체나 함수등의 형태)로 만들어두면, 필요할 때마다 직접 호출하여 사용할 수 있다.
( 물론 남들이 만들어둔 외부 라이브러리도 가져다 사용할 수 있다. )
2. 프레임워크 (Framework) 란 ?
프레임워크는 작업(work)의 구조(frame)가 정해져 있는 라이브러리라고 볼 수 있다.
단, '프레임워크가 원하는 방식'대로 다양한 기능을 제공한다.
앱/서버 등의 구동, 메모리 관리, 이벤트 루프 등의 공통된 부분은 프레임워크가 알아서 관리하며,
개발자는 서비스별로 다른 부분만 "프레임워크가 정해준 방식대로" 클래스, 메서드 등에 구현해두면 된다.
(자세한 내용은 아래의 라이브러리 vs.프레임워크 항목을 보면 알 수 있다.)
3. 라이브러리 vs 프레임워크
가장 큰 차이점은 "코드 흐름의 제어권"이 누구에게 있느냐이다.
1. 라이브러리 : 라이브러리의 객체나 함수를 개발자가 직접 호출하여 사용한다.
2. 프레임워크 : 개발자가 구현한 메서드가 프레임워크에 의해 호출된다.
즉, 프레임워크는 라이브러리처럼 다양한 기능을 제공하지만, 개발자가 직접 필요한 기능을 가져다가
호출하는 방식이 아니라 "프레임워크의 구조에 맞추어" 객체나 함수를 구현해두면 프레임워크에 의해
적절한 시점/상황에 자동으로 호출되고 실행되는 구조라고 볼 수 있다.
4. 결론 : Framework와 Library의 차이?
☑️ 공통점
- 다른 사람들이 만들어둔 코드이다.
☑️ 차이점
- 프레임워크는 다른 사람들이 만들어둔 틀 속으로 내가 들어가는 것이지만, 라이브러리는 내 작업에 다른 사람들이 만들어둔 코드를 가져와서 사용하는 것이다.
- 내가 불려가면 프레임워크, 내가 부르면 라이브러리!
'React(리액트)' 카테고리의 다른 글
명령형 프로그래밍 VS 선언적 프로그래밍 (1) | 2022.07.05 |
---|---|
[React] Navigate ...? (0) | 2022.02.28 |
[TIL] 리액트 ( ROUTER & SCSS ) (2) | 2022.02.27 |
[React] Westagram 코딩 (2) - comment (0) | 2022.02.25 |
[React] Westagram 코딩 (1) - login (0) | 2022.02.24 |
댓글