프레임워크와 라이브러리의 차이점에 대해 설명해 주세요.
프레임워크란?
개발자가 소프트웨어를 개발함에 있어 코드를 구현하는 개발 시간을 줄이고, 코드의 재사용성을 증가 시키기 위해 일련의 클래스 묶음이나 뼈대, 틀을 라이브러리 형태로 제공되는 것을 말한다.
제어의 역전 개념이 적용된 대표적인 기술이다.
프레임워크 특징
개발자가 따라야 하는 가이드를 제공한다.
개발할 수 있는 범위가 정해져있다.
개발자를 위한 다양한 도구, 플러그인들을 지원한다.
프레임워크 장단점
장점
개발 시간을 줄일 수 있다.
정형화 되어 있어 일정수준 이상의 품질을 기대할 수 있다.
유지 보수가 쉽다.
단점
너무 의존하면 직접 구현하는 능력이 떨어져서 스스로 개발하는 것이 어려워질 수 있다.
습득 시간이 오래 걸린다.
프레임워크 종류
영속성 Framework
데이터의 CRUD를 다루는 클래스 및 설정 파일들을 라이브러리화 하여 구현한 프레임워크
- MyBatis - Hibernate
자바 Framework
Java EE를 통한 웹 애플리케이션 개발에 초점을 맞춰 필요한 요소들을 모듈화하여 제공하는 프레임워크
- Spring Framework - 전자정부표준(Spring) - Struts
화면 구현 Framework
Front-End를 보다 쉽게 구현할 수 있게 틀을 제공하는 프레임워크
- BootStrap - Foundation - MDL
기능 및 지원 Framework
특정 기능이나 업무 수행에 도움을 줄 수 있는 기능을 제공하는 프레임워크
- Log4j - JUnit 5 - ANT
라이브러리란?
라이브러리란 개발자가 만든 클래스들의 나열로, 다른 프로그램들에서 사용할 수 있도록 제공하는 방식이다.
프레임워크와 라이브러리의 차이점
라이브러리는 사용자가 흐름에 대한 제어를 하며 필요한 상황에 따라 가져다가 쓸 수 있지만, 프레임워크는 전체적인 흐름을 자체적으로 제어한다는 특징이 있다.
프레임워크와 라이브러리는 실행 흐름에 대한 제어 권한이 어디 있는지에 따라 달라진다.
프레임워크를 사용하면 사용자가 관리해야 하는 부분을 프레임워크에 넘김으로써 신경써야 할 것을 줄이는 제어의 역전(
IoC, Inversion Of Control)이 적용된다.프레임워크는 그 스스로 제어 흐름의 주도성을 갖는 반면, 라이브러리는 개발자가 가지고 있다.
라이브러리와 달리 프레임워크는 이미 프로그래밍에 대한 규칙을 가지고 있다. 예를 들면 태그 설정이나 DB 연동 방법 등에 대한 규칙을 가지고 있고 개발자는 이를 따라야 한다.
참고
Last updated