어드바이스에 변수
293
작성한 질문수 16
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
안녕하세요, 궁금한 점이 있어 문의 드립니다.
AOP를 적용하여, joinPoint.proceed(); 수행 시간을 재려고 하는데요,
어드바이스 Method안에서, 시작 시간과, 종료시간을 모두 측정하거든요, 그럼 ThreadLocal을 사용하지 않아도 된다고 생각했습니다.(인스턴스 변수가 아니기 때문에) 제 판단이 맞을까요?
- 클래스의 인스턴스 변수 만이 동시성 문제가 있는걸까요?
답변 2
0
안녕하세요, hi_man159 님! 공식 서포터즈 codesweaver 입니다.
AI 답변에 더하여 답변 드립니다 :)
질문하신 내용이 맞습니다. AOP를 적용할 떄 메소드 안에서 선언한 변수는 자원경쟁 이슈가 발생하지 않습니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴이에요.
1. 질문 내용과 관련하여 답변드리겠습니다. AOP를 적용하여 joinPoint.proceed(); 수행 시간을 재려고 할 때, 시작 시간과 종료 시간을 어드바이스 메소드 안에서 모두 측정하고자 한다면 ThreadLocal을 사용하지 않아도 되는지 여부에 대해서 물어보셨는데요,
2. ThreadLocal은 변수의 값이 스레드에 안전하게 유지되도록 하는 방법 중 하나입니다. ThreadLocal은 인스턴스 변수가 아니더라도, 해당 스레드 안에서만 유효한 값이기 때문에 굳이 사용하지 않아도 된다고 생각합니다.
3. 클래스의 인스턴스 변수가 아니더라도, 여러 스레드가 접근할 수 있는 공유 변수가 있을 수 있으며, 동시성 문제가 발생할 수 있습니다. 따라서 스레드 안전성을 고려하여 코드를 작성해주시는 것이 좋습니다.
4. 다시 말씀드리지만, ThreadLocal은 변수의 값이 스레드에 안전하게 유지되도록 하는 방법 중 하나일 뿐이며 자신이 작성하는 코드에 따라서 적용 여부가 결정되어야 합니다.
5. 참고로 인프런 홈페이지에 스레드 관련된 컨텐츠들이 많이 있으니 참고해주세요.
6. 이상입니다. 더 궁금하신 내용이 있으시다면 언제든지 물어보세요. 감사합니다.
어드바이스 순서 디폴트 기준이 궁금합니다.
0
55
1
AspectV1 예제를 @Configuration 수동 등록으로도 가능한가요?
0
81
2
구체 클래스를 상속받아 확장한 형태도 클래스패턴/데코레이터 패턴이라고 칭하나요?
0
57
1
TraceTemplate 을 미리 빈으로 등록해서 사용할때 이렇게 설정하는게 맞는건가요?
0
54
1
Decorator 에서 추상메서드로 뺄때 질문 있습니다.
0
56
1
대상 클래스에 기본 생성자가 없을 때
0
76
1
스프링 부트 버전 4.0 aop 의존성 명칭 변경
1
362
2
final 키워드 사용 관련 질문
0
78
1
안녕하세요
0
65
1
ThradLocal 실무 사례
0
98
2
실무에서의 동시성 문제
0
64
1
로그 등 부가 기능에 대한 테스트코드
0
50
1
ProceedingJoinPoint와 MethodInvocation에 대하여
0
67
1
실무 멀티스레딩에 대한 궁금증
0
70
1
안녕하세요 질문있습니다
0
45
1
AspectV3 aop 실행 순서 문의 드립니다
0
38
1
MDC vs AOP 중에 고민중입니다.
0
76
1
순환참조
0
161
2
this를 단독으로 사용할때랑 파라미터 바인딩 할때 차이
0
78
1
빈 후처리에 등록 질문 있습니다.
0
77
1
AppConfig 설정하는 설명중에 이해가 안되는게 있습니다.
0
90
1
ThreadLocal을 지역변수로 선언하면 remove가 필요할까요?
0
118
2
@Aspect 어노테이션으로 생성된 Advisor의 Bean 저장 여부
0
69
1
ThreadLocal 사용시 부작용이 있을수 있을까요? (ThreadLocal.remove()를 잘한다고 해도..)
0
73
2





