프레임워크와 라이브러리의 차이점에 대해 설명해 주세요.

프레임워크란?

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

  • 제어의 역전 개념이 적용된 대표적인 기술이다.

프레임워크 특징

  • 개발자가 따라야 하는 가이드를 제공한다.

  • 개발할 수 있는 범위가 정해져있다.

  • 개발자를 위한 다양한 도구, 플러그인들을 지원한다.

프레임워크 장단점

  • 장점

    • 개발 시간을 줄일 수 있다.

    • 정형화 되어 있어 일정수준 이상의 품질을 기대할 수 있다.

    • 유지 보수가 쉽다.

  • 단점

    • 너무 의존하면 직접 구현하는 능력이 떨어져서 스스로 개발하는 것이 어려워질 수 있다.

    • 습득 시간이 오래 걸린다.

프레임워크 종류

구분
설명
종류

영속성 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