
프레임워크
최근 수정 시각:
분류
|
읽기 전에 답부터 이야기하면 둘의 차이를 엄밀히 말하는 건 불가능에 가깝다. 두 용어 모두 법적인 정의가 있거나 공식 기관에서 기준을 세워 정의한 명칭이 아니기 때문이다. 대륙, 섬을 구분하는 기준이나, 행성의 기준처럼 합의가 된 사항도 아니다. 따라서 프레임워크 또는 라이브러리를 개발하는 여러 회사나 관계자마다 같은 것을 개발해도 프레임워크라고 부를 수도 있고, 라이브러리라고 부를 수도 있다.
많은 블로그나 포럼, 유튜브 등에서 둘의 차이를 설명하곤 하는데 학술적으로는 의미가 없는 내용이다. 해외의 유명한 개발책들을 읽어도 갑론을박이 활발한 것을 알 수 있다. 아래의 설명을 읽을 때 대략 이런 경향이 있다로 이해를 해야지 단순하게 라이브러리는 무엇이고 프레임워크는 무엇이다 같은 이야기를 면접 때 한다면 매우 불리해질 것이다.
대표적으로 웹 프론트엔드의 프레임워크 대표주자로 꼽히는게 Vue.js와 React인데, 둘은 일반적으로 우리가 이야기하는 프레임워크 정의에 완벽하게 부합한다. 따라서 '프론트 프레임워크'를 소개하는 글에는 십중팔구 둘을 같이 소개한다. 하지만 Vue측에서는 자신을 프레임워크라고 소개하고 React측에서는 자신을 라이브러리라고 소개한다. 따라서 어떤 개발물을 프레임워크냐 라이브러리냐라고 보는 기준은 적나라하게 말하자면 개발진들이 이걸 뭐라고 부르기로 했는지에 따라 정해진다고 해도 과언이 아니다.
보통 프레임워크라고 하면 프레임워크는 라이프 사이클이나 일종의 상태, 사전 정의된 실행 흐름을 가지며 대부분의 프레임워크들은 다양한 기능들을 지원하기 위해 많은 라이브러리들을 가지고 있다. 그러다 보니 형태상으로는 여러 기능을 가진 클래스와 라이브러리가 '특정 결과물을 구현하고자' 합쳐진 모양이라고 볼 수 있다. 즉, 외관의 경향성만 보자면 라이브러리 여럿이 모인 더 큰 규모의 개발물이 프레임워크이고, 라이브러리는 프레임워크의 하위 집합이라고 볼 수 있다. 다만 이 분류법도 예외가 있다.
메서드 및 클래스화, 즉 모듈화를 하는 이유 중 하나가 재사용성인데, 프레임워크는 이 재사용성을 큰 그룹 단위로 묶어주었다고 보면 된다. 재사용 가능한 수많은 클래스들과 라이브러리들을 융합한 채로 처음부터 제공해 주기 때문에, 여러 개의 표준을 만들지 않아도 돼서 개발자의 피곤함을 덜어준다.
예를 들어, 웹 프레임워크는 '웹 서버'를 구현하기 위한 목적으로 만들어진 프레임워크다. 웹 서버를 구현하기 위해선 페이지 구현, DB 관리, 유저 인증, API 서버, 라우팅, 사이트맵, 세션 관리 등 여러 기능이 들어있어야 할 것이다. 각 기능을 보유한 라이브러리들을 한데 묶어 담은 것이 바로 프레임워크라고 보면 된다.
결론을 내리자면 만든 사람이 라이브러리라고 하면 라이브러리이고 프레임워크라고 하면 프레임워크인 것으로 볼 수 있다.
많은 블로그나 포럼, 유튜브 등에서 둘의 차이를 설명하곤 하는데 학술적으로는 의미가 없는 내용이다. 해외의 유명한 개발책들을 읽어도 갑론을박이 활발한 것을 알 수 있다. 아래의 설명을 읽을 때 대략 이런 경향이 있다로 이해를 해야지 단순하게 라이브러리는 무엇이고 프레임워크는 무엇이다 같은 이야기를 면접 때 한다면 매우 불리해질 것이다.
대표적으로 웹 프론트엔드의 프레임워크 대표주자로 꼽히는게 Vue.js와 React인데, 둘은 일반적으로 우리가 이야기하는 프레임워크 정의에 완벽하게 부합한다. 따라서 '프론트 프레임워크'를 소개하는 글에는 십중팔구 둘을 같이 소개한다. 하지만 Vue측에서는 자신을 프레임워크라고 소개하고 React측에서는 자신을 라이브러리라고 소개한다. 따라서 어떤 개발물을 프레임워크냐 라이브러리냐라고 보는 기준은 적나라하게 말하자면 개발진들이 이걸 뭐라고 부르기로 했는지에 따라 정해진다고 해도 과언이 아니다.
보통 프레임워크라고 하면 프레임워크는 라이프 사이클이나 일종의 상태, 사전 정의된 실행 흐름을 가지며 대부분의 프레임워크들은 다양한 기능들을 지원하기 위해 많은 라이브러리들을 가지고 있다. 그러다 보니 형태상으로는 여러 기능을 가진 클래스와 라이브러리가 '특정 결과물을 구현하고자' 합쳐진 모양이라고 볼 수 있다. 즉, 외관의 경향성만 보자면 라이브러리 여럿이 모인 더 큰 규모의 개발물이 프레임워크이고, 라이브러리는 프레임워크의 하위 집합이라고 볼 수 있다. 다만 이 분류법도 예외가 있다.
메서드 및 클래스화, 즉 모듈화를 하는 이유 중 하나가 재사용성인데, 프레임워크는 이 재사용성을 큰 그룹 단위로 묶어주었다고 보면 된다. 재사용 가능한 수많은 클래스들과 라이브러리들을 융합한 채로 처음부터 제공해 주기 때문에, 여러 개의 표준을 만들지 않아도 돼서 개발자의 피곤함을 덜어준다.
예를 들어, 웹 프레임워크는 '웹 서버'를 구현하기 위한 목적으로 만들어진 프레임워크다. 웹 서버를 구현하기 위해선 페이지 구현, DB 관리, 유저 인증, API 서버, 라우팅, 사이트맵, 세션 관리 등 여러 기능이 들어있어야 할 것이다. 각 기능을 보유한 라이브러리들을 한데 묶어 담은 것이 바로 프레임워크라고 보면 된다.
결론을 내리자면 만든 사람이 라이브러리라고 하면 라이브러리이고 프레임워크라고 하면 프레임워크인 것으로 볼 수 있다.
![]()
이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외)
기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권을 갖습니다.
나무위키는 백과사전이 아니며 검증되지 않았거나, 편향적이거나, 잘못된 서술이 있을 수 있습니다.
나무위키는 위키위키입니다. 여러분이 직접 문서를 고칠 수 있으며, 다른 사람의 의견을 원할 경우 직접 토론을 발제할 수 있습니다.