Just Do IT!
프레임워크(Framework)와 라이브러리(Library)의 차이 본문
728x90
반응형
프레임워크(Framework)
- 애플리케이션 개발 시 필수적인 코드, 알고리즘, DB 커넥션 등의 기능들을 위해 뼈대(구조)를 제공
- 이러한 뼈대 위에서 개발자들이 코드를 작성해 원하는 애플리케이션을 개발할 수 있다.
- 소프트웨어적으로 정의하면, 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 상호 협력하는 클래스와 인터페이스의 집합이다
- 통제권은 사용자가 아닌 프레임워크가 쥐고 있다. = 프레임워크 내에서 코드를 작성할 수 있다
(예) Java - Spring / Python - Django / 안드로이드 앱개발 - Android / JavaScript - Node.js 등
프레임워크의 특징
- 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성되어 있다
- 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의한다
- 컴포넌트들은 재사용이 가능하다
- 높은 수준에서 패턴들을 조작화 할 수 있다
라이브러리 (Library)
- 개발에 필요한 것들을 미리 구현해놓은 도구
- 재사용이 가능한 기능을 미리 구현해놓고 필요한 곳에서 호출하여 사용 가능하도록 만들어진 집합
- 특정 기능을 모아놓은 코드, 함수들이 집합이며 코드 작성 시 활용 가능한 도구들을 의미
- 개발자에게 전적으로 제어 흐름이 있으며 필요할 때마다 능동적으로 호출하여 사용한다
(예) JavaScript 라이브러리인 jQuery, 사용자 인터페이스 개발에 도움이 되는 React.js 등
프레임워크와 라이브러리의 차이점
가장 큰 차이점은 "제어 흐름"이 어디에 있는가 이다.
프레임워크
- 제어의 역전 개념이 적용되어 있다.
- 프레임워크에게 제어의 흐름을 넘겨 개발자가 작성하는 코드에서 신경 써야 할 부분을 줄인다는 뜻이다.
라이브러리
- 개발자에게 제어 흐름이 있다
- 개발자가 원하는 라이브러리를 선택해서 사용할 수 있다
728x90
'CS 정리' 카테고리의 다른 글
브라우저 저장소의 차이점 (local storage, session storage, cookie) (0) | 2023.03.31 |
---|---|
캐시(Cache)의 장단점 (0) | 2023.03.29 |
[네트워크] REST / REST API / RESTful 이란? (0) | 2023.03.27 |
브라우저의 렌더링 과정 (0) | 2023.03.27 |
[Linux] window 환경에서 Linux 사용하기 (WSL) (0) | 2023.03.21 |