안녕하세요. Spring의 특징에 대해서 포스팅해보려고 합니다.

 

 


 

 

Spring Framework

Spring은 Java를 기반으로 웹 어플리케이션을 만들 수 있는 프레임워크입니다. 현재 우리나라 기준, Java 백엔드 개발자는 Spring Framework를 많이 사용하고 있습니다.

 

Spring의 큰 특징으로 꼽히는 IOC, DI, AOC에 대해서 알아보겠습니다.

 

 

 

# IOC = Inversion Of Control = 제어의 역전

일반적으로, 처음 Java로 코딩을 할 때에는 사용자가 직접 각 객체들을 직접 생성하고 조작하는 작업( 객체 생성 후 메소드 호출 )을 했습니다. 즉 각 객체들의 흐름을 사용자가 제어하는 구조였습니다.

하지만, IOC가 적용된 경우 객체의 생성 및 관리를 다른 주체에게 위임합니다. (Spring에서는 IOC Container라는 컨테이너에게 위임합니다.)

 

이와 같이 사용자가 직접 객체를 생성하는 것이 아니라 어떤 주체에게 넘기는 것.

즉 사용자의 제어권을 다른 주체에게 넘기는 것을 IOC = 제어의 역전이라고 합니다.

 

 

# DI = Dependency Injection = 의존성 주입

어떤 객체를 사용하는 주체가 객체를 직접 생성하는 것이 아니라, 객체를 외부에서 생성해서 사용하려는 객체에 주입시켜주는 방식을 말합니다.

예를 들어 A Class에서 B Class의 객체를 직접 생성해야 할 때, 의존성이 높아지게 됩니다. ( 변경 사항이 생기는 경우, 서로에게 영향을 많이 끼친다. )

하지만 외부 (Spring)에서 객체를 생성하여 A에게 주입해주는 방식을 사용하면 A와 B의 의존성이 줄어듭니다.

 

 

# AOC = Aspect Oriented Programming = 관점 지향 프로그래밍

공통적으로 사용하는 기능을 재사용하는 것을 말합니다. 예를 들어 모든 로직에는 공통적으로 로그가 많이 발생합니다.

어플리케이션 전체에 분산된 공통적인 기능이 한 곳에서 관리된다는 점이 장점입니다.

 

 

 

Spring Framework를 사용하는 이유를 정리해보자면..

  1. DI를 통해 모듈간의 결합도(의존도)를 낮출 수 있습니다.
  2. 다양한 요구사항에 따른 어플리케이션을 만들 수 있도록 지원합니다. 
  3. AOC 를 통해 수평적인 제어가 가능합니다.

 

 


 

 

Spring Framework의 특징 및 사용하는 이유에 대해서 서술해보았습니다.

기본기는 진짜 꾸준히 공부해야하는 것 같습니다 ㅜㅜ!

 

 

 

 

참조:

http://melonicedlatte.com/2021/07/11/174700.html

 

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

Spring 과 SpringBoot의 차이  (0) 2021.08.24

+ Recent posts