포스트잇
Spring이란? 본문
스프링 프레임워크는 자바 기반의 애플리케이션 프레임워크로 애플리케이션 개발을 위한 다양한 기능을 제공합니다. 스프링은 목적에 따라 다양한 프로젝트를 제공하는 데, 그 중 대표적인 것이 스프링 부트(Spring Boot)입니다.
스프링의 핵심 가치는 다음과 같습니다.
애플리케이션 개발에 필요한 기반을 제공함으로써 개발자는 비즈니스 로직 구현에만 집중하도록 도우는 것
프레임워크를 사용할 때, 프레임워크의 목적성에 맞게 사용할 때 효율이 극대화 됩니다. 그렇다면 스프링은 어떠한 구조와 특성으로 인해 위와 같은 핵심가치를 이루도록 도와줄까요?
1. 제어의 역전 ( Inversion of Control )
일반적인 자바 프로그래밍을 할 때 우리는 다음과 같이 객체를 사용합니다.
public class main(){
private Toy toy = new Toy();
toy.print();
}
글로 표현하자면, 사용하려는 객체를 선언하고 해당 객체의 의존성을 생성한 후 객체에서 제공하는 기능을 사용합니다. 하지만, 제어 역전을 특징으로 가지는 스프링은 기존의 자바 개발 방식과 다르게 객체를 직접 생성하지 않고 객체의 생명주기 관리를 스프링 컨에티너 또는 IoC컨테이너에 위임합니다.
2. 의존성 주입( Dependency Injection)
의존성 주입이란 제어 역전의 방법 중 하나로, 사용할 객체를 직접 생성하지 않고 외부 컨테이너가 생성한 객체를 주입받아 사용하는 방식을 의미합니다. 스프링에서 의존성을 주입받는 방법은 3가지가 존재합니다.
- 생성자를 통한 의존성 주입
- 필드 객체 선언을 통한 의존성 주입
- setter 메서드를 통한 의존성 주입
스프링에서는 @Autowired라는 어노테이션을 통해 의존성을 주입할 수 있습니다.
3. 관점 지향 프로그래밍 ( Aspect Oriented Programing )
관점 지향 프로그래밍(AOP)은 스프링의 아주 중요한 특징입니다. 자바를 다뤄본 사람이라면 객체 지향 프로그래밍(OOP)은 들어본 적이 있을겁니다. AOP는 OOP를 더 잘 사용하도록 돕는 개념으로 관점 기준으로 묶어 개발하는 방식을 의미합니다.
'스프링' 카테고리의 다른 글
스프링 빈과 빈 스코프 (0) | 2025.02.14 |
---|---|
의존성 주입(Dependcy Injection) (1) | 2025.02.14 |
스프링 컨테이너와 IoC (1) | 2025.02.14 |
빌드 파일(build.gradle) (1) | 2024.10.17 |
JUnitTest (0) | 2024.02.27 |