코딩을 하며 항상사용하는 프레임워크와 라이브러리!
FrameWork vs Library
대체 차이가 무엇일까?
먼저 공통점에 대해 알아보자!
-> 둘다 다른 누군가가 쓴 코드이며, 좀더 편하게 코딩을 하기 위해 가져다 쓴다.
프레임워크는 복잡한 문제를 해결하거나 서술하는데 사용되는 기본 개념 구조이다
-위키백과 -
라고 나와있지만 대체 무슨소릴까?
더 자세히 알아보자
프레임워크는 어플리케이션 개발 시 필수적인 코드, 알고리즘, DB커넥션 등의 기능들을 위해 뼈대를 제공한다.
개발자들을 이러한 뼈대 위에서 코드를 작성해 개발을 할 수 있다.
쉽게 말해 프레임워크
-> 개발자가 개발을 쉽게 할 수 있도록 뼈대를 제공해준다!
ex) Java -> Spring, Pyton -> Django 등등
라이브러리는 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임이다.
여기에는 구성 데이터, 문서, 도움말, 메시지 틀 , 미리 작성된 코드, 함수, 클래스, 값 자료형 사양 등을 포함할 수 있다
-위키백과-
라이브러리는 개발에 필요한 것들을 미리 구현해놓은 도구라고 할 수 있다. 재사용이 가능한 기능을 미리 구현해 놓고 필요한 곳에서 호출하여 사용 가능하도록 만들어진 집합이다.
ex) Jquery, bootstrap, ant 등등
프레임워크는 라이브러리를 포함한다. 프레임워크 위에 개발자가 작성한 애플리케이션 코드가 올라가게 되고, 이 코드에서 라이브러리를 호출할 수 있다.
이 두 개념의 가장 큰 차이점은 "제어흐름"이 어디에 있는가 이다.
는 제어의 역전(IoC) 개념이 적용되어 있다. 즉 , 프레임워크에게 제어의 흐름을 넘겨 개발자가 작성하는 코드에서 신경써야 할 부분을 줄인다는 뜻이다.
반면
는 개발자가 전체적인 흐름을 만들어 라이브러리를 가져다 쓰게 된다. 즉 개발자에게 전적으로 흐름이 있으며, 필요할 때마다 능동적으로 라이브러리를 호출하여 사용한다.
프레임워크와 라이브러리는 둘다 좀더 쉽게 코드를 작성 할 수 있게 도와주는 누군가가 미리 작성한 코드이며, 두가지 개념의 가장 큰 차이점은 제어의 흐름이 어디에 있는가 이다.
프레임워크는 IoC즉 제어의 역전이라는 개념이 적용되어 있어, 프레임워크가 제어의 흐름을 가지고 개발자가 작성하는 코드에서 신경쓸 부분을 줄여주고, 라이브러리는 반대로 개발자가 전체적인 흐름을 만들어 사용하며 능동적으로 라이브러리를 호출하여 사용할 수 있다.