본문 바로가기

Framework/Spring

[ Spring ] Spring 핵심 개념인 DI, AOP에 대해서 간략하게 알아보기

반응형

스프링의 DI(Dependency Injection)와 AOP(Aspect-Oriented Programming)는 스프링 프레임워크의 핵심 기능 중 두 가지로, 각각 의존성 관리와 관점 지향 프로그래밍을 통해 코드의 유지 보수성과 재사용성을 높여줍니다. 각 기능에 대해 자세히 설명하겠습니다.

1. DI (Dependency Injection, 의존성 주입)

DI는 객체 간의 의존성을 스프링 컨테이너가 관리해 주는 방식입니다. 이를 통해 객체 간의 결합도를 낮추고, 코드의 유연성과 테스트 용이성을 높일 수 있습니다. DI의 주요 특징은 다음과 같습니다:

  • 객체 주입 방식: 생성자 주입, 세터 주입, 필드 주입 등 다양한 방법으로 객체를 주입할 수 있습니다.
  • 결합도 감소: 객체가 직접 다른 객체를 생성하지 않기 때문에, 코드의 결합도가 낮아지고 모듈화가 용이해집니다.
  • 유지 보수성 향상: 의존성 관리가 용이해져 코드 수정 시 영향을 최소화할 수 있습니다.
  • 설정 관리: 스프링 컨테이너에서 빈(Bean)을 설정 파일(XML, Java Config)이나 애노테이션(@Component, @Autowired 등)을 통해 관리할 수 있습니다.

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

AOP는 비즈니스 로직에서 공통적으로 사용되는 기능(로깅, 보안, 트랜잭션 관리 등)을 분리하여 코드의 관심사를 명확히 하는 프로그래밍 기법입니다. 이를 통해 중복 코드를 줄이고 코드의 가독성과 유지 보수성을 높일 수 있습니다. AOP의 주요 특징은 다음과 같습니다:

  • 관점(Aspect): 공통된 기능을 모듈화한 것으로, 여러 지점에서 동일하게 동작합니다.
  • 조인포인트(Join Point): 어드바이스가 실행될 수 있는 특정 지점(메서드 호출, 예외 발생 등)을 말합니다.
  • 어드바이스(Advice): 조인포인트에서 실행되는 실제 작업으로, 언제 실행될지를 정의할 수 있습니다(전처리, 후처리, 예외 처리 등).
  • 포인트컷(Pointcut): 어드바이스를 적용할 조인포인트를 정의하는 표현식입니다.
  • 위빙(Weaving): 어드바이스를 타겟 객체의 조인포인트에 적용하는 과정입니다.

DI와 AOP의 결합

스프링은 DI를 통해 객체를 관리하고, AOP를 통해 공통 관심사를 분리함으로써 객체의 생성과 관리, 그리고 실행 흐름을 제어할 수 있습니다. 이를 통해 객체 간의 결합도는 낮추고, 코드의 재사용성과 유지 보수성을 높이며, 애플리케이션의 복잡성을 효과적으로 관리할 수 있습니다.

반응형

'Framework > Spring' 카테고리의 다른 글

[ Spring ] IntelliJ IDEA/bootRun 실행 하는 방법  (0) 2024.09.27
[ Spring ] Spring Boot 설치하기  (1) 2024.09.24
[ Spring ] Spring의 주요 제품  (1) 2024.09.24
[ Spring ] Spring의 역사  (0) 2024.09.22