라이브러리(Library) 와 프레임워크(Framework)의 뜻과 차이점

2023. 6. 27. 16:03

라이브러리란? 프레임워크란? 차이점은? 왜 알아야 할까

라이브러리와 프레임워크의 정확한 뜻과 차이점은 무엇일까?

학부생일때는 정확히 이게 뭐고 저게 뭔지 모르고 사용할때가 많습니다 

알고 사용을하면 더욱 효과적으로 사용할 수 있고 정확하게 사용할수 있습니다.


 

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

 

 

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

 


 

위키백과에 나온 사전적인 의미로만 보면 학부생이나 이제 막 공부를 시작한 사람들에게는 글을 읽어도

무슨 말인지 모르거나 정확히 이게 뭘 뜻하는지 모를것입니다

 

라이브러리

라이브러리는 쉽게 비유를 해서 말을 하면 내 사용할 책상을 만드는 것이다.

원하는 재료들로 책상을 사용할 목적에 맞게  조립하고 자르고 원하는 위치에 둘수 있다.

어떤 재료를 사용할껀지 어디에 둘껀지 모든것은 내 선택에 있다.

라이브러리도 내가 뭘 사용할지 선택권이나 통제권은 만드는 나(사용자)에게 있다는 것이다

 

프레임워크

프레임워크는 인터넷을 찾다가 좋은 비유를 봤는데. 프레임워크를 모델하우스에 비유하는 것이다.

모델하우스는  소파나 가구의 위치는 내가 정해서 들어갈수 있지만 방의 개수를 정하거나

주방이나 창문,  화장실의 위치를 바꿀수는 없다 집을 이루고 있는 전체적인 뼈대는 바꿀수가 없는 것이다.

정해진 뼈대(틀)에 맞춰서 우리는 코드를 짜야한다는 뜻이다.

통제권은 나(사용자)가 아닌 프레임워크가 가지고있다.

 

 

 

* 제어역전*

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

스프링과 같은 프레임워크를 사용하다보면, 스레드를 직접 만들고,

객체의 생명주기를 직접 코딩하진 않는 것 처럼.

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

 

 


  공통점 차이점
라이브러리 코드에 도움이되는 타인이
작성한 코드의 집합
선택권이나 통제권은
사용자에게 있다

라이브러리는 개발자가 필요할 때 마다
설치, 혹은 호출함으로써 개발자가
능동적으로 사용하게 된다
프레임워크 통제권은 프레임워크가
가지고 있다,

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

참고

1.

https://velog.io/@whitecloud94

2. https://ko.wikipedia.org/wiki/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC

3. https://ko.wikipedia.org/wiki/%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC_(%EC%BB%B4%ED%93%A8%ED%8C%85)

 

'자유공부장' 카테고리의 다른 글

트러블슈팅(troubleshooting)은 무엇일까?  (0) 2023.06.29

BELATED ARTICLES

more