프레임워크의 사전적 의미는 '어떤 것을 구성하는 구조 또는 뼈대'입니다.
소프트웨어적 의미로는 '기능을 미리 클래스나 인터페이스 등으로 만들어 제공하는 반제품'정도로 해석할 수 있습니다. 즉, 어느 정도 완성된 상태로 제공하는 기능인 셈입니다.
즉 프레임워크를 사용하는 이유로 한마디로 정리하면 일정한 기준에 따라 개발이 이루어지므로 개발 생산성과 품질이 보장된 애플리케이션을 개발할 수 있기 때문입니다.
스프링 프레임워크
프레임워크 중 현재 가장 많이 사용되는 것이 스프링 프레임워크입니다. 스프링 프레임워크(이하 스프링)는 자바 웹 애플리케이션 개발을 위한 오픈 소스 프레임워크로, 기존 프레임워크보다 가벼운 경량 프레임워크입니다.
또한 스프링은 경량 컨테이너라고도 부릅니다. '컨테이너'라고 하면 대표적인 것으로 톰캣을 들 수 있습니다. 톰캣은 서블릿 컨테이너라고 부르는데, 그 이유는 톰캣을 실행하면 톰캣은 서블릿의 생성, 초기화, 서비스 실행, 소멸에 관한 모든 권한을 가지고 서블릿이 관리하기 때문입니다.
스프링도 마찬가지입니다. 애플리케이션에서 사용되는 여러가지 빈(클래스 객체)을 개발자가 아닌 스프링이 권한을 가지고 직접 관리합니다. 스프링 이전에 사용되던 프레임워크로 EJB(Enterprise JavaBean, 엔터프라이즈 자바빈즈)라는 것이 있는데, EJB는 실행 시 무거워 여러 가지 문제를 일으키는 단점이 있습니다. 스프링은 이런 EJB의 단점은 개선하고 좋은 점은 더 발전시켜서 탄생한 프레임워크입니다.
스프링의 특징
- EJB보다 가볍고 배우기도 쉬우며 경량 컨테이너의 기능을 수행합니다.
- 제어 역행(Ioc, Inversion of Control) 기술을 이용해 애플리케이션 간의 느슨한 결합을 제어합니다.
- 의존성 주입(DI, Dependency Injection)기능을 지원합니다.
- 관점 지향(AOP, Aspect-Oriented Programming) 기능을 이용해 자원 관리를 합니다.
- 영속성과 관련된 다양한 서비스를 지원합니다.
- 수많은 라이브러리와의 연동 기능을 지원합니다.
의존성 주입: 클래스 객체를 개발자가 코드에서 생성하지 않고 프레임워크가 생성하여 사용하는 방법입니다.
제어 역행: 서블릿이나 빈 등을 개발자가 코드에서 생성하지 않고 프레임워크가 직접 수행하는 방법입니다.
관점 지향: 핵심 기능 외 부수 기능들을 분리 구현함으로써 모듈성을 증가 시키는 방법입니다.
스프링 Core 기능을 스프링의 다른 기능을 수행하는 데 필요한 기반 기능을 제공합니다. 그리고 스프링 MVC 기능을 이용해 애플리케이션을 MVC로 쉽게 개발할 수 있습니다. 그 외 스프링의 주요 기능에 대한 상세한 설명을 하겠습니다.
스프링 기능 | 설명 |
Core | 다른 기능과 설정을 분리하기 위한 IoC 기능을 제공합니다. |
Context | 스프링의 기본 기능으로서 애플리케이션의 각 기능을 하는 빈(Bean)에 대한 접근 방법을 제공합니다. |
DAO | JDBC 기능을 좀 더 편리하게 사용할 수 있도록 합니다. |
ORM | 하이버네이트나 마이바티스 같은 영속성 관련 프레임워크와 연동된 기능을 제공합니다. |
AOP | 관점 지향 기능을 제공합니다. |
Web | 웹 어플리케이션 개발에 필요한 기능을 제공합니다. |
WebMVC | 스프링에서 MVC 구현에 관련된 기능을 제공합니다. |
'2020 > SPRING' 카테고리의 다른 글
스프링 API를 이용한 AOP 기능 구현 과정 (0) | 2020.01.07 |
---|---|
Spring AOP기능 (0) | 2020.01.07 |
회원 기능 이용해 DI 실습 (0) | 2020.01.07 |
Spring 생성자를 이용한 DI 기능 (0) | 2020.01.07 |
의존성 주입(DI) setter을 이용한 방식 (0) | 2020.01.07 |