프레임워크(Framework)란?
- 개발자가 소프트웨어를 개발함에 있어 코드를 구현하는 개발 시간을 줄이고, 코드의 재사용성을 증가시키기 위해 일련의 클래스 묶음이나 뼈대, 틀을 라이브러리 형태로 제공되는 것을 말한다.
프레임워크의 특징
- 개발자가 따라야하는 가이드를 제공한다.
- 개발할 수 있는 범위가 정해져있다.
- 개발자를 위한 다양한 도구, 플러그인들을 지원한다.
프레임워크의 장점
- 개발 시간을 줄일 수 있다.
- 정형화되어 있기 때문에 일정 수준 이상의 품질을 기대할 수 있다.
- 유지 보수가 쉽다.
프레임워크의 단점
- 너무 의존하면 개발자들의 능력이 떨어져서 스스로 직접 개발하는 것이 어려워진다.
- 습득에 걸리는 시간이 길다.
프레임워크의 종류
구분 | 설명 | 종류 |
영속성 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 |