본문 바로가기

카테고리 없음

비유와 그림으로 이해하는 프레임워크와 라이브러리의 차이

회사를 다니다 보면 비개발 직군도 라이브러리와 프레임워크라는 용어를 여기저기서 들을 수 있습니다. 그런 분들 또는 교양으로 둘의 차이를 알고 싶어 하는 분들을 대상으로 간단하게 비유와 그림으로 차이를 설명해보려 합니다.

 

예를 들어 우리가 아래 사진과 같은 카메라를 만든다고 생각해보겠습니다.

 

 

 

카메라 한 대는 다양한 구성 요소들로 이루어져 있습니다. 광학 필터, 이미지 센서, 렌즈 등등 훨씬 더 많은 것들이 필요할 겁니다.

 

자 그럼 이제 어디서부터 시작해서 만들면 될까요? 렌즈부터 가공해야 할까요? 그럴 필요가 없습니다. 이미 전문가들이 잘 만들어 놓은 프레임워크와 라이브러리를 이용하면 훨씬 더 빠르고 안정적으로 카메라를 만들 수 있으니까요. 

 

 

프레임워크(Framework) 

카메라 한 대를 만들기 위해서는 외관 프레임부터 이미지 센서 등등 모든 요소를 신경 써서 만들어야 합니다. 또 이런 구성요소들이 서로 잘 연결돼서 제대로 작동은 하는지 오류는 없는지 확인도 해야 합니다. 이 외에도 예상치 못한 문제들이 을 맞닥뜨릴 수도 있습니다.

 

프레임워크를 이용한다면 카메라 한 대를 구성하는데 필요한 기본적인 틀이 만들어져 있기 때문에 위와 같은 문제를 신경 쓸 필요가 없습니다. 내가 구성 요소를 채워 넣어야 하는 부분들만 채워 넣으면 카메라가 완성됩니다. 어떤 렌즈를 사용할지, 어떤 배터리를 사용할지와 같은 몇 가지 사항만 정하면 됩니다. 잘 만들어진 틀 위에 덧 붙여서 만들었기 때문에 완성 속도도 빠르고 잘 동작합니다.

 

단, 모든 것을 내 마음대로 만들지 못했다는 아쉬움은 있을 수도 있겠네요.

 

 

 

라이브러리(Library) 

라이브러리는 전문가에 의해 미리 만들어진 도구로 어떤 특정 기능을 수행할 수 있습니다. 앞서 카메라 제작 비유로 돌아가면, 렌즈 제작 라이브러리 사용해서 렌즈를 만들어 넣을 수 있습니다. 렌즈는 렌즈 라이브러리를, 배터리는 배터리 라이브러리를 사용하면 됩니다.

 

 

프레임워크와 라이브러리 모두 비교적 적은 양의 코드로 프로그램을 만들 수 있다는 점에서 개발자의 생산성 향상에 큰 도움이 됩니다.