본문 바로가기

전체 글177

2024.08.26(월) { 조인 포인트, 어드바이스, 포인트컷, 어드바이저 } 조인 포인트 (Join Point)애플리케이션의 실행 흐름에서의 AOP를 적용할 수 있는 모든 특정 지점스프링 컨테이너가 관리할 수 있는 스프링 빈에만 AOP 적용 가능항상 메서드 레벨에만 AOP 적용 가능( 스프링 AOP가 프록시 방식 사용하기 때문 )어드바이스 (Advice)특정 조인포인트(Join Point)에서 수행될 부가기능을 정리한 코드핵심 코드(Target)에 Aspect를 언제 적용할지 정의 포인트컷 (Pointcut)조인포인트(Join Point)에서 어드바이스(Advice)가 적용될 위치를 선별하는 기능( 애플리케이션 실행 흐름에서 AOP를 적용할 수 있는 모든 포인트에서 수행될 부가기능 코드의 위치를 선별하는 기능 )관심 조인포인트를 결정 ➜ 어드바이스가 실행되는 시기 제어 가능어드바.. 2024. 8. 26.
FactoryBean과 ProxyFactoryBean FactoryBean과 ProxyFactoryBean은 모두 Spring 프레임워크에서 사용되는 개념이지만, 각각의 역할과 목적이 다릅니다. 1. FactoryBean정의: FactoryBean은 Spring에서 사용되는 특수한 빈으로, 특정 객체를 생성하는 데 사용됩니다. 이 객체는 단순한 객체 생성뿐만 아니라, 복잡한 객체 생성 로직이 필요할 때 주로 사용됩니다.목적: FactoryBean은 개발자가 복잡한 초기화나 객체 생성 로직을 캡슐화할 수 있도록 도와줍니다. FactoryBean을 사용하면, 실제 빈 대신에 FactoryBean이 관리하는 객체를 Spring 컨테이너에서 사용할 수 있습니다.작동 방식:FactoryBean 인터페이스를 구현한 클래스는 getObject() 메서드를 통해 Spri.. 2024. 8. 26.
Aspect 와 Aspect J 의 차이 Aspect와 AspectJ는 둘 다 애스펙트 지향 프로그래밍(AOP)과 관련이 있지만, 각각의 개념과 역할은 다릅니다. 다음은 이 두 가지의 차이점과 관련된 설명입니다.1. Aspect개념: Aspect는 애스펙트 지향 프로그래밍(AOP)의 핵심 개념 중 하나로, 횡단 관심사(cross-cutting concern)를 모듈화한 것입니다. 예를 들어, 로깅, 트랜잭션 관리, 보안 검증 같은 기능들은 애플리케이션 전반에 걸쳐 여러 곳에서 필요할 수 있는데, 이러한 공통 기능을 Aspect로 캡슐화하여 관리할 수 있습니다.정의: Aspect는 AOP의 일부로서, Advice(적용할 코드)와 Pointcut(적용할 위치)를 포함합니다. Aspect는 코드베이스의 특정 시점이나 위치에서 자동으로 실행되도록 정의.. 2024. 8. 23.
2024.08.23(금) { AOP Alliance, 외워야할 정보 } Spring AOP에서의 조인포인트: Spring AOP에서는 조인포인트가 오직 메서드 실행 시점에 한정됩니다. 즉, Spring AOP에서는 메서드 호출 시에만 어드바이스가 적용됩니다.조인포인트 = 시점 =  (스프링 aop에선 오직) 메서드포인트컷에 의해 특정 조인포인트가 선택되면, 그 조인포인트에서 어드바이스가 실행인터페이스를 구현한 클래스를 프록시화할 때는 JDK 다이나믹 프록시인터페이스가 없는 구체적인 클래스를 프록시화할 때는 CGLIB AOP Alliance AOP Alliance는 AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)를 위한 표준 API를 정의하기 위해 만들어진 협의체입니다. 이 표준 API는 여러 AOP 프레임워크 간의 상호 운용성을 높이고, 개.. 2024. 8. 23.
2024.08.22(목) { Qualified Name, @DirtiesContext, 체이닝 메서드, MOCK } Qualified Name Qualified Name은 어떤 엔티티(클래스, 메서드, 변수 등)를 정확하게 식별하기 위해 전체 경로를 포함한 이름을 말합니다. 특히 클래스의 패키지 이름까지 포함하여 사용하는 경우가 많습니다. // Fully Qualified Name을 사용한 클래스 선언java.util.List list = new java.util.ArrayList();위 예제에서 java.util.List와 java.util.ArrayList는 Fully Qualified Name입니다. 이들은 각각 List 인터페이스와 ArrayList 클래스가 java.util 패키지에 속해 있음을 나타냅니다. Fully Qualified Class Name (완전히 자격 있는 클래스 이름)클래스를 명확히 식별하.. 2024. 8. 22.
2024.08.21(수) { enum 클래스의 자동생성되는 것, InvocationHandler } enum 클래스의 자동생성되는 것들 1. values() 메서드자동 생성: values() 메서드는 모든 enum 클래스에서 자동으로 생성됩니다. 이 메서드는 enum의 모든 상수를 배열로 반환합니다.사용 예:public enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;}public class Main { public static void main(String[] args) { // values() 메서드를 사용하여 enum의 모든 상수를 가져옵니다. Day[] days = Day.values(); for (Day day : days) { System.o.. 2024. 8. 21.