[Spring]

1 minute read

스프링이란 무엇인가?

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

앱의 기본 틀 - 스프링 컨테이너

스프링은 스프링 컨테이너 또는 애플리케이선 컨텍스트라고 불리는 스프링 런타임 엔진을 제공합니다. 스프링 컨테이너는 설정 정보를 참고해서 앱을 구성하는 오브젝트를 생성하고 관리합니다. 스프링 컨테이너는 독립적으로 동작할 수도 있지만 보통 웹 모듈에서 동작하는 서비스나 서블릿으로 등록해서 사용합니다.
스프링을 사용하려면 먼저 스프링 컨테이너를 다루는 방법과 스프링 컨테이너가 앱 오브젝트를 이용할 수 있도록 설정 정보를 작성하는 방법을 알아야 합니다.

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

프레임워크는 애플리케이션을 구성하는 오브젝트가 생성되고 동작하는 방식에 대한 틀을 제공해줄 뿐만 아니라, 앱 코드가 어떻게 작성돼야 하는지에 대한 기준도 제시해줍니다. 이런 틀을 프로그래밍 모델이라고 하고 스프링은 세 가지 핵심 프로그래밍 모델을 지원합니다.

첫 번째는 IoC/DI라고 불리는 오브젝트 생명주기의존관계에 대한 프로그래밍 모델입니다. 스프링은 유연하고 확장성이 뛰어난 코드를 만들 수 있게 도와주는 개체 지향 설계 원칙과 디자인 패턴의 핵심 원리를 담고 있는 IoC/DI를 프레임워크의 근간으로 삼고 있습니다.

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

세 번째는 AOP(Aspect Oriented Programming)입니다. AOP는 앱 코드에 산재해서 나타난느 부가적인 기능을 독립적으로 모듈화하는 프로그래밍 모델입니다.

기술 API

스프링은 방대한 양의 기술 API를 제공합니다. UI 작성, 웹 프레젠테이션 계층, 비즈니스 서비스 계층, 기반 서비스 계층, 도메인 계층, 뎅터 에게스 계층 등에서 필요한 주요 기술들 스프링에서 일관된 방식으로 사용할수 있도록 지원합니다.