오늘은 Spring Framework가 무엇인지 알아보겠습니다.
Spring Framework가 어디서 오게 되었는지 간단히 살펴보면, Spring Framework가 등장하기 전에는 EJB라는 기술을 통해 웹 애플리케이션을 개발하였습니다. 하지만, 개발자들에게 있어서 이 기술은 부족한 개발 생산성과 이동성을 이유로 사용하기가 어렵고 까다로웠습니다. 따라서 이러한 단점을 보완하기 위한 기술을 만들어내기 시작하였고, 그 과정에서 가장 호평을 받은 기술이 바로 스프링 입니다.
프레임워크 vs 라이브러리
먼저, 단순히 스프링이라고 부르는 것이 아니라 스프링 프레임워크라고 부르는 이유가 무엇인지 알아보겠습니다. 더불어, 라이브러리와의 차이점도 함께 알아보겠습니다.
프레임워크는 뼈대나 기반 구조를 뜻하고, 제어의 역전(IoC) 개념이 적용된 대표적인 기술입니다. 소프트웨어에서의 프레임워크는 '소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합'이라고 하며, 완성된 애플리케이션이 아닌 프로그래머가 완성시키는 작업을 해야합니다.
라이브러리는 자주 사용되는 로직을 재사용하기 편리하도록 정리된 일련의 코드들의 집합입니다. 즉, 개발자가 만든 클래스에서 호출하여 사용하고, 클래스들의 나열로 필요한 클래스를 불러 사용하는 방식입니다.
두 차이의 관건은 애플리케이션의 흐름을 누가 쥐고 있느냐에 달려있습니다. 프레임워크는 전체적인 흐름을 스스로가 쥐고 있고 사용자가 그 안에 필요한 코드를 짜 넣어 틀 안에 이미 제어 흐름에 대한 주도성이 있지만, 라이브러리는 사용자가 전체적인 흐름을 만들며 필요한 기능을 구현하기 위해 호출하는 측에 주도성이 있습니다.
스프링 프레임워크(Spring Framework)란?
이제 본격적으로 스프링 프레임워크에 대해 알아보겠습니다.
스프링 프레임워크를 문장으로 표현하자면, 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크 라고 할 수 있습니다. 또는 엔터프라이즈급 애플리케이션을 개발하기 위한 경량화된 솔루션 이라고도 표현합니다.
오픈소스 애플리케이션 프레임워크
경량화된 솔루션
스프링 프레임워크(Spring Framework)의 특징
경량 컨테이너
Ioc(Inversion of Control) 기반의 프레임워크
POJO(Plain Old Java Object) 기반의 프레임워크
DI(Dependency Ingection)
DL(Dependency Lookup)
AOP(Aspect Oriented Programming) 지원
WAS에 독립적인 개발 환경
스프링 프레임워크(Spring Framework)의 구조
출처