Keep going

스프링의 특징 본문

Records/Spring Framework

스프링의 특징

코딩천재홍 2021. 2. 1. 22:56

프레임워크란 ?

뼈대나 근간을 이루는 코드들의 묶음

 

경량 프레임워크란?

90년대 말에 복잡한 구동 환경과 하드웨어적인 구성이 필요한 프레임워크의 반대되는 개념으로 등장

과거 J2EE 기술이 너무 복잡하고 방대 → 전체 이해하고 개발하기에 어려움이 있었다.

경량프레임워크 → 특정 기능을 위주로 간단한 jar 파일 등을 이용해서 모든 개발이 가능

 

 

스프링의 차별성

  • 복잡함에 반기를 들어 만들어진 프레임워크
  • 프로젝트의 전체 구조를 설계할 때 유용한 프레임워크
  • 여러 종류의 프레임워크를 혼용해서 사용 가능
  • 개발 생산성과 개발도구의 지원

스프링의 주요 특징

  • POJO 기반의 구성
  • 의존정 주입을 통한 객체 간의 관계 구성
  • AOP 지원
  • 편리한 MVC 구조
  • WAS의 종속적이지 않은 개발 환경

◆ POJO (plain old java object) 기반의 구성

- 스프링은 다른 프레임워크들과 달리 객체 간의 관계를 구성할 때, 

별도의 API 등을 사용하지 않는 POJO의 구성만으로 가능하도록 제작되어 있다. (라이브러리 기술 종속 X, 생산성 유리)

(일반적인 JAVA 코드를 이용해서 객체를 구성하는 방식을 그대로 스프링에서 사용할 수 있다.)

 

 

◆ 의존성 주입과 스프링

- 의존성이란 하나의 객체가 다른 객체 없이 제대로 된 역할을 할 수 없다.

A 객체가 B 객체 없이 동작이 불가능 하다. → A가 B에 의존적이다.

 

- 주입 방식

A는 B가 필요하다는 신호만 보내고, B객체를 주입하는 것은 외부에서 이루어지는 방식

 

- 주입 방식의 장점

주입을 받는 입장에서는 어떤 객체인지 신경 쓸 필요 없다.

어떤 객체에 의존하든 자신의 역할은 변하지 않는다.

 

→ 의존성 주입 방식은 의존성이 필요한 객체에 필요한 객체를 찾아서 주입하는 역할을 한다.

    스프링에서는 ApplicationContext 가 존재가 필요한 객체들을 생성, 필요한 객체들을 주입하는 역할

    스프링에서는 ApplicationContext가 관리하는 객체들을 '빈(Bean)' 이라는 용어로 부르고, 

    빈과 빈 사이의 의존관계를 처리하는 방식으로 XML 설정, 어노테이션 설정, Java 설정 방식을 이용할 수 있다.

 

 

◆ AOP의 지원

좋은 개발환경의 주요 원칙 → ' 개발자가 비즈니스 로직에만 집중할 수 있게 한다.'.

스프링은 반복적인 코드를 줄이고, 핵심 비즈니스 로직에만 집중할 수 있는 방법을 제공한다.

 

보안, 로그, 트랜잭션과 같이 비즈니스 로직은 아니나, 반드시 처리가 필요한 부분을 스프링에서는 '횡단 관심사'라고 하는데 스프링은 이러한 횡단 관심사를 분리해서 제작하는 것이 가능하다.

AOP는 이러한 횡단 관심사를 모듈로 분리하는 프로그래밍의 패러다임이다.

스프링은 AOP를 AspectJ의 문법을 통해서 작성할 수 있다. 

 

AOP를 통해 얻는 이점

1. 개발자는 핵심 비즈니스 로직에만 집중해서 코드를 개발 가능

2. 각 프로젝트마다 다른 관심사를 적용할 때 코드의 수정을 최소화

3. 원하는 관심사의 유지보수가 수월한 코드를 구성 가능

 

 

◆ 트랜잭션의 지원

데이터베이스를 이용할 때 신경 써야 하는 부분은 하나의 업무가 여러 작업으로 이루어지는 경우의 트랜잭션 처리다.

스프링은 트랜잭션의 관리를 어노테이션이나 XML로 설정할 수 있기 때문에 개발자가 매번 상황에 맞는 코드를 작성할 필요가 없도록 설계되어있다.

 


출처 : 코드로 배우는 스프링 웹 프로젝트 [구멍가게 코딩단]

Comments