본문 바로가기
Spring

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

by HTT 2023. 1. 19.

오늘은 헷갈리는 내용에 내용에 대해 정리해보았다.

 


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

 


 

이론적인 크기로 비교한다면 쉽게 이해할 수 있다.

프레임워크
: 애플리케이션의 구조
원하는 개발에 집중할 수 있도록 뼈대를 제공하는 것으로 라이브러리의 컬렉션이라고 할 수 있다. 이 둘 사이의 주된 차이점은 제어의 역전, 즉 프레임워크에는 작업을 호출할 수 있는 제어권이 있다는 것이다.

프레임워크는 필요한 템플릿 또는 프레임을 이미 보유하고 있기 때문에, 기존 항목을 기준으로 필요한 리소스를 호출할 수 있다.

=> Spring, Vue.js, Android, Express.js 등이 있다.

 

라이브러리
: 애플리케이션의 특정 기능
라이브러리란 컴퓨터 프로그램에서 빈번하게 사용되는 사전 컴파일된 루틴 또는 리소스(클래스, 템플릿, 설정 데이터 등)를 모아둔 것이다.

=> json, mybatis, jackson, jQuery, jstl 등이 있다.

 

 

 

프레임워크와 라이브러리의 가장 큰 차이점은 "제어의 역전(IoC)" 개념이 적용되느냐가 핵심이다.

즉, 제어의 흐름을 누가 주도하는지에서 차이가 나타난다.

 

라이브러리는 개발자가 필요할 때 능동적으로 일부 가져다 쓰는 것이지만, 프레임워크는 개발자가 아닌 프레임워크에 주도성이 내재하고 있다. 코드의 생명주기를 프레임워크에서 관리해주는 것이다. 프레임워크에는 분명한 제어의 역전 개념이 적용되어 있어야 하며, 애플리케이션 코드는 프레임워크의 뼈대 안에서 수동적으로 동작해야 한다.

 

 

 

 

 

처음에는 프레임워크가 라이브러리고, 라이브러리가 프레임워크 아닌가? 하고 생각했지만 공부해보니 차이가 분명하다는 것을 알게 되었다. 제어의 역전 개념이 있어야 프레임워크라는 것을 정확히 이해했다.

쉽게 말해서 귀찮은 일을 덜어주는 것이 프레임워크였고, 라이브러리는 내가 직접 주도적으로 골라서 사용하는 것을 라이브러리라고 하는 것이다.

그동안 Spring을 사용하며 Spring은 정말 편한 거구나! 하고 막연하게 생각했던 지난 날의 나를 반성하게 된다. 나는 그동안 Spring프레임워크를 사용하면서 jstl, jQuery라이브러리 등을 사용해왔구나.. 깨달았다.

 

 

 

 

 

참고 및 출처

https://www.redhat.com/ko/topics/cloud-native-apps/what-is-a-Java-framework#%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC-api-%EB%B9%84%EA%B5%90

https://webclub.tistory.com/458

'Spring' 카테고리의 다른 글

[ Spring ] 스프링 개념정리  (0) 2023.02.09
2023-01-17 JAVA 미세먼지API  (0) 2023.01.17
Maven이란?  (0) 2023.01.16
2023-01-16 JSON, AJAX 랭킹정보  (0) 2023.01.16
2023-01-04 트랜잭션 처리하기  (0) 2023.01.04

댓글