Spring Framework

[Spring Framework] Spring Framework

써치킴 2022. 5. 16. 02:07

Spring Framework

엔터프라이즈 어플리케이션 개발을 편하게 해주는 오픈소스 프레임워크.

크기와 부하의 측면에서 경량 컨테이너이며, 자바 객체를 직접 관리한다.
제어의 역전(Ioc), 의존성주입(DI), 관점 지향 프로그래밍(AOP)가 주요 특징이다.

 

1. 제어의 역전(IoC : Inversion of Control)

IoC란 기존 사용자가 모든 작업을 제어하던 것을 특별한 객체에 모든 것을 위임하여 

객체의 생성부터 생명주기 등 모든 객체에 대한 제어권이 넘어간 것을 제어의 역전(IoC)이라고 한다.

 

  • 애플리케이션의 느슨한 결합을 도모.
  • 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어 필요에 따라 스프링에서 사용자의 코드를 호출한다.

 2. 의존성 주입(DI : Dependency Injection)

객체가 서로 의존하는 관계가 되게 의존성을 주입하는 것이다.

객체지향 프로그램에서 의존성이란 하나의 객체가 어떠한 다른 객체를 사용하고 있음을 의미한다. 

IoC에서의 의존성 주입은 각 클래스 사이에 필요로 하는 의존관계를 빈 설정 정보를 바탕으로 컨테이너가 자동으로 연결해 주는 것이다.

 

  • 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.

3. 관점 지향 프로그래밍(AOPAspect-Oriented Programming)

핵심기능과 공통기능을 분리시켜 핵심 로직에 영향을 끼치지 않게 공통기능을 끼워 넣는 개발 형태이며 

이렇게 개발함에 따라 무분별하게 중복되는 코드를 한 곳에 모아 중복 되는 코드를 제거할 수 있어지고

공통기능을 한 곳에 보관함으로써 공통 기능 하나의 수정으로 모든 핵심기능들의 공통기능을 수정 할 수 있어 효율적인 유지보수가 가능하며 재활용성이 극대화된다. AOP로 만들 수 있는 기능은 OOP로 구현 할 수 있는 기능이지만 Spring에서는 AOP를 편리하게 사용 할 수 있도록 이를 지원하고 있다.

 

  • 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있다.

엔터프라이즈?

엔터프라이즈급 개발이란 뜻대로만 풀이하면 기업을 대상으로 하는 개발이라는 뜻이다.

즉, 대규모 데이터 처리와 트랜잭션이 동시에 여러 사용자로 부터 행해지는 매우 큰 규모의 환경을 엔터프라이즈 환경이라 말한다.

 

Reference

https://goddaehee.tistory.com/156

https://khj93.tistory.com/