본문 바로가기
공부/CS, Network

Framework? Library?

by k1mwnjn 2023. 3. 29.

프레임워크

- 소프트웨어 개발에 사용되는 구조와 규칙, 패턴 등을 제공.

- 코드의 구조와 실행 흐름을 결정하며 개발자는 이를 따라야 함.

- 프레임워크가 사용자를 호출하여 제어권이 역전됨.(제어의 흐름이 프레임워크에 있음.)

- ex) Angluar, Vue.js 등.

 

라이브러리

- 특정한 기능을 구현하기 위해 미리 만들어진 함수들의 집합.

- 사용자가 파일 이름이나 구조 등을 정하고 모든 결정을 내림.

- 메서드를 호출하면 사용자가 제어할 수 있음. (제어의 흐름이 개발자에 있음.)

- ex) React, JQuery 등.

 

리액트는 라이브러리이다.

 

 

제어의 역전

프레임워크와 라이브러리의 주요 차이점

- 개발자가 해왔던 일(제어)를 프로그램. 즉, 프레임워크가 대신 해준다는 의미.

- 기존 개발자가 가지고 있어야 할 객체의 제어권을 프레임워크가 대신 해준다는 의미 -> "제어권이 역전되었다."

- 프레임워크가 짜놓은 틀 안에서 수동적으로 동작하기 때문에 제어의 흐름은 프레임워크에 있음.

- 라이브러리는 개발자에게 전적으로 제어 흐름이 있으며 필요할 때마다 능동적으로 라이브러리를 호출하여 사용.

- 프레임워크는 밀키트라고 생각하면 됨. 이미 주어진 재료를 가지고 정해진 레시피대로만 하면 요리가 완성된다. 요리의 완성도는 어느 정도 보장되어 있지만 자유도는 떨어짐.

- 라이브러리는 팬트리라고 생각하면 됨. 요리하는 데 정해진 규칙은 없지만 재료는 준비되어 있음. 팬트리에 있는 식재료와 식기 등을 원하는 대로 가져가 요리하면 된다.

 

참고 : https://divheer.tistory.com/187

댓글