SpringBoot 공부 - 개념

박진용·2022년 12월 28일
0
post-thumbnail

IoC(Inversion of Control, 제어역전)

사용할 객체를 직접 생성하지 않고, 객체의 생명주기를 외부에 위임

여기서 외부는 스프링 컨테이너 또는 IoC컨테이너

객체를 관리하는게 컨테이너고 제어권이 넘어간 것을 제어 역전이라고 부른다.

이 제어역전을 기반으로 의존성주입(DI) 또는 관전지향 프로그래밍(AOP) 등이 가능

프로그래머는 비즈니스로직에만 집중하도록 함

DI(Dependency Injection, 의존성 주입)

제어역전의 방법 중 하나, 사용할 객체를 직접 생성이 아닌

외부 컨테이너가 생성한 객체를 주입 받아 사용하는 방식

  • 생성자를 통한 의존성 주입

  • 필드 객체 선언을 통한 의존성 주입

  • setter 메서드를 통한 의존성 주입

AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)

기능을 구현할 때 핵심 기능을 '핵심 기능'과 '부과 기능'으로 구분하고

각각을 하나의 관점으로 보는 것을 의미

핵심기능

비즈니스 로직을 구현하는 과정에서 비즈니스 로직이 처리하려는 목적 기능

부과기능

로깅, 트랜잭션 등 어떤 기능인지 무관하게 로직이 수행되기 전, 후에 수행되는 기능

여러 비즈니스 로직에 반복되는 기능을 하나의 공통 로직으로 처리하도록 모듈화해

삽입하는 방식을 AOP 라고 함

AOP를 삽입하는 방법

  • 컴파일 과정에 삽입

  • 바이트코드를 메모리에 로드하는 과정에 삽입

  • 프록시 패턴을 이용한 방식

profile
하루하루 깊어지자

0개의 댓글