라이브러리와 프레임워크의 차이는 단어 자체의 뜻인 도서관과 뼈대라는 의미를 생각해보면 이해하기 쉽다
도서관에서 자유롭게 책을 열람하는 일과 인부가 정해진 설계도에 따라 건물을 완성하는 모습을 생각해보자
도서관에 들어가서 책장에서 원하는 책을 집어들고 필요한 내용을 열람하는 과정까지 사용자인 우리가 일의 흐름을 결정한다.
반면, 프레임워크는 미리 철근으로 뼈대를 만들고 건물을 짓는 공사현장이라고 생각해보자.
내가 공사 현장을 겪어보진 못했지만 설계도에 따라 뼈대가 세워지면 인부들은 내키는대로 작업하지 않고 자신에게 정해진 방식으로 건물을 만들어나간다.
떠올린 이미지에서 가장 큰 차이는 일의 주도권(어플리케이션의 흐름)이 누구에게 있느냐다.
자유롭게 책을 열람하는 도서관처럼 라이브러리는 어플리케이션의 흐름을 사용자가 가지고 있고, 프레임워크는 건설 중인 인부처럼 미리 정해진 흐름에 따른다는 점이 라이브러리와 프레임워크의 차이다
라이브러리 : 패키지의 집합
패키지 : 모듈의 집합
모듈 : 함수와 변수의 집합
으로 외우지 말고 위 그림으로 한번에 이해하고 넘어가자