inflearn logo
강의

Course

Instructor

Spring Core Principles - Advanced

Field Synchronization - Concurrency Problem

이런 경우에 @RequestScope를 사용하면 어떨까요?

659

minho10301392

8 asked

1

안녕하세요. 초보개발자 명아주입니다!
 
계속 싱글톤을 강조하면서 말씀해주셔서 이런 문제가 예상되었고
저는 해결책으로 @RequestScope를 이용해서 LogTrace Bean 자체를 request 마다 생성하도록 하는 방법을 생각했었습니다.
실제 테스트해본 결과, 의도한 대로 동작하는 것도 확인하긴 했습니다.
 
아직 경험이 부족하여 어떤 장단점이 있을지 모르겠어서 이렇게 질문작성하고 마저 다음 강의를 들으러 가겠습니다!
다음 강의에서 그 답이 나올지도 모르겠다는 생각이 들긴 하네요.
 
감사합니다!
 

동시성 디자인-패턴 spring

Answer 2

4

minho10301392

자문 자답일 수도 있는데 여러가지 검색해본 결과

RequestScope 를 이용해서 Bean 을 생성하는 것은 Reflection 을 활용하는 것이기 때문에, 접근 방식이 더 느리다는 답을 얻었습니다. 그리고 ThreadLocal에서는 캐싱이 포함되어 있어 재사용시 확실히 더 빠르다는 이야기도 있었습니다.다만, 뒤에 말씀해주시는 remove()를 꼭 호출해서 쓰레드로컬 변수를 지워주어야 할 것 같습니다. 이게 매우 번거롭기 때문에 인터셉터의 afterCompletion()을 활용하면 좋다는 의견도 있었습니다. 또는 필터를 쓰는게 좋다는 의견도 있네요.

아직 경험이 부족해서 어떤 방식을 적용해야될지는 모르겠지만 계속해서 강의를 들어보겠습니다!

감사합니다.

3

yh

안녕하세요. 명아주님

다음을 참고해주세요.

https://www.inflearn.com/questions/340172

감사합니다.

0

minho10301392

항상 다른 질문 먼저 확인하고 글 남기는 편인데 이번엔 놓쳤나봅니다. 똑같은 질문이있었네요.. 좋은 답변 감사합니다~

어드바이스 순서 디폴트 기준이 궁금합니다.

0

52

1

AspectV1 예제를 @Configuration 수동 등록으로도 가능한가요?

0

78

2

구체 클래스를 상속받아 확장한 형태도 클래스패턴/데코레이터 패턴이라고 칭하나요?

0

52

1

TraceTemplate 을 미리 빈으로 등록해서 사용할때 이렇게 설정하는게 맞는건가요?

0

53

1

Decorator 에서 추상메서드로 뺄때 질문 있습니다.

0

56

1

대상 클래스에 기본 생성자가 없을 때

0

74

1

스프링 부트 버전 4.0 aop 의존성 명칭 변경

1

350

2

final 키워드 사용 관련 질문

0

77

1

안녕하세요

0

64

1

ThradLocal 실무 사례

0

97

2

실무에서의 동시성 문제

0

62

1

로그 등 부가 기능에 대한 테스트코드

0

50

1

ProceedingJoinPoint와 MethodInvocation에 대하여

0

67

1

실무 멀티스레딩에 대한 궁금증

0

69

1

안녕하세요 질문있습니다

0

44

1

AspectV3 aop 실행 순서 문의 드립니다

0

38

1

MDC vs AOP 중에 고민중입니다.

0

74

1

순환참조

0

158

2

this를 단독으로 사용할때랑 파라미터 바인딩 할때 차이

0

77

1

빈 후처리에 등록 질문 있습니다.

0

75

1

AppConfig 설정하는 설명중에 이해가 안되는게 있습니다.

0

88

1

ThreadLocal을 지역변수로 선언하면 remove가 필요할까요?

0

117

2

@Aspect 어노테이션으로 생성된 Advisor의 Bean 저장 여부

0

67

1

ThreadLocal 사용시 부작용이 있을수 있을까요? (ThreadLocal.remove()를 잘한다고 해도..)

0

73

2