[Spring]
스프링이란 무엇인가?
스프링
은 자바 엔터프라이즈 애플리케이션 갭라에 사용되는 프레임워크입니다.
앱의 기본 틀 - 스프링 컨테이너
스프링은 스프링 컨테이너
또는 애플리케이선 컨텍스트
라고 불리는 스프링 런타임 엔진을 제공합니다. 스프링 컨테이너는 설정 정보를 참고해서
앱을 구성하는 오브젝트를 생성하고 관리합니다. 스프링 컨테이너는 독립적으로 동작할 수도 있지만 보통 웹 모듈에서 동작하는 서비스나 서블릿으로 등록해서 사용합니다.
스프링을 사용하려면 먼저 스프링 컨테이너를 다루는 방법과 스프링 컨테이너가 앱 오브젝트
를 이용할 수 있도록 설정 정보를 작성하는 방법을 알아야 합니다.
공통 프로그래밍 모델 - IoC/DI, 서비스 추상화, AOP
프레임워크는 애플리케이션을 구성하는 오브젝트가 생성되고 동작하는 방식에 대한 틀을 제공해줄 뿐만 아니라, 앱 코드가 어떻게 작성돼야 하는지에 대한 기준도 제시해줍니다. 이런 틀을 프로그래밍 모델
이라고 하고 스프링은 세 가지 핵심 프로그래밍 모델을 지원합니다.
첫 번째는 IoC/DI
라고 불리는 오브젝트 생명주기
와 의존관계
에 대한 프로그래밍 모델입니다. 스프링은 유연하고 확장성이 뛰어난 코드를 만들 수 있게 도와주는 개체 지향 설계 원칙과 디자인 패턴의 핵심 원리를 담고 있는 IoC/DI를 프레임워크의 근간으로 삼고 있습니다.
두 번째는 서비스 추상화입니다. 스프링을 사용하면 환경이나 서버, 특정 기술에 종속되지 않고 이식성이 뛰어나며 유연한 애플리케이션을 만들수 있습니다. 구체적인 기술과 호나경에 종속되지 않도록 유연한 추상 계층을 두는 방법입니다.
세 번째는 AOP(Aspect Oriented Programming)
입니다. AOP는 앱 코드에 산재해서 나타난느 부가적인 기능을 독립적으로 모듈화하는 프로그래밍 모델입니다.
기술 API
스프링은 방대한 양의 기술 API를 제공합니다. UI 작성, 웹 프레젠테이션 계층, 비즈니스 서비스 계층, 기반 서비스 계층, 도메인 계층, 뎅터 에게스 계층 등에서 필요한 주요 기술들 스프링에서 일관된 방식으로 사용할수 있도록 지원합니다.