프레임워크(Framework)
작업(work)의 구조(frame)가 정해져 있는 라이브러리
단, '프레임워크가 원하는 방식'대로 다양한 기능을 제공
[유명한 프레임워크]
1) Java 서버 개발에 사용되는 Spring
2) Python 서버 개발에 사용되는 Django, Flask
3) 안드로이드 앱 개발에 사용되는 Android
4) 아이폰 앱 개발에 사용되는 Cocoa Touch
5) 웹 개발에 사용되는 React, Angular, Vue.js 등
라이브러리(Library)
현실세계에서의 라이브러리(도서관)란 필요할 때마다 꺼내볼 수 있는 책(지식)들이 모여있는 곳
프로그래밍에서의 라이브러리란 필요한 기능들이 모여있는 코드의 묶음이라고 생각할 수 있음
자주 사용되는 기능들을 라이브러리(객체나 함수등의 형태)로 만들어두면, 필요할 때마다 직접 호출하여 사용할 수 있음
[남들이 만들어둔 외부 라이브러리도 사용 가능]
1) Browser환경에서 script src 로 불러들이는 js파일(JQuery 등)
2) node.js 환경에서 npm으로 설치한 모듈
3) Python 환경에서 pip로 설치한 패키지/모듈
4) Java 환경에서 설치한 jar
정리) 프레임워크 vs 라이브러리
가장 큰 차이점은 "코드 흐름의 제어권"이 누구에게 있는가?
프레임워크
: 개발자가 구현한 메서드가 프레임워크에 의해 호출됨
>> 이를 제어의 역전(IoC: Inversion of Control)이라고 함
라이브러리
: 라이브러리의 객체나 함수를 개발자가 직접 호출하여 사용함
참고 : https://curryyou.tistory.com/363
댓글