java(자바)스프링 웹공부(웹사이트개발) ·

자바 스프링 강의 2강

728x90
반응형

안녕하세요! 이번에는 자바 스프링 강의 2강에 대해 소개해드릴게요. 이번 강의에서는 스프링의 핵심적인 개념 중 하나인 DI와 AOP에 대해서 자세히 다룹니다.

1. DI(Dependency Injection)

DI는 의존성 주입이라는 뜻으로, 객체 간의 의존성을 줄여 유연한 설계를 할 수 있게 해줍니다. 스프링에서는 DI를 사용하여 객체 간의 의존성을 해결합니다.

1-1. DI의 종류

스프링에서 DI를 구현하는 방법에는 다음과 같은 종류가 있습니다. Setter Injection: Setter 메소드를 통해 의존성을 주입하는 방법입니다. Constructor Injection: 생성자를 통해 의존성을 주입하는 방법입니다. Field Injection: 필드를 통해 의존성을 주입하는 방법입니다.

1-2. 예제

다음은 Setter Injection을 사용한 예제입니다.

public class SetterInjectionExample {
    private Dependency dependency;

    public void setDependency(Dependency dependency) {
        this.dependency = dependency;
    }

    public void doSomething() {
        // do something with dependency
    }
}

2. AOP(Aspect Oriented Programming)

AOP는 관점 지향 프로그래밍이라는 뜻으로, 핵심 로직과 관련 없는 부가적인 기능들을 분리하여 프로그래밍하는 기법입니다. 스프링에서는 AOP를 사용하여 로깅, 보안 등과 같은 부가적인 기능들을 분리하여 구현할 수 있습니다.

2-1. AOP의 용어

AOP를 사용하는 데 필요한 용어들을 알아봅시다. Aspect: 부가적인 기능들을 모듈화한 것을 Aspect라고 합니다. Join point: Aspect가 실행되는 지점으로, 메소드 실행 시점이나 예외 발생 시점 등이 될 수 있습니다. Advice: Join point에서 실행되는 코드를 Advice라고 합니다. Before, After, Around 등의 종류가 있습니다. Pointcut: Join point의 집합으로, 어떤 Join point에서 Advice를 실행할 지 결정합니다.

2-2. 예제

다음은 AOP를 사용한 로깅 예제입니다.

@Aspect
    public class LoggingAspect {
    
        @Before("execution(* com.example.service.*.*(..))")
        public void logBefore(JoinPoint joinPoint) {
            System.out.println("Before " + joinPoint.getSignature().getName());
        }
    
        @After("execution(* com.example.service.*.*(..))")
        public void logAfter(JoinPoint joinPoint) {
            System.out.println("After " + joinPoint.getSignature().getName());
        }
    }

결말

자바 스프링 강의 2강에서는 스프링의 핵심 개념인 DI와 AOP에 대해 다뤘습니다. 스프링의 DI와 AOP를 이용하면 유연하고 확장성 있는 프로그램을 만들 수 있습니다. 다음 강의에서는 스프링의 주요 기능 중 하나인 스프링 부트에 대해 다룰 예정입니다. 감사합니다!

728x90
반응형