본문 바로가기
스프링 프레임워크

스프링의 특징

by u0jin 2019. 5. 24.

스프링의 주요특징에 대해 알아봅시다.

 

  • POJO 기반의 구성

내부 객체들의 관계를 구성할때, 별도의 API 사용없이 POJO의 구성만으로 가능합니다.

즉, 여러분은 일반적인 java코드를 이용하여 객체를 구성하는 방식을 스프링에서도 이용할수 있습니다.

 

  • 의존성 주입

먼저 의존성이란 무엇일까요?

의존성이란 식당의 주방장과 서빙직원을 예시로 설명할수 있습니다.

직원이 그만둔다고 장사를 못하진않습니다. 하지만 주방장이 관둔다면 장사를 할수 없습니다.

이를 보고 식당은 주방장에 의존적이다 라고 볼수 있습니다.

 

주입은 무엇일까요?

주입이란 말 그대로 외부에서 내부로 밀어넣는것을 의미합니다.

의존성과 주입을 결합하여 생각해 본다면,

어떤객체가 필요한 객체를 외부에서 밀어넣는것이라고 볼수 있습니다.

예를 들어 식당에 필요한 식재료를 식당으로 넣는것으로 볼수있습니다.

 

이제 의존성주입의 개념이 잡혔다면,

의문이 생깁니다.

왜 외부에서 객체를 주입하는 방식을 사용하는걸까요?

식당이 직접 식재료를 가지러 가는대신 누군가 가져다 준다면, 식당은 식재료에 대한 신경을 쓰지않고, 음식을 조리하는 일에 더 집중할수 있습니다.

 

다시말해, 주입받는 입장에서는 그냥 받기만 하면 되는것입니다. 신경쓸 필요가 없어지죠.

A 에게는 B가 필요합니다. 그걸 C라는 친구가 대신 전해주게 되는것입니다.

이것을 보고 여러분은 의존성주입 방식을 사용했다고 할 수 있습니다.

 

  • 스프링

스프링은 의존성주입 방식을 활용하기에 아주 적합한 구조를 가지고 있습니다.

C라는 역할은 ApplicationContext라는 존재가 수행합니다.

필요한객체를 생성, 주입하는 역할을 합니다.

개발자는 결국 객체를 서로 분리하여 만들게 되고 객체를 엮는 작업의 프로그래밍을 하게됩니다.

ApplicationContext 가 관리하는 객체는 빈( Bean ) 이라고 불립니다.

빈과 빈 사이의 의존관계는 xml, 어노테이션, java 설정으로 처리할수 있습니다.

 

  • AOP의 지원

스프링에서는 반복적인 코드를 줄이고, 핵심비지니스 로직에만 집중할수 있는 방법을 지원합니다.

반드시 처리가 필요한 부분을 스프링에서는 횡단 관심사( cross-concern ) 라고 합니다.

AOP는 이런 횡단 관심사를 모듈로 분리하는 프로그램 패러다임입니다.

AOP는 AspectJ의 문법을 통해 작성 할수 있습니다.

개발자가 이를 통해 얻을 수있는 장점은 무엇일까요?

  1. 핵심 비지니스 모델에만 집중해서 코드를 개발할 수 있습니다.

  2. 코드 수정을 최소화 할 수 있습니다.

  3. 유지보수가 수월한 코드를 구성할 수 있습니다.

     

  • 트랜잭션의 지원

데이터베이스를 이용할때, 가장 중요한 부분은 트랜잭션 처리입니다.

스프링에서는 이런 트랜잭션 관리를 어노테이션이나 xml로 설정할 수 있습니다.

 

스프링의 특징

1. POJO 기반의 구성

2. 의존성주입을 통한 객체간의 관계 구성

3. AOP 지원

4. 편리한 MVC 구조

5. WAS의 종속적이지 않은 개발 환경

 

'스프링 프레임워크' 카테고리의 다른 글

프레임워크 란?  (0) 2019.05.24

댓글