Spring
자바 플랫폼을 위한 오픈소스 프레임워크로 줄여서 스프링이라고 부름. 개발자가 쉽고 빠르게 개발을 하기위한 다양한 기능들과 모듈을 제공함. 전자정부 프레임워크의 기반이 되는 프레임워크이다
Spring의 주요특징
1. 제어 반전(Inversion Of Control)
객체의 제어(control)에 대한 주도권이 개발자가 아닌 프레임워크로 역전(Inversion)되었음을 의미함.
객체의 생성 - 초기화 - 소멸과 관련된 라이프사이클에 대한 제어를 프레임워크가 주도한다.
2. 의존성 주입(Dependency Injection)
프로그래밍에 필요한 객체들을 어노테이션이나 xml설정을 통해 스프링객체로부터주입 받는 방식.
주입받는 객체는 Singleton Pattern으로 구현되어 있다.
3. POJO(Plain Old Java Object)
복잡한 상속구조를 가지지 않는 순수한 자바객체를 의미한다
프로그램간의 이식성이 높고 개발하기에 용이함.
POJO클래스와 Annotation을 결합한 어노테이션프로그래밍이 스프링에서 자주 사용되는 설계패턴이다.
4. 관점지향 프로그래밍AOP( Aspect Oriented Programming)
OOP에서 다루는 핵심적인 비지니스 로직과 대부분의 클래스에서 사용하는 공통적인 코드가 함께 존재하는 경우 유지보수성이 떨어진다. 로깅처리, 트랜잭션처리, 보안처리와같은 비지니스로직과 다른 성격을 가지는 코드들은 별도의 모듈로 분리하여 유연성과 재사용성을 높이는 프로그래밍 방식이다
Spring Framework에서는 Proxy를 활용하여 AOP를 지원한다.
Last updated