[Tistory] [개발지식] 라이브러리 vs 프레임워크

원글 페이지 : 바로가기

📌 라이브러리 단순 활용가능한 도구들의 집합 개발자가 필요에 따라 라이브러리를 선택하여 사용할 수 있다. 예시 TensorFlow: 머신러닝과 딥러닝을 위한 Python 라이브러리 Pandas: 데이터 분석과 조작을 위한 Python 라이브러리 Numpy: 수치 계산을 위한 Python 라이브러리 jQeury: HTML 문서 탐색 및 조작, 이벤트 처리, 애니메이션, Ajax를 쉽게 처리할 수 있게 하는 Javascript 라이브러리 Lodash: JavaScript 유틸리티 라이브러리로서 배열, 객체, 문자열 등 다양한 작업을 편리하게 처리할 수 있게 한다. 📌 프레임워크 프레임워크는 코드를 프레임에 맞춰서 개발한다. ex) vue에서는 파일을 만들 때 .vue 라는 형태에 맞춰 사용한다. 프레임워크는 프레임을 따라 개발하는 데에 최적화된 형태일 뿐 아니라 라이브러리와 달리 더 많은 기능을 디폴트고 제공한다. 프레임워크는 애플리케이션 개발 시 필수적인 코드, 알고리즘, DB 연동과 같은 기능을 위해 어느정도 구조(뼈대)를 제공하고, 이러한 구조 위에서 사용자가 코드를 작성해서 애플리케이션을 개발한다. 예시 JAVA 서버 개발에 사용되는 Spring Framework Python 서버 개발에 사용 되는 Django, Flask 안드로이드 앱 개발에 사용되는 android 웹 개발에 사용되는 Angular, Vue.js JAVA 기반의 JSPP 를 위한 Struts 📌 라이브러리와 프레임워크의 차이점 1) 제어의 역전 (Inversion of Contorl, IoC) 라이브러리와 프레임워크의 가장 큰 차이점은 제어 흐름에 대한 주도성이 누구에게/어디에 있는가에 있다. 즉, 어플리케이션의 Flow(흐름)을 누가 쥐고 있느냐에 있다. 프레임워크는 전체적인 흐름을 프레임워크가 쥐고 있으며 사용자는 그 안에 필요한 코드를 짜 넣으면 된다. 라이브러리는 사용자가 전체적인 흐름을 직접 만들고 필요에 따라 라이브러리를 가져다가 쓴다. 라이브러리: 사용자가 흐름을 잡는다. 필요에 따라 라이브러리를 가져다 쓴다. 프레임워크: 프레임워크가 흐름을 잡는다. 제어의 역전: 기존의 개발 방식에서 개발자가 직접 제어 흐름을 제어하는 것이 아니라, 외부의 프레임워크나 라이브러리가 제어 흐름을 대신하게 되는 것 2) 구조 제공 유무 프레임워크는 전체 어플리케이션의 구조를 정의하여 일정한 개발 패턴을 따르게끔 한다. 앞서 말한 제어 흐름을 가지고 있다는 것과 유사한 의미이다. 라이브러리는 특정 기능만을 제공할 뿐 어플리케이션의 전체 구조에는 관여하지 않는다. 사용하는 개발자 스스로 원하는 방식으로 구조를 설계할 수 있다. 📌정리 <라이브러리> 1) 사용자가 흐름을 제어한다 2) 특정 기능만 제공할 뿐 어플리케이션의 전체 구조에는 관여하지 않는다 3) 사용자는 필요에 따라 라이브러리를 활용한다. <프레임워크> 1) 프레임워크가 흐름을 제어한다 (제어 흐름을 가지고 있다.) => 제어의 역전 (IoC) 2) 전체 어플리케이션의 구조를 정의하여 일정한 개발 패턴을 따르게끔 한다. 참고: https://brunch.co.kr/@skykamja24/573 리액트(React.js)와 뷰(Vue.js)의 차이점 초급 프론트엔드개발자를 위한 쉬운 설명 | UI 라이브러리 vs 프레임워크 먼저 리액트는 UI 라이브러리입니다.(https://reactjs.org/) 다들 아시겠지만 라이브러리는 참조가 쉽고, 라이브러리의 일부분 brunch.co.kr https://idkim97.github.io/2022-08-16-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC%20vs%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC/ [개발상식] 프레임워크(Framework)와 라이브러리(Library)의 차이 프레임워크 라이브러리 차이. 라이브러리 프레임워크 차이. idkim97.github.io https://hudi.blog/inversion-of-control/ 제어의 역전 (Inversion Of Control, IoC) 학습 동기 우아한테크코스 레벨2에서 스프링을 본격적으로 사용하면서, 스프링에서 제공하는 의존성 주입과 스프링 빈(Bean)을 접하게 되었다. 이 개념들에 익숙해지기 전 밀접하게 관련이 있어 hudi.blog https://velog.io/@kwontae1313/%EC%A0%9C%EC%96%B4-%EC%97%AD%EC%A0%84IoC%EA%B3%BC-%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%A3%BC%EC%9E%85DI 제어의 역전(IoC) 프레임워크와 라이브러리의 가장 큰 차이점을 제어의 역전(IoC)라고 하였다. 제어하는 것은 개발자의 역할이라고 생각하지만, 프레임워크를 쓰게 되면 프레임워크의 틀안에서 개발자의 짜둔 어 velog.io

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다