개발 중에
"OO 라이브러리가 있어서 사용했습니다".
"이번 개발에서는 OO 프레임워크를 사용했습니다." 등
라이브러리와 프레임워크는 자주 사용하는 용어 입니다.
네이버 사전 정의
라이브러리 library
컴퓨터 프로그램에서 자주 사용되는 부분 프로그램들을 모아 놓은 것. 언제든지 자유롭게 이용할 수 있도록 구성되어 있다.
프레임워크 framework
어떤 일에 대한 판단이나 결정 따위를 위한 틀. ⇒규범 표기는 미확정이다.
라이브러리와 프레임워크
라이브러리와 프레임 워크의 공통점 재사용한 가능한 코드의 모음입니다.
라이브러리
라이브러리는 개발자가 언제든지 필요에 따라서 설치하고 자유롭게 사용할 수 있습니다.
ex) react, vue, 날짜 라이브러리, 차트 라이브러리 등
프레임워크
프레임워크에서 기본적인 기능을 제공하고, 그에 맞는 표준과 가이드에 맞게 개발자가 개발을 진행해야 합니다.
장점으로는 개발자가 더 빠르게 개발 할 수 있다는 장점이 있고,
복잡한 개발 보다는 문제 해결에 집중할 수 있다는 장점이 있습니다.
ex) Next.js, Nuxt.js Spring 등
제어의 역전
라이브러리와 프레임워크가 가장 중요한 차이점은 제어의 역전(IoC, Inversion of Control) 입니다.
프레임워크를 사용한다는 것은
개발자가 프로젝트를 만들고, 필요한 라이브러리를 설치하고 사용하는 것이 아니고,
이 모든 과정을 프레임워크에 위임하는 것 입니다.
프레임워크가 이러한 과정을 위임하면
개발자는 초기 프로젝트 설정 등 복잡한 과정은 생략하고 빠르게 개발을 진행할 수 있고,
비즈니스 로직에 좀 더 집중할 수 있습니다.
단점으로는 일반 개발자가 프레임워크의 개념과 원리를 이해하기 어려울 수 도 있습니다.
프레임워크에 대해서 이해도가 부족하게 되면,
기존에 프레임워크에 기능이 있지만, 추가적으로 불필요한 라이브러리를 사용할 수 있고,
반대로 기껏 프레임워크를 도입하였지만 정작 필요한 기능은 없을 수 도 있습니다.
프레임워크 도입 전 제공하는 기능을 확인해보는 것이 좋습니다.