🧩 BE
home

라이브러리와 프레임워크의 차이

Date
2024/10/22
Category
Programming Language
Tag
Java
Detail

프레임워크(Framework)

개발자가 소프트웨어를 개발함에 있어 코드를 구현하는 개발 시간을 줄이고, 코드의 재사용성을 증가시키기 위해 일련의 클래스 묶음이나 뼈대, 틀을 라이브러리 형태로 제공하는 것.
제어의 역전 개념이 적용된 대표적인 기술이다.

프레임워크의 특징

개발자가 따라야 하는 가이드를 제공
개발할 수 있는 범위가 정해져 있음
다양한 개발 툴, 플러그인을 지원함

프레임워크의 장단점

개발 시간을 줄일 수 있음
정형화되어 있기에 일정 수준 이상의 품질을 기대할 수 있음
유지 보수가 쉬움
너무 의존하면 개발자들의 능력이 떨어져서 스스로 직접 개발이 어려워짐
습득에 걸리는 시간이 오래 걸림

프레임워크의 종류

구분
설명
종류
영속성
데이터의 저장, 조회, 변경, 삭제를 다루는 클래스 및 설정 파일들을 라이브러리화하여 구현한 프레임워크
- Mybatis - Hibernate - QueryDSL
자바 (백엔드)
JavaEE를 통한 웹 어플리케이션 개발에 초점을 맞추어 필요한 요소들을 모듈화하여 제공하는 프레임워크
- Spring Framework - 전자정부표준 - Spring - Micronaut
화면 구현 (뷰)
Front-End를 보다 쉽게 구현할 수 있게 틀을 제공하는 프레임워크
- Bootstrap - Thymeleaf - Vue.js
기능 및 지원
특정 기능이나 업무 수행에 도움을 줄 수 있는 기능을 제공하는 프레임워크
- Log4j - JUnit5 - Spring Security

라이브러리(Library)

라이브러리란 개발자가 만든 클래스들의 나열로, 다른 프로그램들에서 사용할 수 있도록 제공하는 방식

프레임워크와 라이브러리의 차이점

라이브러리와 프레임워크의 차이는 제어 흐름에 대한 주도권이 누구에게 있는가에 있다.
즉, 애플리케이션의 Flow(흐름)를 누가 쥐고 있느냐에 달려있다.
프레임워크는 그 스스로 제어 흐름의 주도성을 갖는 반면, 라이브러리는 개발자가 가지고 있다.
프레임워크는 “무대”
우리가 연기만 하면, 무대 조명, 음악, 순서 등은 프레임워크가 알아서 진행
개발자는 정해진 규칙(인터페이스, 어노테이션 등)에 따라 구현만 하면 됨
라이브러리는 “도구함”
내가 직접 꺼내서 이 도구 써야지! 하면서 직접 제어해서 사용
순서, 로직, 흐름은 모두 내가 통제
라이브러리와 달리 프레임워크는 이미 프로그래밍에 대한 규칙을 가지고 있다. 예를 들면 설정파일의 태그설정이나, DB연동 방법 등에 대한 규칙을 가지고 있고 개발자는 이를 따라야한다.