은유 블로그

🔻CONTETNS


프레임워크와 라이브러리의 차이점


프레임워크도 알고있고, 라이브러리도 알고있지만 이 둘의 차이점에 대해서는 잘 알지 못하고 넘어가는 경우가 많다. 단순히 API를 모은 게 라이브러리고 라이브러리가 모여서 프레임워크가 되는거 아니야? 라고 말할 수 있지만 사실 그렇게 쉽게 설명되지 않는 문제이다. 프레임워크를 설명할 때 등장하는 다른 여러 개념들이 있기 때문에 이 개념들과 함께 프레임워크를 알아보도록 하자.

프레임워크의 개요

프로그램 개발에 투입되는 개발자들이 늘어남에 따라서(특히 객체 지향 프로그래밍이 늘어남에 따라서) 다양성 또한 비례되어 늘어나고, 전체 시스템의 통합성, 일관성이 부족함을 느끼게 되었다. 그래서 개발자의 자유를 제한하는 대신에 일정한 테두리 안에서 일관되고 유지 보수를 쉽게 개발할 수 있는 환경인 프레임워크를 도입했다.

프레임워크란?

기본적인 뼈대가 이미 완성되어 있고 규칙이 존재하는 개발 환경

한마디로 정의하자면 위와 같다. 쉽게 예를 들자면 자동차의 뼈대가 있다면 이 뼈대를 기초로해서 세단이나 쿠페, SUV 등 외형을 덫붙혀 자동차를 완성하게 된다.

이 뼈대의 역할을 프레임워크가 하고있고 외형적인 네비게이션이나 내장장식, 유리창 등 라이브러리를 가져와서 사용해 붙일 수 있다. 다만 프레임이 만약 4WD 프레임이라면 목적은 오프로드 차량이나 SUV를 의도하는 것이므로 어느 정도 차량을 개발할 때 제약사항이 생긴다.

특정한 틀을 만들어놓고 거기에 살을 붙여 놓음으로써 프로그램을 만들 때 작업시간을 줄여주는 것이다. 이를 스켈레톤 코드라고도 하는데, 뼈대가 이미 만들어져 있어서 거기에 살만 덧붙이면 완성이 되도록 공통된 함수 또는 클래스를 미리 만들어 놓는 것을 이야기한다.

따라서 프레임워크는 다음과 같은 특징을 가진다.

  1. 개발자들이 따라야 할 가이드라인을 가진다.