# joinpoint

7개의 포스트
post-thumbnail

Spring AOP (23.09.01)

🌷 Spring AOP > 관점 지향 프로그래밍(Aspect Oriented Programming)의 약자 일반적으로 사용하는 클래스(Service, Dao 등) 에서 중복되는 공통 코드 부분(commit, rollback, log 처리)을 별도의 영역으로 분리해 내고, 코드가 실행 되기 전이나 이후의 시점에 해당 코드를 붙여 넣음으로써 소스 코드의 중복을 줄이고, 필요할 때마다 가져다 쓸 수 있게 객체화하는 기술 위 사진과 같이 공통되는 부분을 따로 빼내어 필요한 시점에 해당 코드르 추가해 주는 기술을 의미한다. 🌼 구조 ![](https://velog.velcdn.com/images/suhyun_zip/post/809aa798-ec89-4724-ae

2023년 9월 1일
·
0개의 댓글
·
post-thumbnail

[Spring] AOP와 AOP 용어

AOP AOP (Aspect Oriented Programming; 관점 지향) 애플리케이션 전체에서 공통으로 사용되는 기능(advice)을 별도로 생성해놓고 proxy서버가 공통의 기능을 적절하게 삽입하면서 중복 제거하고 일관성을 유지하는 것 프로그램의 모듈성과 유지보수성을 높이기 위해 핵심 로직과 부가적인 기능을 분리하여 개발 * 개발 코드 관점 분리 - 핵심 기능, 공통 기능* 관점분리란? 어플리케이션 전체에 걸쳐 적용되는 관심사를 코드에서 분리하여 모듈화하는 것 핵심 비즈니스 로직과 다른 관심사 분리 AOP 용어 Aspect(관점) : 애플리케이션 전반에서 적용되는 공통 관점 사항 : 로깅, 보안, 트랜잭션 등 Joinpoint : 핵심기능(메소드), 애플리케이션 실행시 시작되는 지점, Advice를 적용할 지점 : 메서드 호출, 객체 생성, 필드 접근 등 **poi

2023년 4월 25일
·
0개의 댓글
·

AOP(Aspect Oriented Programming) 심화

애플리케이션 로직은 크게 핵심기능과 부가기능으로 나뉜다. AOP는 그 중 부가기능으로 핵심기능을 보조하기위해 사용된다. AOP가 필요한 이유 소프트웨어 개발에서 변경 지점은 하나가 될 수 있도록 잘 모듈화 되야 함. 일반적인 OOP 방식으로는 해결이 어렵기 때문에 핵심 기능과 부가 기능을 분리하는 AOP 방식이 필요함. 애스펙트 = 포인트 컷 + 어드바이스 조인포인트 애플리케이션의 실행흐름에서의 특정 포인트 새로운 동작의 추가를위해 조인포인트에 관심코드 추가 가능. 스프링 AOP는 프록시 방식을 사용하므로 조인포인트는 항상 메소드 실행시점으로 제한 어드바이스 적용이 필요한 곳은 애플리케이션 내에 메서드를 갖는다. 적용 가능 지점 : 생성자, 필드 값 접근, static 메서드 접근, 메서드 실행 생성자, 필드값 접근, static 메서드 접근에는 프록시 개념이 적용될 수 없다. joinpoint 인터페이스의 주요 기능 JoinPoint

2023년 2월 12일
·
0개의 댓글
·
post-thumbnail

JoinPoint

AOP 적용 위치 AOP는 메서드 실행 위치 뿐만 아니라 다음과 같은 다양한 위치에 적용할 수 있다. 적용 가능 지점(조인 포인트): 생성자, 필드 값 접근, static 메서드 접근, 메서드 실행 AOP 를 수행하는 메서드는 이 JoinPoint 인스턴스를 인자로 받게 된다. JoinPoint 인스턴스에서 조인 포인트 지점의 정보를 얻어내야 한다. Join Point 조인 포인트는 추상적인 개념이고, AOP를 적용할 수 있는 지점을 의미한다. 어드바이스가 적용될 수 있는 위치, 메서드 실행, 생성자 호출, 필드 값 접근, static 메서드 접근 같은 프로그램 실행 중 지점을 나타낸다. AspectJ를 사용해서 컴파일 시점과 클래스 로딩 시점에 적용하는 AOP는 바이트코드를 실제 조작하기 때문에 해당 기능을 모든 지점에 다 적용할 수 있다. 프록시 방식을 사용하는 스프링 AOP는 메서드 실행 지점에만 AOP를 적용할 수 있다. 프록시는

2022년 10월 18일
·
0개의 댓글
·

AOP

AOP 지난 포스팅에서 언급한 Spring Framework의 핵심 프로그래밍 모델 중 하나인 관점 지향 프로그래밍(Aspect-Oriented Programming, AOP)에 대해서 좀 더 자세히 살펴본다. 정의 먼저 Aspect라는 단어에 대해서 알아봐야 한다. Aspect는 측면, 관점이라는 뜻으로 AOP는 애플리케이션을 바라보는 관점을 하나 하나의 기능들을 횡단 관심사의 관점으로 보는 것이다. 기본 개념 >+ 핵심 기능 : 업무 로직을 포함하는 기능 부가 기능 : 핵심 기능을 도와주는 부가 기능, 횡단 관심 (ex. 로깅, 보안, 트랜잭션 등) Aspect : 부가 기능을 정의한 코드인 어드바이스(Advice)와 어드

2022년 6월 21일
·
0개의 댓글
·
post-thumbnail

AOP

AOP (관점 지향 프로그래밍) 📌 1. AOP란? 문제를 바라보는 관점을 기준으로 프로그래밍을 하는 기법 AOP 구현 방법으로는, 여러 가지가 존재하는데, 일반적으로 공통 관심 사항을 구현한 코드를 핵심 로직을 구현한 코드에 삽입하는 것이다. 비슷한 동작을 하는 인터페이스와 필터가 있는데 이들은 웹에서 사용한다. AOP는 프로그래밍 기법 중 하나이며, 특정 패키지의 특정 클래스 전체, 특정 클래스의 특정 메서드 전체등 적용 범위를 다양하게 설정하여 공통 기능으로 사용할 수 있다. > 공통 기능 == 공통 관심 사항 핵심 로

2021년 9월 16일
·
0개의 댓글
·

Spring - 37.1 AOP

언어의 변천사 POP: 절차지향 어떤 순서에 의해 개발을 할 것인지 전체 모든 언어중 가장 나온 방법론 규모가 작으면 POP도 상관없으나 일정 규모 이상으로 올라가면 코드의 중복이 심각해짐 OOP, FOP OOP, FOP에서도 중복코드가 있기는 있음 AOP (Aspect: 관점지향) 사용이유 1. 관심사 분리 비즈니스 로직을 건들이지 않기 위해서 사용함 비즈니스 로직 구현 개발자는 부가적인 기능을 생각하지 않고 개발할 수 있음 비즈니스 로직외에 인증이나 트랜잭션에 대해 고민할 필요가 없음 비즈니스 로직을 가독성과 유지보수성을 높인채로 둘 수 있음 2. 중복 발생 방지 AOP 구현 핵심 기술은? Proxy 생성 기술입니다... Proxy: Target객체에 Advice가 적용된 후 생성되는 객체 스프링은 대상(target)이 되는 객체에 프록시를 만들어 제공한다. 대상객체에 직접 접근하기보

2021년 1월 11일
·
0개의 댓글
·