프레임워크란
프로그래밍 언어는 컴퓨터와 의사소통하기 위한 약속이다. 그럼 프로그래밍 언어만 있으면 우리가 원하는 모든 것을 만들(프로그래밍할) 수 있을까? 결론부터 말하면, 프로그래밍 언어만으로는 어렵다. 정확히는 순수하게 프로그래밍 언어로 고도화된 시스템을 개발하는 것은 거의 불가능하다. 그래서 프레임워크framework가 필요하다.
프로그래밍을 한 번도 해 보지 않았다면 프레임워크의 개념이 어렵게 느껴질 수도 있으니, 예를 들어 설명해 보겠다. 장난감 블록으로 성castle과 해적선pirate ship을 만든다고 가정해 보자. 블록을 결합하는 기본 방법은 알고 있는 상태다. 이 상태에서 아무 기반 없이, 즉 크기, 모양, 구조에 대한 설명 없이 수천 개의 블록을 주었을 때 성이나 해적선을 만들 수 있을까? 결합 방법을 안다고 해도 장난감 블록을 처음 만들어 보는 사람은 완성품을 한 번에 만들기가 어렵다. 물론 만들 수야 있겠지만 굉장히 오래 걸리고 힘든 일이 될 것이다.
그래서 장난감 회사에서는 성과 해적선을 만드는 데 필요한 블록을 모아 조립 설명서와 묶어서 성 세트, 해적선 세트 등으로 판매한다. 세트를 구매하면 설명서를 보고 그대로 조립해 성이든 해적선이든 만들 수 있다. 세트가 없다면 선체, 갑판, 돛과 돛대 모양을 만들기 위해 이 블록 저 블록을 끼웠다 뺐다를 반복하며 맞는 블록을 찾아 조립하는 과정을 계속해야 한다. 맞는 블록을 찾아서 만들었다 하더라도 세트만큼 완성도 있게 모양이 나올지도 미지수다.