⚙ Framework/Spring-스프링

[Java] Spring이란? (2) - Spring의 주요 특징

mxnxeonx 2023. 8. 3. 15:50
728x90
728x90

Spring은 Java 개발을 더 쉽게 해주는 프레임워크로서 여러 기술을 가진다.

 

[Java] Spring이란?

Spring Java 언어 기반의 Framework. 객체지향 언어가 가진 강력한 특징을 살려내는 프레임워크로, 좋은 객체지향 애플리케이션을 개발할 수 있도록 도와준다. Java로 다양한 애플리케이션을 만들 수

idox.tistory.com

 

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

객체(인스턴스)의 생성과 소멸 등 개발자가 직접 제어해야 하는 부분들을 Framework(정확히는 Container)가 대신 처리하는 것. 제어의 주도권이 개발자에서 Spring Framework로 넘어간다는 면에서 제어의 역전이라고 명명

  • 개발자가 실수할 수 있는 생명주기 관리를 대신 해줌
  • 프로젝트의 규모가 클수록 객체와 자원을 이용하는 방법이 더 복잡해져 코드가 꼬일 수 있음을 자동으로 관리

 

 

DI(Dependency Injection) : 의존성 주입

구성요소 간의 의존 관계가 소스코드 내부가 아닌 외부의 설정 파일을 통해 정의되는 방식. 코드 재사용성을 높여 소스코드를 다양한 곳에 사용 가능하며 모듈간 결합도도 낮출 수 있음.

사용자가 직접 new 키워드를 사용하여 객체를 생성하지 않고, 외부(컨테이너)에서 생성된 객체를 주입받는다. 즉, 의존하는 객체를 직접 생성하는 대신 Spring 컨테이너로부터 의존 객체를 주입(전달) 받는다. (*EJB 컨테이너와 Spring 컨테이너는 모두 객체의 의존성 해결 및 관리를 목표로 함)

  • 의존 : A 클래스가 일을 하기위해 B의 기능을 사용하는 것 (다른 객체에 의존하여 처리하는 개념)
  • 주입 : 생성되어 있는 객체를 주입받는 방식 → 빈 설정 정보를 바탕으로 컨테이너가 자동 주입 (제어하는 주체가 뒤바뀜)

 

 

AOP(Aspect Object Programming) : 관점 지향 프로그래밍

로깅, 트랜잭션, 보안 등 여러 모듈에서 공통적으로 사용하는 기능을 분리하여 관리한다. → 여러 객체에 공통으로 적용할 수 있는 기능을 구분함으로써 재사용성을 높여주는 프로그래밍 기법.

ex) 중복된 기능들을 모두 빼놓은 뒤 그 기능이 필요할 때만 호출하여 사용하는 방식을 통해 실용성과 가독성, 개발 속도를 향상한다.

 

 

POJO(Plain Old Java Object)

POJO는 Java EE를 사용하면서 해당 플랫폼에 종속되어 있는 무거운 객체들을 만드는 것에 반발하여 나타난 용어이다. 별도의 프레임워크 없이 Java EE를 사용할 때에 비해 인터페이스를 직접 구현하거나 상속받을 필요가 없어 기존 라이브러리를 지원하기 용이하고 객체가 가볍다.

getter/setter를 가진 단순한 Java Obejct를 말함
728x90
320x100