본문 바로가기

이론

2024-07-30

"스프링 빈을 등록하는 두가지 방법"

  • @Component 스캔과 자동의존 관계 설정 → 정형화되어서 수정할 필요가 없을 때
  • 자바 코드(@Configuration, @Bean)을 사용하여 직접 스프링 빈 등록 → 정형화되지 않아서 수정이 필요할 때 (상황에 따라 구현 클래스를 변경해야할 때)

 

"DI"

  1. 생성자 주입 → final로 선언하여 런타임에 변경 x, 주입받을 객체가 bean으로 등록되어 있다면 @Autowired 생략가능/ 스프링에서 권장하는 방식
  2. 필드 주입 → @Autowired만 붙여주면 자동으로 의존성이 주입됨, 외부에서 접근이 불가능하다는 단점이 있다( 테스트 코드의 중요성이 부각되면서 필드 주입은 잘 사용되지 않게 됨)
  3. Setter 주입 → final을 사용하지않아 런타임에 동적변환이 가능함, 어디서든 변경이 가능하다는 단점이 있음 

 

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

→  어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나눠서 각각 모듈화하는 방식

 

프록시?

프록시(Proxy)를 번역하면 대리자, 대변인의 의미를 갖고 있다. 대리자, 대변인은 누군가를 대신해서 그 역할을 수행하는 존재이다. 이는 프로그램에도 똑같이 적용된다. 즉, 프록시에게 어떤 일을 대신 시키는 것이다.

타겟을 감싸서 타겟의 요청을 대신 받아주는 랩핑(Wrapping) 오브젝트

클라이언트에서 타겟을 호출하면, 타겟을 감싸고 있는 프록시가 호출되어, 타겟 메소드 실행전에 선처리, 타겟 메소드 실행 후 후처리를 실행시키도록 구성되어 있다.

  • 프록시는 호출을 가로챈 후, 어드바이스에 등록된 기능을 수행 후 타겟 메소드를 호출한다.

 

"JoinPoint"

조인 포인트는 추상적인 개념이며 AOP를 적용할 수 있는 지점을 의미한다.

 

"Pointcut"

포인트컷은 관심 조인 포인트를 결정하므로 어드바이스가 실행되는 시기를 제어할 수 있다.

 

"위빙"

포인트컷으로 지정한 핵심 관심 메소드가 호출될 때, 어드바이스에 해당하는 횡단 관심 메소드가 삽입되는 과정을 의미한다. 이를 통해 비즈니스 메소드를 수정하지 않고도 횡단 관심에 해당하는 기능을 추가하거나 변경이 가능해진다.

'이론' 카테고리의 다른 글

2024-08-01  (0) 2024.08.01
2024-07-31  (0) 2024.07.31
2024-07-29  (0) 2024.07.29
DB 발전 과정  (1) 2023.11.14
Session VS JWT  (1) 2023.11.12