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
- 외부 서비스 장애
- 알고리즘
- 벌크헤드패턴
- queue
- 자바
- BFS
- 낙관적 락
- thundering herd
- JPA
- 다중 서버
- 이분탐색
- session인증
- java
- 슬라이스 테스트
- prg패턴
- 스택
- 비관적 락
- 캐시 스탬피드
- Entity Manager
- id생성
- 백준
- expired key
- 베타락
- 트라이 자료구조
- 예외처리
- 이진탐색
- ddl-auto
- DP
- Stack
- 타임아웃
Archives
- Today
- Total
Coding 01
private 메서드와 @Transactional 본문
private 메서드에 @Transactional을 선언하면 트랜잭션이 동작을 하는가?
결론은 동작하지 않는다.
트랜잭션은 spring에서 프록시로 동작한다. 실제 객체를 감사는 프록시 객체가 생성되어 트랜잭션을 처리하는데, 프록시는 public 메서드 호출을 인터셉트하여 트랜잭션 처리 로직을 수행한다.
그래서 외부에서 접근할 수 없는 private메서드를 가로챌 수가 없다.
해결 방법으로는 public메서드에 @Transactional을 선언하고 private메서드를 호출하는 방법으로 구현할 수 있다.
위의 이유와 마찬가지로 private가 아니더라도 protected에서도 동작하지 않는다.
'기술면접' 카테고리의 다른 글
SSR과 CSR (0) | 2025.01.07 |
---|---|
TimeOut (0) | 2025.01.07 |
CORS (1) | 2025.01.02 |
HTTP 메서드에서 멱등성이란? (0) | 2024.12.27 |
단위 테스트와 통합 테스트의 차이 (0) | 2024.12.23 |