본문 바로가기

Spring

[토비의 스프링 3.1 vol.1] 스프링이란? 스프링의 성공요인

[스프링이란 무엇인가?]

스프링은 자바 엔터프라이즈 애플리케이션 개발에 사용되는 애플리케이션 프레임워크이다.

애플리케이션 프레임워크는 애플리케이션 개발을 빠르고 효율적으로 할 수 있도록 애플리케이션의 바탕이 되는 틀(스프링 컨테이너)과 공통 프로그래밍 모델(IoC/DI, 서비스 추상화, AOP), 기술 API 등을 제공해준다.

스프링의 모든 기술은 표준 자바 엔터프라이즈 플랫폼(JavaEE)에 기반을 두고 있다.

 

애플리케이션의 기본 틀 - 스프링 컨테이너

스프링 컨테이너는 설정정보를 참고로 해서 애플리케이션을 구성하는 오브젝트를 생성하고 관리한다.

 

공통 프로그래밍 모델 - IoC/DI, 서비스 추상화, AOP

프레임워크는 애플리케이션을 구성하는 오브젝트가 생성되고 동작하는 방식에 대한 틀을 제공해줄 뿐만 아니라, 애플리케이션 코드가 어떻게 작성돼야 하는지에 대한 기준도 제시해준다.

 

[스프링에서 지원하는 핵심 프로그래밍 모델]

IoC/DI

오브젝트의 생명주기와 의존관계에 대한 프로그래밍 모델이다.

 

서비스 추상화

구체적인 기술과 환경에 종속되지 않도록 유연한 추상 계층을 두는 방법이다.

 

AOP

AOP는 애플리케이션 코드에 산재해서 나타나는 부가적인 기능을 독립적으로 모듈화하는 프로그래밍 모델이다.

 

 

스프링을 사용한다는 것은 이 세가지 요소를 적극적으로 활용해서 애플리케이션을 개발한다는 뜻이다.

클래스는 스프링 컨테이너 위에서 오브젝트로 만들어져 동작하게 만들고, 코드는 스프링의 프로그래밍 모델을 따라서 작성하고, 엔터프라이즈 기술을 사용할 때는 스프링이 제공하는 기술 API와 서비스를 활용하도록 해주면 된다.

 

 

[스프링의 성공요인]

스프링은 사실상의 자바 엔터프라이즈 표준 기술이라고 여겨진다.

스프링을 사용하는 개발자들이 스프링을 통해 얻게 되는 두 가지 중요한 가치가 있다면 그것은 단순함과 유연성이다.

 

단순함(simplicity)

스프링이 강력히 주장하는 것은 가장 단순한 객체지향적인 개발 모델인 POJO(Plain Old Java Object - 객체지향에 충실하자)프로그래밍이다.

 

유연성(flexibility)

스프링의 유연성으로 인해 스프링은 다른 많은 프레임워크와 편리하게 접목돼서 사용될 수 있다.

스프링만큼 많은 서드파티(외부) 프레임워크의 지원을 받는 기술도 없다.

 

 

 

Reference.
http://www.yes24.com/Product/Goods/7516911