Search
📁

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

프레임워크(Framework)와 라이브러리(Library)는 소프트웨어 개발에 사용되는 두 가지 핵심적인 개념

프레임워크 (Framework)

소프트웨어 개발에 필요한 구조와 규칙을 제공하는 환경.
개발자가 애플리케이션을 빠르게 구축하고 관리할 수 있도록 도와주는 일련의 라이브러리, 도구, 규칙, 템플릿 등의 모음.
즉 개발에 집중할 수 있도록 필요한 기능을 갖추고 있는 뼈대.
어느 블로그 설명을 봤는데 모델하우스를 짓는것.
큰 뼈대는 우리가 수정할 수 없다. 제공하는 틀 안에 우리가 꾸미기. 통제는 프레임워크가.

특징:

1.
제어 역전 (Inversion of Control, IoC):
프레임워크가 애플리케이션의 제어를 가져가고, 개발자가 정의한 코드가 프레임워크에서 호출되는 형태.
2.
스케폴딩 (Scaffolding):
프레임워크는 개발자에게 초기 구조를 제공하고, 이를 기반으로 애플리케이션을 개발할 수 있도록 돕는다.
3.
제어 흐름 (Flow of Control):
프레임워크는 전체적인 애플리케이션의 흐름을 제어하며, 개발자는 프레임워크가 제공하는 흐름에 따라 코드를 작성한다.

예시:

자바: 스프링(Spring)
파이썬: Django
자바스크립트: AngularJS/Angular
자바스크립트: React
루비: Ruby on Rails

라이브러리 (Library)

개발자가 필요한 기능을 수행하는 코드의 집합. 즉 자주 사용하는 코드 집함.
개발자가 호출하여 사용할 수 있으며, 코드를 재사용하여 개발 속도를 높이고 코드의 반복을 줄일 수 있다.
라이브러리는 일반적으로 독립적으로 동작하며, 개발자가 필요할 때 언제든지 사용할 수 있다.
이케아에서 가구를 조립하는 것. 구매자가 마음대로 조립 가능. 통제권은 가구를 산 구매자에게.

특징:

1.
호출 방식: 라이브러리는 개발자가 필요할 때 직접 호출하여 사용.
2.
독립성: 라이브러리는 독립적으로 동작하며, 개발자가 필요한 기능만 선택적으로 사용할 수 있다.
3.
재사용성: 라이브러리는 여러 프로젝트에서 재사용할 수 있으며, 코드의 재사용성을 높여준다.

예시:

jQuery (JavaScript)
NumPy (Python)
Gson (Java)
React (JavaScript)

차이점

제어흐름의 권한이 누구에게 있는가!
제어 흐름:
프레임워크는 제어 흐름을 제어하고, 개발자는 프레임워크가 제공하는 틀 안에서 코드를 작성.
라이브러리는 개발자가 필요할 때 호출하여 사용하며, 제어 흐름은 개발자가 관리.
추가적인 도구:
프레임워크는 개발에 필요한 여러 가지 도구와 규칙을 제공하여 개발을 돕는다.
라이브러리는 개발자가 필요한 기능만 선택적으로 사용할 수 있다.
사용 방법:
프레임워크는 개발자가 프레임워크의 제어를 받아 코드를 작성
라이브러리는 개발자가 필요한 때에 필요한 기능을 호출하여 사용.
프레임워크는 개발에 필요한 구조와 규칙을 제공하여 제어 흐름을 관리
라이브러리는 개발자가 필요할 때 호출하여 사용하는 코드의 집합.

참고