일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 이클립스
- JVM
- list
- 의존성주입
- @transactional
- 인터페이스
- @Bean
- 어노테이션
- spring
- 스프링 컨테이너
- mysql
- pom.xml
- DI
- 영속성 컨텍스트
- 자동주입
- 깃허브
- 스프링
- java
- Spring 개발환경 설정
- 빈
- github
- react
- merge
- 트랜잭션
- 리액트
- springboot
- 상속
- 객체
- 자바
- Spring legacy Project
- Today
- Total
목록트랜잭션 (3)
DEVLOG
트랜잭션이란? 데이터베이스의 상태를 변경하는 작업 또는 한 번에 수행되어야 하는 연산들을 의미한다. begin, commit 을 자동으로 수행해준다. 예외 발생 시 rollback 처리를 자동으로 수행해준다. 트랜잭션의 4가지 성질 - 원자성 : 한 트랜잭션 내에서 실행한 작업들은 하나의 단위로 처리한다. 즉, 모두 성공 또는 모두 실패 - 일관성 : 트랜잭션은 일관성 있는 데이터베이스 상태를 유지한다. - 격리성 : 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않도록 격리해야 한다. - 영속성 : 트랜잭션을 성공적으로 마치면 결과가 항상 저장되어야 한다. 트랜잭션 처리 방법 프로그래밍 방식의 트랜잭션과 선언적 방식의 트랜잭션이 있다. 스프링은 메소드, 클래스, 인터페이스 위에 @Transaction..
open-in-view(OSIV, Open-Session-In-view) = true 로 설정해야 하는 이유는 Service 에서 트랜잭션이 종료된 이후에도 영속성 컨텍스트가 종료되지 않아 Controller에서 view에게 반환할 때 영속성 컨텍스트가 관리하는 객체에 접근할 수 있기 때문이다. https://velog.io/@dnwlsrla40/JPA-Open-In-View [JPA] Open In View Open-In-View는 관례상 OSIV(Open-Session-In-View)라고 하고, 경우에 따라 Open-EntityManager-In-View 라고도 한다. JPA에서 제공하는 기능 중 하나로 application.yml 설정 파일에서 Open-In-View velog.io
트랜잭션의 격리 수준(isolation) 이란? 동시에 여러 트랜잭션이 처리될 때, 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있도록 허용할지 말지를 결정하는 것 READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE MySQL InnoDB 스토리지 엔진 => REPEATABLE READ 이상 사용 => 부정합 발생X READ UNCOMMITTED (레벨 0) SELECT 문장이 수행되는 동안 해당 데이터에 Shared Lock이 걸리지 않는 Level 트랜잭션에 처리중인 혹은 아직 커밋되지 않은 데이터를 다른 트랜잭션이 읽는 것을 허용한다. 데이터베이스의 일관성을 유지할 수 없다. 정합성에 문제가 많은 격리 수준이기 때문에..