| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- IntelliJ
- 배열
- 자바스크립트
- HashMap
- string
- 인텔리제이
- Visual Studio Code
- 자바문법
- js
- SpringBoot
- java테스트
- javascript
- Eclipse
- ArrayList
- list
- input
- math
- junit
- Array
- 자바
- 문자열
- html
- vscode
- 단위테스트
- 테스트자동화
- 정규식
- CSS
- 스프링부트
- junit5
- Java
- Today
- Total
목록2026/04/04 (2)
어제 오늘 내일
MVC에서는 쓰레드 하나가 막혀도(Blocking) 다른 쓰레드 199개는 잘 돌아갑니다.하지만 WebFlux는 쓰레드가 고작 CPU 코어 수(예: 4개)만큼밖에 없습니다. 하나가 막히면 서버 성능의 25%가 날아가는 셈이죠.문제는 실수로 JDBC를 쓰거나, Thread.sleep을 써도 컴파일 에러가 안 난다는 것입니다. 배포하고 나서야 서버가 죽는 걸 보게 되죠.이걸 막아주는 수호신, BlockHound를 소개합니다.1. BlockHound: "블로킹 코드가 보이면 에러를 뱉어라!"Reactor 팀이 만든 도구로, 논블로킹 쓰레드(Reactor Thread)에서 블로킹 작업이 감지되면 즉시 예외(BlockingOperationError)를 던져서 테스트를 실패하게 만듭니다.① 의존성 추가depende..
JUnit으로 동기 코드를 테스트할 때는 결과가 바로 나옵니다.하지만 Flux.interval(Duration.ofSeconds(1)) 같은 코드는 1초 뒤에 데이터가 나옵니다.이걸 테스트하려고 Thread.sleep(1000)을 쓰는 순간, 테스트 시간은 늘어지고 코드는 지저분해집니다.Project Reactor는 이런 문제를 해결하기 위해 StepVerifier라는 강력한 테스트 도구를 제공합니다.1. StepVerifier가 뭔가요?리액티브 스트림의 구독자(Subscriber) 역할을 하는 테스트용 객체입니다."첫 번째 데이터는 'A'여야 하고, 두 번째는 'B'여야 하고, 마지막엔 성공적으로 끝나야 해"라는 시나리오를 짜고, 실제로 그렇게 흘러가는지 검증합니다.2. 기본 사용법: 데이터 검증 ()..
