Spring Boot 2์์ 3์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ๋ ๊ผญ ํ์ธํ ๋ณ๊ฒฝ์
Spring Boot 3์ผ๋ก ์ฌ๋ฆฌ๋ฉด ๋น๋๋ถํฐ ๊นจ์ง๋ค. ์ปดํ์ผ ์๋ฌ๋ฅผ ์ผ์ผํค๋ ๋ณ๊ฒฝ์ ๊ณผ ์์ ๋ฐฉ๋ฒ์ ํ์ธํด ๋ณด์.
Spring Boot 3์ผ๋ก ์ฌ๋ฆฌ๋ฉด ๋น๋๋ถํฐ ๊นจ์ง๋ค. ์ปดํ์ผ ์๋ฌ๋ฅผ ์ผ์ผํค๋ ๋ณ๊ฒฝ์ ๊ณผ ์์ ๋ฐฉ๋ฒ์ ํ์ธํด ๋ณด์.
๋ค๋ฆฌ์ค ์๋ชจ๋ฐ์ด(Dario Amodei)์ ใ์ฌ๋์ค๋ฌ์ด ์์ด์ ๊ธฐ๊ณ(Machines of Loving Grace)ใ ์ฃผ์ ๋ด์ฉ์ ๋ฌด์์ผ๊น? ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฐ ๋งํ ๋๊ด์ ๋ฏธ๋๋ ์ด๋ค ๋ชจ์ต์ผ๊น?
spring.threads.virtual.enabled=true ํ ์ค๋ก Spring Boot์์ Virtual Thread๋ฅผ ํ์ฑํํ ์ ์๋ค. Tomcat, @Async ๋์ ๋ฐฉ์๊ณผ MDC, ์ปค๋ฅ์ ํ ์ฃผ์์ฌํญ์ ์ ๋ฆฌํ๋ค.
Spring @Transactional์ ํ๋ก์ ๊ธฐ๋ฐ ๋์ ์๋ฆฌ๋ถํฐ self-invocation ํจ์ , ์ ํ ์์ฑ, ๋กค๋ฐฑ ๊ท์น๊น์ง ๋ด๋ถ ๋ฉ์ปค๋์ฆ์ ๋ฏ์ด๋ณธ๋ค.
JMH๋ก Virtual Thread์ I/O์ CPU ์์ ์ฑ๋ฅ์ ์ง์ ์ธก์ ํ๋ค. ํ๋ซํผ ์ค๋ ๋์์ ์์น ๋น๊ต, CPU ์์ ์์์ ํ๊ณ, ์ํฌ๋ก๋๋ณ ์ ์ฉ ๊ธฐ์ค์ ์ ๋ฆฌํ๋ค.