[Spring] 세 가지 핵심 프로그래밍 모델
스프링은 자바 엔터프라이즈 애플리케이션 개발에 사용되는 애플리케이션 프레임워크입니다.
프레임워크는 애플리케이션을 구성하는 오브젝트가 생성되고 동작하는 방식에 대한 틀을 제공해줄 뿐만 아니라, 애플리케이션 코드가 어떻게 작성돼야 하는지에 대한 기준도 제시해줍니다. 이런 틀을 보통 프로그래밍 모델이라고 합니다. 스프링은 세 가지 핵심 프로그래밍 모델을 지원합니다.
< 스프링의 세 가지 핵심 프로그래밍 모델 >
IoC/DI
오브젝트의 생명주기와 의존관계에 대한 프로그래밍 모델입니다.
스프링은 객체지향 설계 원칙과 디자인 패턴의 핵심 원리를 담고 있는 IoC/DI를 프레임워크의 근간으로 삼고 있습니다. 스프링이 직접 제공하는 모든 기술과 API, 컨테이너 까지 IoC/DI 방식으로 작성되어 있기 때문에 코드도 이 방식을 따라야 스프링이 제공하는 가치를 제대로 누릴 수 있습니다.
서비스 추상화
스프링을 사용하면 환경이나 서버, 특정 기술에 종속되지 않고 이식성이 뛰어나며 유연한 애플리케이션을 만들 수 있는데, 이를 가능하게 해주는 것이 서비스 추상화 입니다. 구체적인 기술과 환경에 종속되지 않도록 유연한 추상 계층을 두는 방법입니다.
AOP
애플리케이션 코드에 산재해서 나타나는 부가적인 기능을 독립적으로 모듈화하는 프로그래밍 모델입니다.
스프링은 AOP를 이용해서 다양한 엔터프라이즈 서비스를 적용하고도 깔끔한 코드를 유지할 수 있게 해줍니다.
클래스는 스프링 컨테이너 위에서 오브젝트로 만들어져 동작 하게 만들고, 코드는 스프링의 프로그래밍 모델을 따라서 작성하고, 엔터프라이즈 기술 을 시용할 때는 스프링이 제공하는 기술 API와 서비스를 활용하도록 해주는 것이 스프링을 사용한다는 것입니다.
즉, 스프링을 사용한다는 것은 스프링 컨테이너와 프로그래밍 모델, 기술 API 이 세 가지 요소를 적극적으로 활용해서 애플리케이션을 개발한다는 것입니다.