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 |
Tags
- redis
- Thread
- AOP
- Transactio
- oauth
- Elk
- spirng
- Kotlin
- 우아한 테크 코스
- 동시성문제
- 우테코 5기
- 오어스
- circuitbreaker
- 톰캣
- resilience4j
- JWT
- 살아남았다.
- 우테코
- Gateway
- 최종 합격
- MDC
- DispatcherServlet
- Spring Batch
- tomcat
- 우아한테크코스
- HikariCP
- Spring cloud gateway
- 트랜잭션
- 커넥션 풀
- 테스트코드
Archives
- Today
- Total
코딩은 내일부터
[우테코] 우아한테크코스 생존기 (9)(@Transactional) 본문
728x90
@Transactional
Transaction이란?
하나의 작업 묶음을 의미하고, 이 작업 묶음에 대해 ACID를 보장하도록 한다.
ACID
- 원자성 : 이 작업 묶음이 실패하면 모두 실패하거나, 성공하면 모두 성공해야 한다.
- 일관성 : 트랜잭션의 이전, 이후 데이터베이스의 상태는 이전과 같이 유효해야 한다.
- 고립성 : 모든 트랜잭션은 다른 트랜잭션으로부터 고립되어야 한다.
- 영속성 : 하나의 트랜잭션이 성공했다면 이후에 어떤 오류가 발생해도 해당 기록은 영구적이어야 한다.
@Transactional
을 메서드에 붙이면 메서드를 Transaction으로 만들어주고, 클래스에 붙이면 모든 메서드를 Transaction으로 만들어준다.
왜 서비스의 메서드를 Transaction으로 관리할까? 서비스의 메서드도 하나의 작업 묶음이기 때문이다. 서비스의 메서드에서 일어나는 모든 영속적인 작업을 Transaction으로 만들어 ACID를 보장하도록 하는 것이다.
Transactional (read=only) 를 붙히는이유
transactional (read=only)가 붙은 메소드는 수정,삭제,생성을 할 수 없고 명시적인 이유로는 이 메소드가 읽기작업만을 수행한다고 볼 수 있어서 가독성을 높일수있습니다.
- 트랜잭션 관리 단순화:
readOnly = true
로 설정한 트랜잭션은 읽기 작업에만 사용됩니다. 따라서 해당 트랜잭션에서는 롤백 및 로그 기록과 같은 추가적인 관리 작업을 수행할 필요가 없습니다. 이로 인해 트랜잭션 관리가 단순화되고 성능이 향상될 수 있습니다.
- 주의: h2는 read=only을 정의해도 수정,삭제,생성가 가능하다,,,
'우아한 테크 코스(우테코) > 우테코 공부' 카테고리의 다른 글
JWT 그게 뭔데. (3) | 2023.08.11 |
---|---|
자바 버전 어떤거 사용해야할까?(jdk11 VS jdk17) (0) | 2023.08.05 |
우아한테크코스 생존기 (8)(Swagger를 이용한 API명세서 관리하기) (0) | 2023.06.05 |
우아한테크코스 생존기 (7)(CI/CD) (3) | 2023.06.05 |
[우테코] 우아한테크코스 생존기 (6)(@Repository의 예외처리) (6) | 2023.04.22 |