Spring
스프링 프레임워크(Spring Framework)
자바 애플리케이션 개발을 위한 오픈 소스 프레임워크로 줄여서 스프링(Spring)이라고 불린다.
동적인 웹 애플리케이션을 개발하기 위한 여러 가지 서비스를 제공하고 있으며
대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다.
스프링 프레임워크의 특징
자바 개발의 복잡도를 간소화하기 위한 스프링 프레임워크의 특징은 다음과 같다.
DI (Dependency Injection)
설정 파일이나 어노테이션을 통해 객체 간의 의존 관계를 설정하여 개발자가 직접 객체 간의 의존 관계를 생성할 필요가 없다.
AOP (Aspect Oriented Programming)
트랜잭션, 로깅, 보안 등 공통으로 필요로 하는 기능의 경우 해당 기능들을 분리하여 관리한다.
POJO (Plain Old Java Object)
일반적인 J2EE 프레임워크에 비해 특정 라이브러리를 사용할 필요가 없어 개발이 쉬우며, 기존 라이브러리의 지원이 용이하다.
스프링 프레임워크의 동작 구조
- 스프링 프레임워크 기반의 애플리케이션에서는 스프링 컨테이너 안에서 애플리케이션에서 필요한 객체가 생성되고 소멸한다.
- 즉, 스프링 컨테이너는 애플리케이션에서 필요한 객체를 생성하고, 객체들을 서로 연결하고(=와이어링) 소멸하는 등 객체의 생명 주기를 관리한다.
- 스프링 컨테이너가 어떤 객체를 생성하고, 객체들을 어떻게 연결할지는 개발자가 설정해야 하는데 설정 방식은 크게 XML, 자바, 어노테이션을 통한 오토 와이어링 방식이 있다.
Spring 애플리케이션
- 프레임 워크의 객체들의 관계를 어떻게 맺을것인지 AOP등을 Spring-context.xml에 설정한다.
- 위의 xml을 new GenericXMLApplicationContex()가 참고한다.
스프링 프레임워크의 구성 모듈
- 스프링 프레임워크의 구성 모듈은 크게 6개의 카테고리로 구분되어 있다.
데이터 액세스 / 통합 계층
JDBC나 데이터베이스에 연결하는 계층으로, 트랜잭션에 해당하는 기능을 담당하여 영속성 프레임워크와 연결을 담당한다.
이 모듈들을 이용하면 데이터 베이스 관련 코드를 깔끔하고 간단하게 만들 수 있고 데이터 베이스 리소스를 닫지 않아서 발생할 수 있는 문제를 예방할 수 있다.
Web 계층 (MVC / Remoting)
스프링의 특징을 활용하여 객체 간의 결합도를 낮추는 MVC 관련 모듈들을 제공해 준다.
AOP 계층
스프링은 AOP 계층을 통해 애스펙트 지향 프로그래밍(AOP)을 풍부하게 지원한다.
AOP는 주로 애플리케이션 전체에 걸친 관심사와 각 객체 간의 결합도 낮추는데 이용된다.
Core Container계층
애플리케이션에서 필요한 객체들의 생성, 설정 등의 처리 방법을 관리하는 컨테이너이다.
모든 스프링 관련 모듈은 이 코어 컨테이너 기반으로 구축된다.
테스트 계층
스프링에서 애플리케이션 테스트에 위한 모듈을 제공한다.
스프링 애플리케이션 컨텍스트에서 빈을 로드하고 이 컨텍스트에 있는 빈을 이용하여 테스트 코드를 작성할 수 있다.
* 위 내용은 KH 정보교육원 수업을 정리한 내용을 바탕으로 작성된 글입니다. *
'Spring > Spring' 카테고리의 다른 글
세션 기반 인증과 토큰 기반 인증의 차이, 왜 다를까? (0) | 2024.12.02 |
---|---|
@Transactional 사용하기 전, Transaction 이랑 먼저 친해지기 (0) | 2024.10.27 |