본문 바로가기
카테고리 없음

프레임워크? 라이브러리?

by 춘업튀 2023. 11. 1.

유데미 공부 중에 프레임워크랑 라이브러리에 관한 차이가 나왔는데 좀 헷갈려서 정리하고자 한다.

 

프레임워크와 라이브러리의 공통점은 둘 다 다른 사람이 작성한 코드라는 것이다.

컴퓨터 프로그래밍에서, 소프트웨어 프레임워크(software framework)는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다. 간단히 뼈대, 골조(骨組), 프레임워크(framework)라고도 한다.      - 위키백과

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

 

제어역전?

개발자가 해왔던 일(제어)을 프로그램. 즉, 프레임워크가 대신 해준다는 의미이다.

원래 개발자가 가지고 있어야 할 객체의 제어권을 프레임워크가 대신 해준다는 의미로,
"제어권이 역전되었다" 라는 뜻에서 제어역전 이라고 한다.

 

차이점

프레임워크와 라이브러리의 차이점은 제어 흐름이 누구에게 있느냐이다.

 

프레임워크

집을 짓기 위한 과정을 라이브러리와 프레임워크에 비유해보면, 프레임워크는 모델하우스를 짓는것에 비유할 수 있다. 모델하우스의 소파의 위치나 의자와 책상의 위치 등 우리가 수정할 수 있는 범위는 제한적이다. 주방의 위치, 기둥의 개수, 방의 개수 등 집을 이루고있는 굵직한 뼈대는 수정할 수 없다. 사용자는 모델하우스가 제공하는 안에서만 움직일 수 있다. 프레임워크가 제공하는 틀에 따라 코드를 작성해야 하는것이다. 즉, 통제권은 사용자가 아닌 프레임워크가 가지고 있다.

라이브러리

하지만 라이브러리는 이케아에서 산 재료로 가구를 조립하는것에 비유할 수 있다. 집에서 사용할 가구를 조립하거나 만들기 위해 벌목부터 시작해서 목공을 하거나, 가죽을 얻기위해 사냥을 하고싶은 사람은 거의 없을것이다. 그래서 이케아 혹은 가구점에 가서 기본적인 재료를 사서 배치할 수 있다. 재료의 선택권이나 통제권은 사용자에게 있는 것이다.

 

프레임워크는 프로그램이 필요한것을 개발자에게 알려줌으로써 제어권을 역전하고,(제어권이 프레임워크에 있다)

라이브러리는 개발자가 필요할 때 마다 설치, 혹은 호출함으로써 개발자가 능동적으로 사용하게 된다.(제어권이 개발자에게 있다)

 

 

 

참고사이트

https://velog.io/@whitecloud94/%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC-vs-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC

https://code-lab1.tistory.com/284