[DB락] MYSQL INNODB 락 관련 게시물 참고
https://mangkyu.tistory.com/298
- 자바/리팩토링
- · 2023. 10. 24.
개요하나의 팀은 여러 회원을 참조할 수 있음팀이 회원들을 참조회원 팀 참조 X → 단뱡향@Entity
public class Team {
	@Id 
	@GeneratedValue
	@Column(name = "TEAM_ID")
	private Long id;
	private String name;
	
	@OneToMany
	@JoinColumn(name = "TEAM_ID") //MEMBER 테이블의 TEAM_ID (FK)
	private List members = new ArrayList();&Ne..
@WebMvcTest 어노테이션스프링 부트에서 제공하는 어노테이션컨트롤러 테스트에 필요한 구성만 로드하여 빠른 테스트가 가능하도록 한다.테스트 대상 컨트롤러 클래스를 지정가능@WebMvcTest(YourController.class) public class YourControllerTest { // ... }MockMvc 스프링 MVC 테스트 지원 핵심 클래스컨트롤러 메서드 호출하고 HTTP 요청/ 응답을 검증가능@Autowired 를 통해 MockMvc 인스턴스 주입@Autowired private MockMvc mockMvc;예시// when + then mockMvc .perform(MockMvcRequestBuilders .get(BASE_URL + "/{userId}/carts", anyStri..
더티 리드 (Dirty Read)트랙잭션 A 가 아직 커밋되지 않은 변경을 만든 경우,트랜잭션 B 가 해당 변경을 읽는 현상@Transactional(isolation = Isolation.READ_UNCOMMITTED) public void dirtyReadSimulation() { User user = userRepository.findById(1L).orElseThrow(); user.setBalance(user.getBalance() - 100); // 이 지점에서 다른 트랜잭션에서 사용자의 잔액을 읽을 수 있으며 더티 리드가 발생할 수 있습니다. }반복 불가능 리드 (Non-repeatable Read)트랜잭션 A가 같은 레코드를 두 번 읽고그 사이에 트랜잭션 B 가 해당 레코드를 변경하고 커밋..
트랜잭션의 격리 Transaction Isolation ACID 속성 (원자성, 일관성, 격리, 지속성) 중 하나입니다. 동시에 실행되는 트랜잭션 사이에서 변경사항이 어떻게 서로에게 보여지는지를 설명함 격리 수준에 따른 특징 DEFAULT 데이터베이스의 기본 격리 수준을 준수합니다. 기본값으로 설정되어있습니다. READ_UNCOMMITTED (읽기 미수정) 가장 낮은 수준의 격리 다른 트랜잭션의 수정이 끝나지 않았어도, 그 변경 내용을 읽을 수 있음. 장점 높은 동시성 제공가능 단점 모든 3가지의 동시성 부작용에 대해 경험가능 ㅇ.ㅇ 더티 리드, 비 반복 리드, 팬텀 리드 더티 리드, 비 반복 리드, 팬텀리드란? 링크 READ_COMMITTED (읽기 수정) 커밋된 데이터만 읽을 수 있음 대부분의 RDB..
https://mangkyu.tistory.com/298