스프링 프레임워크(Spring Framework)에 대해서

2019. 5. 5. 04:58Spring Boot

Spring은 무엇인가?

스프링 프레임워크는 자바개발을 단순화 하기 위해 만들어진 오픈소스 응요프로그램 프레임워크다. 스프링은 단순하면서도 일관성 있는 API집합을 제공하여 개발자들이 복잡한 응용프로그램을 설계하는 동안 복잡하고 어려운 기반 코드에 연연하지 않도록 도움을 준다.

 스프링에는 크게 6개의 기본 기능 영역으로 나눌 수 있고 정확하게는 모르겠지만, 약 20가지 내외의 모듈들을 유지하고 있다고 한다. 기본 기능으로는 데이터 엑세스/통합, 웹, AOP, 인스트루멘테이션(이건 자세하게 잘 모르겠다.), 핵심 컨테이너, 테스트로 나뉜다. 이렇게 모듈화를 함으로써 스프링의 어떤 부분을 개발하고 있는 응용프로그램에 전체 프레임워크를 포함시키지 않고 필요한 부분만을 가져다 사용할 수 있는 자유도를 제공해 준다.

스프링의 주요 구성 요소들

Spring 컨테이너

스프링을 처음 시작 했을 때부터 항상 들어 온 이야기가 있다. IoC와 DI 제어의 역전 과 의존성 주입. 정말 끝도 없이 들었었다. 간략히 소개 하자면 스프링의 핵심은 의존성 주입 컨테이너이다. Bean의 생성, 구성 그리고 관리에 대한 구현을 맡는다. 그리고 다른 모듈들이 작동하기 위해서 필요한 기능을 컨테이너가 제공한다는 사실만 집고 넘어가자. 

 

관점 지향 프로그래밍(AOP)

사실 의존성 주입과 마찬가지로 많이 듣는 것이 AOP이다. 알아보니 스프링 프레임워크에서는 Spring AOP와 좀 더 강력한 기능인 AspectJ라는 이름의 기술도 지원한다고 한다. AspectJ는 처음 들어 봤지만 나중에 한번 찾아 봐야겠다. 

우선 AOP는 보안, 로그, 트랜잭션 관리 등의 횡단 관심사에 대한 캡슐화를 구현하는 방법이다. 관심사들은 깔끔하게 정리 되지 않아 중복된 코드를 만들어 내기 쉽고, 복잡하고 강력한 결합을 유발하게 되어 시스템 전반에 많은 중복 코드를 만들어내게 된다. 

 

데이터 엑세스/통합

데이터 엑세스/통합 모듈은 자바 데이터베이스 연결 API(JDBC)와 객체 관계 연결(ORM), 객체/XML 연결(OXM), 자바 메세지 서비스(JMS), 트랜잭션 기능을 지원한다.

 

스프링의 웹 모듈은 공용 웹 인프라 코드를 스프링을 웹응용프로그램. multipart 파일 업로드, 그리고 웹 기반 리모팅 기능에 통합하기 위하여 제공한다. 더 나아가서 자체적인 서블릿, 또는 포틀릿 기반의 MVC프레임 워크도 제공한다고 한다.

 

테스트

스프링에는 테스트 관련 지원 모듈이 있다고 한다. 우리가 흔히 알고 있는 JUnit과 나는 처음들어보는... TestNG프레임워크에 대한 지원과 사용이 가능하다고 한다. 

 

 

'Spring Boot' 카테고리의 다른 글

Ajax란 무엇일까?  (0) 2019.05.15
Aop 에 대해서  (0) 2019.02.05
IoC(제어의 역전) 와 DI(의존성 주입)이란  (0) 2019.01.05
Spring Boots 기초2  (0) 2018.11.18