| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- HashMap
- SpringBoot
- 인텔리제이
- js
- Visual Studio Code
- 자바
- junit
- Eclipse
- Array
- junit5
- IntelliJ
- ArrayList
- 테스트자동화
- html
- 문자열
- 단위테스트
- input
- 정규식
- 스프링부트
- string
- 자바스크립트
- java테스트
- vscode
- javascript
- math
- 배열
- CSS
- Java
- 자바문법
- list
- Today
- Total
목록2026/04/03 (2)
어제 오늘 내일
WebFlux에서 R2DBC를 쓸 때 가장 불안한 점은 트랜잭션입니다."A 계좌에서 돈을 빼고(update), B 계좌에 돈을 넣어야(update) 하는데, 중간에 에러 나면 롤백이 될까?"결론부터 말씀드리면, @Transactional 어노테이션 하나면 완벽하게 동작합니다.하지만 그 원리는 MVC와 완전히 다릅니다.1. 트랜잭션 매니저 설정 ()스프링 부트가 ConnectionFactory를 보고 알아서 빈을 등록해 주지만, 명시적으로 알고 있어야 합니다.JDBC의 PlatformTransactionManager가 아니라, R2dbcTransactionManager가 필요합니다.@Configuration@EnableTransactionManagement // 트랜잭션 관리 활성화public class ..
WebFlux 서버를 잘 만들어놓고 spring-boot-starter-data-jpa 의존성을 추가하는 순간, 그 서버의 성능은 나락으로 떨어집니다.왜냐고요? WebFlux는 적은 수의 쓰레드(이벤트 루프)로 돌아가는데, JPA가 쿼리를 날리는 동안 그 소중한 쓰레드를 붙잡고 놔주지 않기(Blocking) 때문입니다.이벤트 루프가 멈추면 서버 전체가 멈춥니다.그래서 우리는 R2DBC라는 새로운 친구를 사귀어야 합니다.1. R2DBC가 뭔가요?Reactive Relational Database Connectivity의 약자입니다.MySQL, PostgreSQL, H2 같은 관계형 DB를 논블로킹(Non-Blocking) 방식으로 사용할 수 있게 해주는 표준 API입니다. JDBC: 결과가 나올 때까지 ..
