Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 20055 컨베이어 벨트 위의 로봇
- 스프링 컨테이너와 스프링 빈
- 코틸린인액션
- 13460 구슬탈출 2
- 7장 고급매핑
- 백준 13460 Python
- 기능개발 python
- 20055
- Kotlin in action 5장
- spring
- Kotlin in action 3장
- 고급매핑
- 스프링 핵심 원리
- 자바 ORM 표준 JPA 프로그래밍 7장
- 싱글톤 컨테이너
- 스프링 핵심 원리 이해
- 백준 20055 컨베이어 벨트 위의 로봇
- 스프링 핵심 원리 - 기본편
- Kotlin
- 객체 지향 설계와 스프링
- 코틀린
- kotlin in action 정리
- 백준
- Kotlin in action 10장
- Kotlin In Action
- 컨베이어 벨트 위의 로봇 Python
- Python
- KotlinInAction
- Kotlin in action 6장
- 코틀린인액션
Archives
- Today
- Total
기록하는 습관
스프링 핵심 원리 - 고급편 (1) ThreadLocal 본문
스프링 핵심 디자인 패턴
- 템플릿 메서드 패턴
- 전략 패턴
- 템플릿 콜백 패턴
- 프록시 패턴
- 데코레이터 패턴
데이터 동기화 방법
- Parameter 동기화
- 개념: 데이터를 함수 파라미터로 넘겨주어 동기화 시킴.
- 문제점: 동기화를 위해 관련 method의 모든 parameter를 수정해야 한다. (만약, 인터페이스가 있다면 인터페이스까지 모두 고쳐야 함)
- Field 동기화
- 개념: 객체 내의 필드로 초기화 시키고 값을 변경하면서 동기화 시킴.
- 문제점: 동시성 문제가 발생.
- 필드 객체가 singleton으로 등록된 spring bean이기 때문이다. 이 인스턴스의 필드를 여러 thread가 동시에 접근하게 되기 때문에 문제가 발생한다.
- 싱글톤 객체의 필드를 사용하면서 동시성 문제를 해결하려면? -> ThreadLocal 사용!
- ThreadLocal 동기화
- 개념
- ThreadLocal은 해당 쓰레드만 접근할 수 있는 별도의 내부 저장소.
- 주의사항
- ThreadLocal.remove()를 통해 반드시 쓰레드 로컬 값을 제거해야 한다. ThreadPool에서 Thread가 재사용 되면서 데이터가 남아있을 경우, 원치 않는 데이터 노출이 될 수 있기 때문이다.
- 개념
동시성 문제
TIP
1. Intellij에서 F2 누르면 에러로 이동
'개발 > Spring' 카테고리의 다른 글
스프링 핵심 원리 - 고급편 (2) 디자인 패턴 (0) | 2022.10.13 |
---|---|
[Spring] Migration (4) Java 1.8 -> 11 (0) | 2022.07.12 |
[Spring] Migration (3) 2.1.6.RELEASE -> 2.6.4 (0) | 2022.07.12 |
[Spring] Migration (2) 1.5.4.RELEASE -> 2.1.6.RELEASE (0) | 2022.07.12 |
[Spring] Migration (1) - java, springboot 버전 업그레이드 (0) | 2022.07.12 |
Comments