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 |
Tags
- 열 속성
- SQL
- 필드 주입
- KEVISS
- docker
- 인덱스
- StringBuilder
- DDL
- stream
- cache
- 테스트 코드
- jwt
- 생성자 주입
- Spring
- static
- hashcode
- select_type
- equals
- jpa
- MSA
- Test
- AOP
- redis
- 조합
- 재정의
- VUE
- DI
- lambda
- 바이너리 카운팅
- java
Archives
- Today
- Total
백엔드 개발자 블로그
@Transaction 본문
해당글은 우테코 테크톡을 보고 정리한 글입니다.
https://www.youtube.com/watch?v=taAp_u83MwA
@Transaction 역할
A,B 작업이 하나의 세션으로 할당돼서 하나의 작업으로 처리가 가능해짐
= 바로 반영하지 말고, A,B 모두 정상 처리됐다면 한번에 반영해주세요.
문제 상황 : 코드를 통한 트랜잭션 처리
- 중복 코드가 많아짐 (트랜잭션 관련 코드)
- 주된 관심사가 아닌 코드가 서비스 레이어에 담김 (트랜잭션 관련 코드)
- 특정 기술에 종속적인 코드가 되어버린다. (throws SQLException - JDBC > JPA는 이거 안씀)
문제 해결 방법
Spring AOP = @Transaction
- 서비스 객체를 상속한 proxy 객체 생성
- 매서드 재정의 (트랜잭션 open > 타겟객체를 호출해서 메서드 실행 > 트랜잭션 종료)
- Spring bean에 proxy 객체 등록
결과
- 서비스 객체를 상속받는 프록시 객체가 빈으로 등록했기에 서비스 객체에 DI가 가능
- 서비스 레이어에 트랜잭션 관련된 코드 분리
- 특정 기술에 종속된 코드 분리
같이 알아두면 좋은 내용
- 트랜잭션 매니저
- 트랜잭션 동기화 매니저
- AOP
- JDK Dynamic Proxy
- CGLIB
'테크 블로그 리뷰' 카테고리의 다른 글
멀티쓰레드와 동기화 (0) | 2024.10.24 |
---|---|
DI (0) | 2024.10.24 |
프로파일러로 성능 개선시키기 (1) | 2024.09.27 |
서버 증설 없이 대규모 트래픽 처리하기 (0) | 2024.07.09 |
null 리턴은 왜 나쁠까? (0) | 2024.03.13 |