본문 바로가기
Spring

Spring Framework 개요

qbang 2021. 9. 24.

Spring Framework의 전략

Spring 삼각형; 엔터프라이즈 개발의 복잡함을 상대하는 스프링의 전략

  1. Portable Service Abstraction: 기술적인 복잡함은 추상화를 통해 low level의 기술 구현 부분과 기술을 사용하는 인터페이스로 분리(ex. Object XML Mapping 등)
  2. DI: 객체지향에 충실한 설계가 가능하도록 단순한 객체 형태로 개발할 수 있고, DI는 유연하게 확장 가능한 객체를 만들어 두고 그 관계는 외부(컨테이너)에서 동적으로 설정
  3. AOP; 관점지향 프로그래밍: 애플리케이션 로직을 담당하는 코드에 남아있는 기술 관련 코드를 분리해서 별도의 모듈로 관리하게 해주는 기술
  4. POJO: 특정 환경이나 규약에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 객체. 즉 일반적인 자바 오브젝트

 

Spring Framework의 특징

  • 컨테이너 역할: Spring 컨테이너는 자바 객체의 라이프사이클을 관리하며, 스프링 컨테이너로부터 필요한 객체를 가져와 사용할 수 있음
  • DI 지원: Spring은 설정 파일이나 어노테이션을 통해서 객체 간의 의존관계를 설정할 수 있음
  • AOP 지원: 트랜잭션이나 로깅, 보안과 같이 공통적으로 필요로 하는 모듈들을 실제 핵심 모듈에서 분리해서 적용할 수 있음
  • POJO 지원: 특정 인터페이스를 구현하거나, 특정 클래스를 상속받지 않은 객체도 지원
  • 트랜잭션 처리를 위한 일관된 방법을 지원: JDBC, JPA 등 어떤 트랜잭션을 사용하던 설정을 통해 정보를 관리하므로 동일한 코드 사용 가능
  • 영속성과 관련된 다양한 API 지원: Spring은 ORM 프레임워크들과 연동 지원

 

Spring Framework 기능요소

Spring Core

  • Spring 프레임워크의 기본기능을 제공
  • 이 모듈에 있는 BeanFactory는 Spring의 기본 컨테이너이면서 스프링 DI의 기반

Spring AOP

  • AOP 모듈을 통해 Aspect 지향 프로그래밍을 지원

Spring ORM

  • MyBatis, Hibernate, JPA 등 ORM 프레임워크 지원

Spring DAO

  • JDBC에 대한 추상화 계층으로 JDBC 코딩이나 예외처리 하는 부분을 간편화
  • AOP 모듈을 이용해 트랜잭션 관리 서비스도 제공

Spring Web

  • 일반적인 웹애플리케이션 개발에 필요한 기본기능을 제공

Spring Context

  • Context 모듈은 빈팩토리 개념을 확장한 것으로 애플리케이션 생명주기 이벤트, 유효성 검증, 국제화 메시지 등 지원

Spring Web MVC

  • 사용자 인터페이스가 애플리케이션 로직과 분리되는 웹 애플리케이션을 만드는 경우에 일반적으로 사용됨

 

본 게시글은 Tacademy의 Spring Framework 수업 내용을 바탕으로 작성되었습니다.

'Spring' 카테고리의 다른 글

프로토타입 빈(Prototype Bean)  (0) 2021.10.09
JSON vs XML  (0) 2021.10.03
마이바티스(MyBatis)  (0) 2021.10.01
Spring Project 시작하기  (0) 2021.09.24
AOP  (0) 2021.09.24

댓글