본문 바로가기
Spring

[Spring Framework] 1. Spring Framework 구조

by 유혁. 2021. 5. 18.

1. Spring Framework 란

 

 : 엔터프라이즈 어플리케이션에서 필요로 하는 기능을 제공하는 프레임워크이다. 

  풀어서 설명하자면 개발을 편하게 하기위한 틀이다.

 

스프링 프레임워크가 없다면?

 - 서블릿 객체를 이용해서 DD를 관리해줘야 하는 번거로움, 무분별한 개발로 인한 데이터 꼬임 발생 등 개발에 어려움들이 발생 할 수 있다.

 

편하게 사용 할 수 있는 틀을 만들어 개발하는 틀이 프레임워크이다.

 

※ 특징

- 경량 컨테이너다. 자바객체의 생성, 소멸 라이프 사이클을 관리하며 스프링 컨테이너로부터 필요한 객체를 가져와 사용할 수 있다.

- IoC(Inversion of Control) / DI(Dependency Injection) 컨테이너 이다. 

 : IoC는 역전제어로 모든 작업을 사용자가 제어하는것이 아닌 특별한 객체에게 위임하여 맡기는 형태이다. 

   객체의 생성, 생명주기 등 사용자는 해당객체를 직접 컨트롤 할 수 없다.

   DI는 의존성을 주입한다는 의미로, 각 클래스 사이에 필요로 하는 의존관계를 빈설정을 통해 컨테이너가 자동으로 연     결해주는 것이다.  이해를 쉽게 하기위하여, Java로 된 객체의 생성자나, 맴버변수를 Java에서 설정하는 방식이 아닌       xml에 선언하여 해당 객체를 초기화 하거나 생성하여 사용할 수 있도록 해준다. 

- POJO 를 지원한다. 기존 순수 자바코드로 개발이 가능하다.

- AOP 를 지원한다. 공통으로 필요하지만 핵심모듈이 아닌 기능을 분리해서 사용 가능하다.

 

 

2. Spring Framework 구조

 

 

Spring Core

Spring Core는 Spring Container을 의미합니다. core라는 말 그대로 Container는 Spring Framework의 핵심이며 그중 핵심은 Bean Factory Container입니다.  그 이유는 바로 Bean Factory는 IOC패턴을 적용하여 객체 구성 부터 의존성 처리까지 모든 일을 처리하는 역할을 하고 있기 때문입니다.

 

Spring Context

Spring context는 Spring Framework의 context 정보들을 제공하는 설정 파일입니다. Spring Context에는 JNDI, EJB, Validation, Scheduiling, Internaliztaion 등 엔터프라이즈 서비스들을 포함하고 있습니다.

 

Spring AOP

Spring AOP module은 Spring Framework에서 관점지향 프로그래밍을 할 수 있고 AOP를 적용 할수 있게 도와주는 Module입니다. 해당 AOP에 대한 내용은 위에서 설명 했기 때문에 넘어 가도록 하겠습니다.

 

Spring DAO

DAO란 Data Access Object의 약자로 Database Data에 접근하는 객체입니다. Spring JDBC DAO는 추상 레이어를 지원함으로써 코딩이나 예외처리 하는 부분을 간편화 시켜 일관된 방법으로 코드를 짤 수 있게 도와줍니다.

 

Spring ORM

ORM이란 Object relational mapping의 약자로 간단하게 객체와의 관계 설정을 하는 것입니다. Spring에서는 Ibatis, Hibernate, JDO 등 인기있는 객체 관계형 도구(OR도구)를 사용 할 수 있도록 지원합니다.

 

Spring Web

Spirng에서 Web context module은 Application module에 내장되어 있고 Web기반의 응용프로그램에 대한 Context를 제공하여 일반적인 Web Application 개발에 필요한 기본적인 기능을 지원합니다. 그로인해 Jakarta Structs 와의 통합을 지원하고 있습니다.

 

Spring MVC

Spring에서는 MVC에서는 Model2 구조로 Apllication을 만들 수 있도록 지원합니다. MVC (Model-View-Controller) 프레임 워크는 웹 응용 프로그램을 작성하기위한 완전한 기능을 갖춘 MVC를 구현합니다. MVC 프레임 워크는 전략 인터페이스를 통해 고급 구성 가능하며 JSP, Velocity, Tiles, iText 및 POI를 포함한 수많은 뷰 기술을 지원하고 있습니다.