본문 바로가기
Web development

라이브러리 vs 프레임워크 공통점과 차이점 library vs framework

by 자몬다 2020. 6. 20.

라이브러리와 프레임워크는 늘 헷갈린다. 내가 내려받은 코드가 어떤 것인지 검색해보면 의견이 분분할 때도 있다.

 

두 가지의 공통점은 개발자의 시간 절약에 도움을 주는 코드 뭉치라는 것이다.

 

일단은 위키백과 정의를 보자.

 

라이브러리 :

라이브러리는 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임이다. 여기에는 구성 데이터, 문서, 도움말 자료, 메시지 틀, 미리 작성된 코드, 서브루틴, 클래스, 값, 자료형 사양을 포함할 수 있다.

 

프레임워크 :

컴퓨터 프로그래밍에서, 소프트웨어 프레임워크는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다. 간단히 뼈대, 골조, 프레임워크라고도 한다. 이렇게 매우 폭넓은 정의는 이 용어를 버즈워드로서, 특히 소프트웨어 환경에서 사용할 수 있게 만들어 준다.

 

여기서 눈여겨 볼 것은 라이브러리=자원, 프레임워크=구조 라는 개념이다.

말 그대로 라이브러리는 내가 불러다 쓸 수 있는 자원이며, 프레임워크는 내가 주어진 규칙에 맞추어야 하는 구조다!

 

노마드 코더의 니꼴라스님은 '누가 누구를 컨트롤하는지'의 컨셉에 따라 정의하고 있다.

내가 코드를 컨트롤한다면 라이브러리, 내 코드를 컨트롤한다면 프레임워크다.

 

라이브러리의 경우, 내가 코드를 호출할 수 있다. 파일 내에 모듈을 불러놓고 모듈에 정의된 메서드를 부른다든지.

또한 쉽게 대체될 수 있다. 내 프로젝트는 그대로 둔 채로, 같은 기능을 하는 다른 라이브러리를 사용하거나, 필요한 기능만 직접 구현해 쓸 수 있다. jQuery가 대표적이다.

 

프레임워크는 내가 작성한 코드를 프레임워크가 호출한다. 프레임워크의 규칙에 맞추어 코드를 작성해야 한다. 예를들면 config파일을 정해진 위치에 정해진 이름으로, 내용도 규칙에 맞추어 작성해야 한다. 아니면 작동하지 않는다. Django나 express가 대표적이다.

 

노마드 코더의 니꼴라스님의 설명이 크게 도움이 되어서 해당 영상의 링크를 첨부한다.

https://www.youtube.com/watch?v=t9ccIykXTCM

 

댓글