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

프레임워크(Framework)란?

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

프레임워크의 특징

  1. 개발자가 따라야하는 가이드를 제공한다.
  2. 개발할 수 있는 범위가 정해져있다.
  3. 개발자를 위한 다양한 도구, 플러그인들을 지원한다.

프레임워크의 장점

  • 개발 시간을 줄일 수 있다.
  • 정형화되어 있기 때문에 일정 수준 이상의 품질을 기대할 수 있다.
  • 유지 보수가 쉽다.

프레임워크의 단점

  • 너무 의존하면 개발자들의 능력이 떨어져서 스스로 직접 개발하는 것이 어려워진다.
  • 습득에 걸리는 시간이 길다.

프레임워크의 종류

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

 

라이브러리(Library)란?

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

 

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

라이브러리와 프레임워크의 차이는 제어 흐름에 대한 주도성이 누구에게 있는가에 있다.
즉, 애플리케이션의 흐름을 누가 쥐고 있느냐의 차이다.
  • 프레임워크는 그 스스로 제어 흐름의 주도성을 갖는 반면, 라이브러리는 개발자가 가지고 있다.
  • 프레임워크는 집이고, 라이브러리는 그 집 안의 가구다.
  • 라이브러리와 달리 프레임워크는 이미 프로그래밍에 대한 규칙을 가지고 있다. 예를 들면 설정파일의 태그 설정이나, DB연동 방법등에 대한 규칙을 가지고 있고 개발자는 이를 따라야한다.

'Backend > Spring' 카테고리의 다른 글

Spring 단위 테스트 코드 작성  (0) 2023.11.27
단위 테스트(Unit Test)의 필요성  (0) 2023.11.05
테스트 주도 개발(Test-Driven Development, TDD)  (0) 2023.11.02
DAO와 Service  (0) 2023.10.28
Java Bean이란  (0) 2023.10.26