프레임워크와 라이브러리의 차이점은 무엇일까?
개발자라면 한번쯤은 해보지 않을수 없는 생각입니다.
사전적인 의미로는 아래와 같이 정의하고 있습니다.
프레임워크(Framework)
프로그램을 개발하기 위한 구조를 제공하는 개발 환경. 코딩을 할 때 자주 쓰이는 여러 클래스(Class, 변수와 함수의 묶음)를 프레임워크가 정해둔 흐름에 맞춰 쓸 수 있도록 지원해 주기 때문에 복잡하거나 반복되는 작업에 대한 부담을 덜어줄 뿐만 아니라 개발에 들이는 시간 대비 프로그램의 질을 높일 수 있다. (자바스크립트에서는 뷰(Vue.js)와 앵귤러(Angular)가, 자바에서는 스프링(Spring)이 대표적인 웹 프레임워크로 꼽힌다.)
라이브러리(Library)
프로그램을 개발하는 데 필요한 여러 기능을 활용할 수 있도록 묶어놓은 함수 또는 기능의 집합. 프레임워크가 개발을 제어하는 틀거리를 제공해준다면, 라이브러리는 도서관에서 책을 빌리듯 개발자가 필요한 기능을 마음대로 가져다 쓸 수 있는 일종의 모음집에 가깝다. 즉 정해진 방식으로 개발을 하게끔 정해주는 프레임워크와 달리 제어권이 개발자에게 주어지는 셈. (자바스크립트 웹 개발에 쓰이는 리액트(React)와 제이쿼리(jQuery)가 바로 라이브러리다.)
프레임워크 라이브러리 차이는 무엇일까?
프레임워크와 라이브러리는 둘다 애플리케이션을 개발에 있어 필요한 쉽고 빠른 개발 생산선을 사용한다는 공통점도 있습니다만 결정적인 차이가 있습니다.
"제어반전"
두개의 차이는 누가 주도권을 가지고 가느냐에서 결정됩니다.
프레임워크란 프레임워크 스스로 흐름의 주도권을 가지고서 사용자(개발자)에게 코드 작성 및 연결을 강제합니다.
라이브러리는 사용자(개발자)가 제어의 주도권을 가지고 있고 언제 사용할지를 결정한다.
리엑트가 라이브러리인 이유
리엑트는 흐름의 주도권을 개발자가 가지고 있기 떄문에 라이브러리에 해당한다.
리엑트는 다양한 라이브러리와 웹개발에 대한 틀을 제공하지만, Spring과 같이 제어의 주도권을 언어가 아닌 개발자가 가지고 있다(개발자가 비즈니스모델 측면에서 고려해야하는게 많다는 뜻...)
'개발 라이프' 카테고리의 다른 글
[면접] 함수형 프로그래밍이란? (0) | 2022.04.17 |
---|---|
[면접] 절차지향 언어 vs 객체치향 언어 (0) | 2022.04.17 |
[면접] HTTP 1.1 vs 2.0 차이 (0) | 2022.04.17 |
[면접] 웹 접근성, 웹 표준 (0) | 2022.04.16 |
[면접] 개발 방법론이란? (0) | 2022.04.14 |