Spring 삼각형
Enterprise Application 개발 시에 복잡함을 해결하는 Spring의 핵심
1. POJO(Plain Old Java Object)
-특정 환경이나 기술에 종속적이지 않은 객체지향 원리에 충실한 자바 객체
-테스트하기 용이하며, 객체지향 설계를 자유롭게 적용할 수 있음
2. PSA(Portable Service Abstraction)
-환경과 세부기술의 변경과 관계없이 일관된 방식으로 기술에 접근할 수 있게 해주는 설계 원칙
-트랜잭션 추상화, OXM 추상화, 데이터 액세스의 Exception 변환 기능 등 기술적 복잡함은 추상화를 통해 Low level의 기술 구현 부분과 기술을 사용하는 인터페이스로 분리
-예를 들어 데이터베이스에 관계 없이 동일하게 적용할 수 있는 트랜잭션 처리 방식
3. IoC(Inversion of Control) / DI(Dependency Injection)
-DI는 유연하게 확장 가능한 객체를 만들어 두고 객체 간의 의존 관계는 외부에서 다이나믹하게 설정
4. AOP(Aspect Oriented Programming)
-관심사의 분리를 통해서 소프트웨어의 모듈성을 향상
-공통 모듈을 여러 코드에 쉽게 적용 가능
Spring Framework Module
1. Spring Core
-Spring Framework의 핵심 기능을 제공하며, Core 컨테이너의 주요 컴포넌트는 Bean Factory
2. Spring Context
-Spring을 컨테이너로 만든 것이 Spring Core의 Bean Factory라면 Spring을 프레임워크로 만든 것은 Context module
-이 module은 국제화된 메시지, Application 생명 주기 이벤트, 유효성 검증 등을 지원함으로써 Bean Factory의 개념을 확장함
3. Spring AOP
-설정 관리 기능을 통해 AOP기능을 Spring Framework와 직접 통합시킴
4. Spring DAO
-Spring JDBC DAO 추상 레이어는 다른 데이터베이스 벤더들의 예외 핸들링과 오류메시지를 관리하는 중요한 예외 계층을 제공
5. Spring ORM
-Spring Framework는 여러 ORM(Object Relational Mapping) Framework에 플러그인 되어, Object Relational 툴(JDO, Hibernate, iBatis)을 제공
6. Spring Web
-Web Context module은 Application Context module 상위에 구현되어, Web 기반 Application에 context 제공
7. Spring Web MVC
-Spring Framework는 자체적으로 MVC 프레임워크를 제공하고 있음
-스프링만 사용해도 MVC 기반의 웹 어플리케이션 개발 가능
'Spring' 카테고리의 다른 글
[FileUpload] 파일 업로드 (0) | 2022.04.22 |
---|---|
[Spring Architecture DI] 의존성 주입(DI) (0) | 2022.04.20 |
[Spring Architecture DI] IoC (0) | 2022.04.20 |
[Spring Architecture DI] Container (0) | 2022.04.19 |
[Spring Architecture DI] Spring 등장 배경 (0) | 2022.04.19 |