Spring Framework는 "POJO 운동"으로 인해 태어난 프로그램이다.
"POJO"란 Plain Old Java Object의 약자로 특정 기술에 종속되지 않느 순수한 자바 객체를 의미한다.
POJO(Plain Old Java Object) 프로그래밍의 특징
- 특정 기술 규약 및 환경에 의존성을 줄이기 위해 순수 자바 기술로 구현
- 객체 지향형
- 단일 책임 원칙을 지킨다.
- 테스트 등의 작업들에 대한 자동화 및 유지보수가 용이하다.
Spring Framework는 POJO프로그래밍을 지원하기 위해 다음과 같은 기술을 제공한다.
- 제어의 역전 (IoC : Inversion of Control)
- 객체 생성이나 코드 실행을 프로그래머가 정하는 것이 아니라 프레임워크에 위임하는 설계 개념
- 프레임워크는 필요한 경우 위임된 코드를 프레임워크의 일부분으로 실행
- 의존성 주입 (DI : Dependency Injection)
- 계층, 서비스 등 애플리케이션 구성 요소들 사이에 의존성이 발생할 경우 미리 설정된 의존성 정보를 이용하여 필요시 서로 연결하여 결합을 느슨하게 하여 애플리케이션의 유연성을 높이는 디자인
- 관점 지향 프로그래밍 (AOP : Aspect-Oriented Programming)
- 클래스 중심의 객체지향형(OOP)의 단점인 공통 기능의 중복 문제를 해결하기 위한 프로그래밍 패러다임으로 기능 중심으로 모듈화를 추구
- 트랜잭션이나 로깅, 보안과 같이 공통적으로 기능을 클래스에서 분리하여 모듈로 만들고 사용 및 관리할 수 있다.
- 서비스 추상화 (PSA : Portable Service Abstraction)
- 데이터베이스 연결 및 로깅과 같은 기반 기술(JDBC, Slf4j등)들을 추상화 하여 분리한 뒤, 일관성 있는 인터페이스(어노테이션)를 제공하여 기반 기술에 대한 지식없이 이용 가능하게 서비스
- 외부 서비스에 대한 의존성을 최소화하여 애플리케이션의 유연성을 높인다.
Spring Framework
- 특정한 환경에 종속되지 않는 최신 자바 기술 기반의 기업(Enterprie)급 응용 프로그램에 적합한 환경을 제공하는 오픈소스 애플리케이션 프레임워크이다.
- JEE(Java Platform, Enterprise Edition)
- 복잡한 비즈니스 프로세스와 다야한 계층, 개체 간 데이터 트랜잭션을 가지고 있는 엔터프라이즈 규모와
특정 운영체계 및 환경에 종속되지 않는 프로젝트를 위한 기술이다.
- 서버, 분산 등 로우 레벨 기술의 추상화를 위해 복잡한 스펙(Over Spec)을 제공
- JEE(Java / Jakarta EE)의 스펙을 객체지향을 이용하여 가볍게 지원하도록 설계되어 있다.
- 특정 기술에 종속되지 않는 POJO(Plain Old Java Object) 프로그래밍을 지원하는 프레임워크로,
객체지향형(상속, 다형성 등)의 장점을 최대한 활용한다.
- 다양한 디자인 패턴(IoC, Factory, Singleton, MVC 등)을 활용하여 객체지향형 방법론을 적극적으로 적용
- 객체의 생성, 소멸 등 라이프 사이클(Life Cycle)을 관리하는 경량 컨데이너를 제공
- Java, C#, Kotlin 등의 언어에서 사용 가능
728x90
'컴퓨터 지식' 카테고리의 다른 글
[CS] AOP (2) | 2024.11.05 |
---|---|
[CS] 어노테이션과 데코레이터 (1) | 2024.11.01 |
[CS] 제어 반전 (제어 역전 (IoC)) (1) | 2024.10.31 |
[CS] 디자인 패턴 (D.P.) (0) | 2024.10.30 |
[CS] 웹 서버와 통신하기 위한 기술 (0) | 2024.10.28 |