스프링 프레임워크란?
동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다
스프링의 특징
- 의존성 주입 (DI: Dependency Injection): 프로그램 구성요소간의 의존 구조를 외부 파일에서 정의해준다. 각 요소 또는 서비스 사이에 의존성이 존재하는 경우 스프링에서 의존 관계를 정의, 외부파일을 통해 설정해준다. 설정파일을 분리하기 때문에 유지보수가 쉬워지며 각 구성요소간 결합성이 낮아지게 된다.(각 개체가 독립적으로 존재, 연결 자체는 스프링에서 지원한다)
- POJO 방식: Plain Old Java Object 의 약자, 말그대로 기존의 일반적인 java 코드를 이용해서 프로그래밍이 가능하다. 기존의 프레임워크(Java EE)의 방식에선 미리 설계되어있는 인터페이스나 클래스를 상속받아 무거운 객체들을 만들어야만 했는데, 그럴 필요가 없이 일반적인 java코드로만으로도 객체를 구성할 수 있게된다. 따라서 더 유연한 프로그래밍이 가능해지며 가볍고 생산성이 높아진다.
- 관점지향 프로그래밍(AOP): 관점에 따라 각각의 기능을 분리하여 프로그래밍 하는것이 가능해진다. 비즈니스 로직, {로깅, 트랜잭션, 보안} 등을 다른 모듈로 분리하여 따로 관리할 수 있다. 스프링에서는 서로다른 관점을 조합하는 기능또한 제공한다. 이러한 방식은 유지보수가 수월하며 각각의 관점에 최적화된 프로그래밍이 가능해진다는 장점이 있다.
- 제어의 반전 (IoC: Inversion of Control): 기존의 프로그래밍 방식에선 라이브러리를 호출하여 코드에 포함시켜 프로그램을 실행시켰다. 하지만 스프링에서는 지원하는 형식에 맞게 프로그램을 작성하면 프레임워크에서 사용자가 작성한 코드를 호출해서 사용하는 방식으로 제어의 권한이 역전된 모습을 보여준다.