일단 라이브러리, 프레임워크는 둘다 다른 누군가가 쓴 코드인데, 우리의 프로젝트를 위해서 가져다 쓰는거다.
누가 누구를 컨트롤 하는가?
내가 모든 결정을 다 내리며 코드를 컨트롤 하는가? 아니면 누군가 정해준 규칙을 따라하고 있는가?
라이브러리 : jQuery
웹사이트에 인터랙티브한 요소를 넣을 수 있는데, 내가 필요할때 jQuery를 소환한다.
내가 필요할 때 쓴다. 다른걸로 대체도 할 수 있고. 그래도 프로젝트가 망가지지 않는다.
Python - Datetime, Pandas, Beautifulsoup
Java - Guava, Apache common library
C++ - STL
프레임워크는 다르다. 내가 불러서 쓰는 것이 아니고, 프레임워크가 나를 부른다.
프레임워크의 규칙을 따라야한다, 어디에 코드를 넣어야하는지 알려준다.
어디에 템플릿을 넣고, 컨트롤러 넣고, 뷰를 넣고.
django 웹 프레임워크.
어드민 패널을 만들고 싶다? admin.py, URL 바꾸고 싶다? url.py
django 문서를 보면서 규칙에 따라 코드들을 잘 넣어두면 django가 시작할 때 해당 파일들을 읽기 때문.
Java - Spring
Python - Django
PHP - Laravel
JavaScript - React
GO - Revel
Ruby - Rails
내가 라이브러리를 부르고, 프레임워크가 나를 부른다.
"000을 빌드하기 위한 000 라이브러리" - 내가 필요할 때 불러 사용할 수 있다.
"000을 빌드하기 위한 000 프레임워크" - 규칙과 문서가 따라오며, 내가 적극 수용해야함.
📚 Reference
라이브러리? 프레임워크? 차이점 아직도 모름? 5분 순삭.