* Spring 강의를 듣고 내 편한대로 기억하기 위해 내용 정리한 것이다.
1. Spring Framework란?
Java 엔터프라이즈 개발을 편하게 해주는 오픈소스 경략급 애플리케이션 프레임워크이다.
2. Spring 전략
- Portable Service Abstraction(서비스 추상화)
트랜잭션 추상화, OXM 추상화, 데이터 액세스의 Exception 변환기능 등 기술적인 복잡함은 추상화를 통해 Low Level 의 기술 구현 부분과 기술을 사용하는 인터페이스로 분리한다.
- 객체지향과 DI(Dependency Injection)
Spring은 객체 지향에 충실한 설계가 가능하도록 단순한 객체 형태로 개발할 수 있고, DI는 유연하게 확장 가능한 객체를 만들어 두고 그 관계는 외부에서 다이내믹하게 설정해 준다.
- AOP(Aspect Oriented Programming)
AOP는 애플리케이션 로직을 담당하는 코드에 남아있는 기술 관련 코드를 분리해서 별도의 모듈로 관리하게 해주는 가력한 기술로 주로 로그인등의 공통 코드를 분리하고 설정한다.
- POJO(Plain Old Java Object)
POJO는 객체 지향 원리에 충실하면서, 특정 확경이나 규약에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 객체이다.
3. 특징
- 컨테이너 역할 : Spring 컨테이너는 Java 객체의 LifeCycle을 관리하며, Spring 컨테이터로 부터 필요한 객체를 가져와 사용할 수 있다.
- DI(Dependency Injectino)지원 : Spring은 설정 파일이나 어노테이션을 통해서 객체 간의 의존관계를 설정하 수 있도록 하고 있다.
- AOP(Aspect Oriented Programming)지원 : Spring은 트랜잭션이나 로깅, 보안과 같이 공통적으로 필요로 하는 모듈들을 실제 핵심 모듈에서 분리해서 적용할 수 있다.
- POJO(Plain Old Java Object)지원 : Spring 컨테이터에 저장되는 Java객체는 특정한 인터페이스를 구현하거나 , 특정 클래스를 상속받지 않아도 된다.
4. 구성하는 기능요소
- Core 컨테이너 : Spring 기본기능을 제공하면서 이 모듈에 있는 BeanFactory는 Spring의 기본 컨테이너이면서 스프링 DI의 기반이다.
- Spring AOP : Aspect지향 프로그래밍을 지원
- Spring ORM : Mabatis, Hibernate, JPA등을 넘리 사용하는 ORM 프레임워크와의 연결 고리 제공
- Spring DAO : JDBC에 대한 추상화 계층으로 JDBC 코딩이나 예외 처리하는 부분을 간편화 시켰으며, AOP모듈을 이용해 트랜잭션 관리 서비스도 제공
- Spring Web
- Spring Context : Context모듈은 BeanFactory의 개념을 확장한 것
- Spring Web MVC : 사용자 인터페이스가 애플리케이션 로직과 분리되는 웹 애플리케이션을 만드는 경우에 일반적으로 사용되는 패러다임이다.
'개발 기술 이야기 > spring' 카테고리의 다른 글
기본 스프링프로젝트 만들기 2/2 (0) | 2021.03.23 |
---|---|
기본 스프링프로젝트 만들기 1/2 (0) | 2021.03.23 |
[Spring 기본 - 4] jUnit와 Spring-Test (0) | 2021.03.22 |
[Spring 기본 - 3] IOC와 DI (0) | 2021.03.10 |
[Spring 기본 - 2] 개발 툴 설명 (0) | 2021.02.24 |