2.Spring의 특징
스프링은 다음과 같은 특징을 가지고 있음
1. 개발자는 비즈니스 로직 개발에 집중
스프링이란 개발자가 엔터프라이즈 규모의 웹 애플리케이션을 개발하는 과정에 있어서
전자 상거래, 헬스 케어 등 개발자가 속한 서비스 도메인과 관련된 비즈니스 로직 작성에만 집중할 수 있도록 다양한 부가 기능들을 지원하고 있음
따라서 스프링이 제공하는 이러한 부가 기능들을 적용하기 위해서는,
용도와 목적에 맞는 스프링에서 제공하는 하위 프로젝트 를 선택하면 됨
이를 통해 개발자는 상용 환경 수준의 다양한 기능들을 빠르고 편하게 적용할 수 있음
부가 기능
보안, 트랜잭션, 로깅 과 같이 대부분의 기업용(Enterprise) 웹 애플리케이션 개발에 있어서 공통적으로 필요한 관심사
기존 J2EE에서는 설정이나 기능 구현을 위해 작성해야 하는 코드가 많았으나,
Spring을 통해 그러한 코드들이 추상화를 통해 간소화되었음
2. POJO 기반의 단순하고 유연한 비즈니스 로직 작성 지향
스프링은 또한 비즈니스 로직 작성은 최대한 순수한 자바 문법(POJO)만으로 작성할 수 있도록 설계되었음
POJO, Plain Old Java Object , 평범하고 순수한 Java 객체
Martin Fowler 및 다른 개발자가 비즈니스 로직을 특정 라이브러리에 속한 코드로 작성하는 것보다 순수한 자바 객체로 작성하였을 때 얻을 수 있는 이점에 대해 설파하기 위해 네이밍한 용어
2000년대 초 EJB(Enterprise JavaBeans)와 같은 복잡하고 무거운 Java 엔터프라이즈 기술과 대비되는 개념으로 등장
정리하면 POJO란 순수 자바 객체만 활용하여 작성된 코드
→ POJO는 EJB에 비하여 소스 코드의 빌드(build) 과정을 간단하게 처리할 수 있고,
순수한 자바 코드이기 때문에 외부 라이브러리의 변화에 영향을 적게 받음
2-1. POJO 기반 작성 방식의 이점
POJO 기반의 작성 방식을 지향할 경우, 다음의 이점을 가짐
1. 코드베이스가 특정 벤더에 종속되지 않음(Vender free)
코드가 유연하고 벤더에 종속적이지 않게 됨
→ POJO는 구현을 위해 특정 외부 라이브러리에 속한 클래스나 인터페이스를 상속받지 않으며,
Java의 객체 지향 패러다임을 따르기 때문에 코드가 단순하고 직관적임
2. 높은 유연성(Hith Flexibility)
타 프레임워크, 라이브러리에 종속되지 않기 때문에 다른 곳에도 유연하게 적용 가능함
부가적으로 이러한 POJO 기반의 코드는 테스트 코드 작성 시에도 용이해짐