Skip to content

Latest commit

 

History

History
26 lines (18 loc) · 2.49 KB

Spring.md

File metadata and controls

26 lines (18 loc) · 2.49 KB

Spring

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

스프링 컨테이너

스프링은 스프링 컨테이너 또는 애플리케이션 컨텍스트라고 불리는 스프링 런타임 엔진을 제공한다. 스프링 컨테이너는 설정정보를 참고해서 애플리케이션을 구성하는 오브젝트를 생성하고 관리한다.

공통 프로그래밍 모델

스프링은 세 가지 핵심 프로그래밍 모델을 지원한다. 프로그래밍 모델은 코드가 어떻게 작성돼야 하는지에 대한 기준을 제시하기 때문에, 스프링을 사용하는 개발자라면 반드시 이 세 가지 모델을 잘 이해해야 하고 자유롭게 응용할 수 있어야 한다.

1. IoC/DI

스프링은 IoC/DI를 프레임워크의 근간으로 삼고 있다. 스프링이 직접 제공하는 모든 기술과 API, 컨테이너는 IoC/DI 방식으로 작성되어 있다.

2. 서비스 추상화

스프링을 사용하면 환경이나 서버, 특정 기술에 종속되지 않고 이식성이 뛰어나며 유연한 애플리케이션을 만들 수 있다. 구체적인 기술과 환경에 종속되지 않도록 유연한 추상 계층을 두는 것이 서비스 추상화다.

3. AOP

AOP는 애플리케이션 코드에 산재해서 나타나는 부가적인 기능을 독립적으로 모듈화하는 프로그래밍 모델이다. 스프링은 AOP를 이용해서 깔끔한 코드를 유지할 수 있게 해준다.

기술 API

스프링은 엔터프라이즈 애플리케이션을 개발의 다양한 영역에 바로 활용할 수 있는 방대한 양의 기술 API를 제공한다. UI 작성, 웹 프레젠테이션 계층, 비즈니스 서비스 계층, 도메인 계층, 데이터 액세스 계층 등에서 필요한 주요 기술을 스프링에서 일관된 방식으로 사용할 수 있도록 지원해주는 기능과 전략 클래스 등을 제공한다.

결론

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

참고

토비의 스프링 3.1 Vol.1 들어가며