프레임워크와 라이브러리
프레임워크와 라이브러리는 소프트웨어 개발에서 코드의 재사용을 촉진하고
개발자가 더욱 효율적으로 작업할 수 있도록 도와주는 도구들입니다.
그러나 몇 가지 중요한 차이점이 있습니다.
프레임워크
제어역전 : 프레임워크가 주도하는 개발 스타일입니다. 개발자는 프레임워크가 제공하는 규칙과 구조를 따라야합니다.
컨텍스트 내에서의 사용 : 어플리케이션의 기본 구조와 제어흐름은 프레임워크에 의해 미리 정의되어있습니다.
뼈대 제공 : 개발자는 프레임워크가 제공하는 뼈대 안에서 자신의 코드를 작성하며, 프레임워크가 유동적으로 처리해주는 부분이 많습니다.
예시) Django (Python 웹 프레임워크), Angular (javaScript 라이브러리)
라이브러리
개발자 중심 제어 : 라이브러리는 프레임워크와 다르게 개발자가 코드의 흐름을 제어하며 필요에 따라 라이브러리를 사용합니다.
컨텍스트 밖에서의 사용 : 어플리케이션의 구조와 흐름은 개발자가 주도하며 라이브러리는 필요할때 호출됩니다.
도구로서의 역할 : 개발자는 필요에 따라 라이브러리의 기능을 선택적으로 사용할 수 있습니다.
예시) React (javaScript 라이브러리), jQuery (javaScript 라이브러리), Numpy (Python 라이브러리)
정리해보자면 프레임워크와 라이브러리의 가장 큰 차이점은 흐름을 누가 지니고 있느냐 입니다.
프레임워크는 제어역전으로 개발과 구조를 프레임워크가 결정합니다. 비유하자면 '집(house)'입니다.
저희는 프레임워크에서 정해준 규칙과 구조에 따라 개발해야합니다. 반대로 라이브러리를 비유하자면 "가구(furniture)"입니다.
개발자를 중심으로 코드의 구조와 흐름을 만들어낼 수 있습니다.
간단히 말하면 프레임워크는 개발자가 프레임워크라는 특정공간에 들어가서 사용한다는 느낌이고
라이브러리는 라이브러리 자체를 들고 가져가 사용하고 호출한다고 생각하시면 될 것 같습니다.
'FE 개발' 카테고리의 다른 글
[FE] GraphQL & Axios 사용법 (0) | 2024.03.26 |
---|---|
[FE 개발] 가상 돔과 실제 돔 (0) | 2024.01.18 |
[FE 개발] 동기와 비동기 (0) | 2024.01.17 |
[Git] commit 이력 대거 수정 (Git filter repo) (3) | 2023.12.06 |
[Git] commit 이력 조회하는 방법 (0) | 2023.10.27 |