[Spring Framework] Spring Framework
Spring Framework
엔터프라이즈 어플리케이션 개발을 편하게 해주는 오픈소스 프레임워크.
크기와 부하의 측면에서 경량 컨테이너이며, 자바 객체를 직접 관리한다.
제어의 역전(Ioc), 의존성주입(DI), 관점 지향 프로그래밍(AOP)가 주요 특징이다.
1. 제어의 역전(IoC : Inversion of Control)
IoC란 기존 사용자가 모든 작업을 제어하던 것을 특별한 객체에 모든 것을 위임하여
객체의 생성부터 생명주기 등 모든 객체에 대한 제어권이 넘어간 것을 제어의 역전(IoC)이라고 한다.
- 애플리케이션의 느슨한 결합을 도모.
- 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어 필요에 따라 스프링에서 사용자의 코드를 호출한다.
2. 의존성 주입(DI : Dependency Injection)
객체가 서로 의존하는 관계가 되게 의존성을 주입하는 것이다.
객체지향 프로그램에서 의존성이란 하나의 객체가 어떠한 다른 객체를 사용하고 있음을 의미한다.
IoC에서의 의존성 주입은 각 클래스 사이에 필요로 하는 의존관계를 빈 설정 정보를 바탕으로 컨테이너가 자동으로 연결해 주는 것이다.
- 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.
3. 관점 지향 프로그래밍(AOP : Aspect-Oriented Programming)
핵심기능과 공통기능을 분리시켜 핵심 로직에 영향을 끼치지 않게 공통기능을 끼워 넣는 개발 형태이며
이렇게 개발함에 따라 무분별하게 중복되는 코드를 한 곳에 모아 중복 되는 코드를 제거할 수 있어지고
공통기능을 한 곳에 보관함으로써 공통 기능 하나의 수정으로 모든 핵심기능들의 공통기능을 수정 할 수 있어 효율적인 유지보수가 가능하며 재활용성이 극대화된다. AOP로 만들 수 있는 기능은 OOP로 구현 할 수 있는 기능이지만 Spring에서는 AOP를 편리하게 사용 할 수 있도록 이를 지원하고 있다.
- 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있다.
엔터프라이즈?
엔터프라이즈급 개발이란 뜻대로만 풀이하면 기업을 대상으로 하는 개발이라는 뜻이다.
즉, 대규모 데이터 처리와 트랜잭션이 동시에 여러 사용자로 부터 행해지는 매우 큰 규모의 환경을 엔터프라이즈 환경이라 말한다.