-
스프링 프레임워크에 대하여 ArabozaDevelopment/Spring Framework 2020. 11. 14. 20:45
스프링이란?
흔히들 스프링으로 줄여말하지만 정확히는 스프링 프레임워크를 의미합니다. 오픈소스 플랫폼으로 자바언어 개발을 위한 방대한 기능을 포함하고 있습니다.
(예를 들어 JPA, MyBatis, JSP 등을 효율적으로 이용하기 위한 기능이 포함)
공공기관의 웹 애플리케이션을 개발할때 사용하는 전자정부 프레임워크도(eGovFrame) 스프링 프레임워크 기반입니다.주요 특징으로는 아래와 같습니다.
- 의존 주입 (Dependency Injection : DI)
- AOP (Aspect-Oriented Programming : 관점지향적 프로그래밍)
- 컨테이너를 통하여 Java 객체의 LifeCycle을 관리 (Ex_ bean)
- MVC 웹 프레임워크 제공
- 제어의 역전 (이 내용은 이전 글인 프레임워크 와 라이브러리 차이점에서 설명한 개념입니다.)
- JDBC, JPA 연동 , 선언적 트랜잭션 처리 등 DB 연동 지원
- 그외 스케쥴링(쿼츠 기반), 메시지 연동, 이메일 발송, 테스트 등의 기능 제공
- 경량화주로 사용하게 되는 모듈은 다음과 같습니다. [출처 : 위키피디아]
- 제어 반전 컨테이너
프레임워크의 특징중 하나인 제어 반전은 스피링의 핵심정인 기능입니다. Java의 Reflection을 이용하여 객체의
생명 주기 관리 및 의존성을 주입하여 각 계층과 서비스들간의 의존성을 맞춰줍니다.
이러한 환경 설정 정보들은 XML (properties)파일을 이용하여 설정하게 됩니다.
- 관점 지향 프로그래밍 프레임워크
관점 지향적 프로그래밍형태로 로깅/보안, 트랜잭션 등의 비즈니스로직과 관련이 없으나 공통적으로 쓰이는
기능들을 분리하여 개발하고 실행 시에 조합 할 수 있도록 지원합니다.
- 데이터 액세스 프레임워크
데이터베이스에 엑세스 하기 위한 JDBC, MyBatis, 하이버네이트를 지원합니다.
- 트랜잭션 관리 프레임워크
XML (properties)파일을 이용하여 추상화된 트랜잭션 관리를 지원합니다.
Ex_ 특정 인터페이스(클래스)의 트랜잭션을 별도로 관리하도록 설정한다던지...
- MVC 디자인 패턴
Spring MVC라 불리는 패턴을 주로 사용하며, DispatcherServlet이 Controller 역할을 담당합니다.
View의 경우 jsp를 자주 이용하기도 합니다.
- 배치 프레임워크
특정 시간대에 실행하는 스케쥴링 기능이나, 대용량의 데이터를 처리하는 일괄처리 기능을 지원합니다.
기본적으로 Quartz 기반으로 동작합니다.이 외에 DAO, ORM, Context 등의 개념도 알아야하지만.. 기본적으로 스프링 프레임워크를 이용하여 개발을 한다고 하면은 기본 적인 특징은 이해하고 사용하는것과 그렇지 않은것은 미미하지만 차이가 크다고 할 수 있습니다. (뭔말이래...)
댓글