본문 바로가기
Web/Spring

Framework 와 라이브러리의 차이는 무엇일까?

by upswp 2021. 5. 2.

서론

Spring을 접하면서 가장 먼저 만나는 단어는 단연 Framework라는 말이다. Framework라는 말은 일상생활에서도 굉장히 많이 사용하고 있지만 Spring과 같은 SW분야에서는 그 이해가 라이브러리와 헷갈리는 결과를 가지고 온다. 이 글을 통해서 그동안에 Framework와 라이브러리에 혼돈을 가져온 부분들을 정리를 통해 해결해보고자 한다.


 

본론

Framework의 어원에 대해서 알아보자. Framework는 두 단어가 합쳐진 단어이다.

Frame + work, Frame은 뼈대라는 뜻으로 흔히 틀이라는 뜻으로 사용이 된다. work는 말 그대로 일하다 라는 동사이다. 풀어서 설명을 해보면 뼈대를 통해 일을 한다라는 뜻이다. 

 

Library의 어원에 대해서 알아보자. Library는 일상생활에서 도서관으로 통하는 말이다. 

 

조금 더 깊게 들어가 보자. Spring의 관점에서 본다면 Framework라는 말은 뼈대를 통해 일을 하는 개념이 되는 것인데, 그렇다면 그 뼈대는 무엇인가에 대해서 고민해보았다. 여기서 이야기하는 뼈대란, 어떠한 문제점들을 해결하기 위해 보인 형태를 이야기한다.

 

정리를 해보자면 Framework는 특정 형태의 소프트웨어 문제를 해결하기 위해, 상호 협력하는 클래스와 인터페이스의 집합이라고 볼 수 있다. 이로인한 장점은 재사용성이 높아지고, 구조가 단순해지며 역할이 확실히 구분된 상태에서 개발이 진행된다는 장점이 있다. 또한 확장성이 향상되고 유지보수가 용이하다는 장점이 있다. 

 

라이브러리는 어플리케이션에서 호출할 수 있는 함수와 루틴으로 구성이 되어있다.

 

아직까지 정확하게 이해가 안될것이다. 조금 더 깊게 들어가 보자.

주도권이라는 관점에서 라이브러리와 Framework를 구분해보겠다. 

 

라이브러리개발의 주도권이 개발자한테 있다. 라이브러리를 쓸 거면 개발자가 결정하고 사용을 하고 안 쓸 거면 개발자가 안 사용하면 된다.

 

Framework주도권이 Framework한테 있다. 개발할 때 개발의 주도권이 Framework에게 있으며 제어의 역전이 일어난 것이다. 

 


결론

가장 헷갈리는 개념을 시작으로 Spring에 있어서 깊이 있게 학습할 예정이다. Framework와 라이브러리를 구분하며 Spring의 개념 정리의 시작을 정리해보았다.