라이브러리 와 프레임워크 아니 둘 다 비슷비슷해 보이는데 도대체 차이점이 뭔데??
그래서 정리해봅니다...
일단 차이점을 알기 전에 이것부터 제대로 알고 가야할듯
제어의 역전(IOC)
- 전통적인 프로그래밍에서의 흐름은 개발자가 작성한 프로그램이 외부 라이브러리를 이용함
- 하지만 제어의 역전이 적용된 구조에서는 외부 라이브러리의 코드가 프로그래머가 작성한 코드를 호출
ex) 스프링 컨테이너
프레임워크
- 뼈대, 기반 구조를 뜻함
- 제어의 역전(IOC) 개념이 적용된 대표적 기술
- 정의 : 특정 문제를 해결하기 위해 상호 협력하는 클래스와 인터페이스의 집합, 완성된 어플리케이션이 아닌 개발자가 완성시키는 작업을 해야함
- 원하는 기능 구현에 집중하여 개발할 수 있도록 필요한 기능을 갖추고 있는 것
ex) Spring Framework, node.js express, MyBatis
엉? 익스프레스가 프레임워크라고? 그러면 노드는 뭔데?
노드는 js로 만든 프로그램을 실행할 수 있는 런타임이래~!
라이브러리
- 단순 활용가능한 도구들의 집합
- 즉, 개발자가 만든 클래스에서 호출하여 사용, 필요한 클래스를 불러서 사용하는 방식
- 공통으로 사용될 수 있는 특정한 기능들을 모듈화한 것
ex) React.js , jQuery
엥? 왜 리액트가 라이브러리지?
.. 나도 모른다 리액트 홈페이지에서는 라이브러리래~!
그래서 차이점이 뭔데 ?
- 위 두가지의 차이는 어플리케이션의 흐름을 누가 쥐었느냐 이다
- 프레임워크는 전체적인 흐름을 스스로가 쥐고있으며 사용자는 그 안에서 필요한 코드를 짜 넣는다
- 라이브러리는 사용자가 전체적인 흐름을 만들며 라이브러리를 가져다 쓰는 것
결론 : 와 ! 알고나니 머리가 더 아프다 !
출처 : https://steady-coding.tistory.com/457