스프링캠프 2024 [Track 2] 1.동시성의 미래 - 코루틴과 버츄얼 스레드 (이상훈)
SpringCamp 2024 · YouTube
AI 핵심 요약
플랫폼 스레드 기반 서버는 블로킹 I/O 동안 스레드를 점유하고 스레드 풀 크기에 따라 동시 처리량이 제한되며, 리액티브 프로그래밍은 이를 완화하지만 학습과 유지보수 부담이 큽니다. 발표자는 코틀린 코루틴의 `suspend`, 디스패처, 구조적 동시성을 소개하고, JDK 21 버추얼 스레드와 스프링 부트의 적용 방법 및 두 기술의 결합 방안을 설명했습니다. LLM API처럼 응답이 오래 걸리는 블로킹 호출을 비교한 테스트에서는 버추얼 스레드와 논블로킹 웹플럭스·코루틴 조합이 높은 동시 처리에 유리했지만, 블로킹 환경에서 코루틴만 사용하는 것은 충분한 개선을 주지 못했습니다. 기존 코루틴의 `Flow`와 구조적 동시성을 활용하면서 버추얼 스레드로 블로킹 작업을 처리할 수 있지만, `synchronized`로 인한 핀닝 등 실제 스택의 제약을 확인해야 한다는 점이 핵심입니다.
- 코루틴의 `delay`는 실행 중인 스레드를 점유하지 않지만, `Thread.sleep`이나 블로킹 API는 코루틴이 사용하는 스레드를 막을 수 있습니다.
- 코루틴의 구조적 동시성은 자식 작업의 생명주기와 예외 전파를 관리하므로, `CoroutineScope`와 `SupervisorScope`의 차이를 이해해야 합니다.
- 스프링 웹플럭스에서 JPA 같은 블로킹 스택을 사용한다면 별도의 I/O 스레드 풀로 격리해야 합니다.
- 버추얼 스레드도 `synchronized` 등으로 고정되는 핀닝 상황에서는 이점이 줄 수 있으므로, JDBC 드라이버와 프레임워크의 동작을 확인해야 합니다.
소개
[중급] 현대에는 수천, 수만의 동시 요청을 처리하는 서버를 구현하기 위해 멀티 스레드, 논블로킹, 액터 모델, 리액티브 프로그래밍 등 다양한 기술 활용하고 있습니다. 그중에서 코틀린의 코루틴과 JDK 21에서 정식 릴리즈된 버추얼 스레드는 가장 우아하고 현대적인 동시성 기법으로 평가받고 있습니다. 이번 기회를 통해 두 기술의 차이점과 통합하는 방법에 대해 알아보고자 합니다. 🎙️ 이상훈 (엘박스) 🗓️ 스프링캠프 2024 Track 2 - 1 (2024년 05월 25일) 🧭 SETEC 컨벤션센터 📂 발표자료 : http://springcamp.ksug.org/2024/static/docs/T2S1.pdf 📺 스프링캠프 2024 영상 모두 보기 : https://youtube.com/playlist?list=PLdHtZnJh1KdY3gEi7EPa2AuWn5NKRVmDf&si=XE89UrhYKkIb1-oe [🔗 스프링캠프 & KSUG] 스프링캠프 2024 웹 ht...
비슷한 학습 자료
컨퍼런스 SpringCamp 2025
스프링캠프 2025 [Track 2] 4. Virtual Thread 어디까지 보고 오셨어요? (박성훈, 정승주)
컨퍼런스 SpringCamp 2025
🎙️ 박성훈 🎙️ 정승주 🗓️ 스프링캠프 2025 Track 2 - 4 (2025년 06월 28일) 🧭 스페이스쉐어 삼성 📂 발표자료 : https://github.com/springcamp/presentations/tree/main/SpringCamp-2025-Presentations [🔗 스프링캠프 & KSUG] 스프링캠프 2025 웹 https://springcamp.ksug.org/2025/ 스프링캠프 페이스북 https://www.facebook.com/springcampkr/ 스프링캠프 유튜브 https://www.youtube.com/@springcampkr KSUG 웹 https://www.ksug.org/ KSUG 구글 그룹 https://groups.google.com/g/ksug KSUG 페이스북 https://www.facebook.com/groups/springkorea KSUG 유튜브 https://www.youtube.com/@...
백엔드 프로그래밍 언어
컨퍼런스 SpringCamp 2024
스프링캠프 2024 [Track 1] 1.켄트 벡의 Tidy First? (안영회)
컨퍼런스 SpringCamp 2024
[초급] 켄트 벡의 Tidy First? 를 소개합니다. 먼저 안전한(?) 리팩토링 형태를 띄 코드 정리법을 소개한 후에 코드 정리가 갖는 설계 관점의 의미를 설명합니다. 그리고, 개발자 각자가 이를 어떻게 활용할 수 있는지 상상한 내용을 공유합니다. 마지막으로 제가 이 책을 번역하게 된 배경을 다룹니다. 🎙️ 안영회 (베터코드) 🗓️ 스프링캠프 2024 Track 1 - 1 (2024년 05월 25일) 🧭 SETEC 컨벤션센터 📂 발표자료 : http://springcamp.ksug.org/2024/static/docs/T1S1.pdf 📺 스프링캠프 2024 영상 모두 보기 : https://youtube.com/playlist?list=PLdHtZnJh1KdY3gEi7EPa2AuWn5NKRVmDf&si=XE89UrhYKkIb1-oe [🔗 스프링캠프 & KSUG] 스프링캠프 2024 웹 https://springcamp.ksug.org/2024/ 스프링캠프 페...
개발 · 프로그래밍 기타
컨퍼런스 SpringCamp 2024
스프링캠프 2024 [Track 1] 4.실전! MSA 개발 가이드 (김용욱)
컨퍼런스 SpringCamp 2024
[초급] 마이크로서비스를 개발할 때 가장 어려워하는 부분은 서비스 별로 데이터베이스를 분리한다는 점입니다. SQL JOIN을 REST API로 대체하려니 성능이 느릴 것 같고 데이터베이스의 트랜잭션 보장이 없어지니 정합성이 깨지지 않을까 걱정합니다. 마이크로서비스와 함께 API Composition, Event Sourcing, CQRS, SAGA 같은 반짝이는 기술들이 함께 소개되었지만, 실전에선 이보다는 평범한 기술을 사용하는 경우가 많습니다. 관련해서 마이크로서비스를 개발할 때의 구현 이슈를 소개하고, 실전에서는 어떻게 풀어내는지 소개합니다. 🎙️ 김용욱 (삼성 SDS) 🗓️ 스프링캠프 2024 Track 1 - 4 (2024년 05월 25일) 🧭 SETEC 컨벤션센터 📂 발표자료 : http://springcamp.ksug.org/2024/static/docs/T1S4.pdf 📺 스프링캠프 2024 영상 모두 보기 : https://youtube.com/pla...
백엔드
컨퍼런스 SpringCamp 2024
스프링캠프 2024 [Track 1] 5.구해줘 홈즈! (이영규)
컨퍼런스 SpringCamp 2024
[초급] 안정성이 중요한 은행 환경에서 트래픽이 많은 홈 서비스를 새로 개발하며, 동료들과 함께 고민하고 결정했던 경험을 공유해보려 합니다. 과거의 결정들에 대한 회고와 함께 저희 팀의 여정을 돌아보겠습니다. 🎙️ 이영규 (카카오뱅크) 🗓️ 스프링캠프 2024 Track 1 - 5 (2024년 05월 25일) 🧭 SETEC 컨벤션센터 📂 발표자료 : http://springcamp.ksug.org/2024/static/docs/T1S5.pdf 📺 스프링캠프 2024 영상 모두 보기 : https://youtube.com/playlist?list=PLdHtZnJh1KdY3gEi7EPa2AuWn5NKRVmDf&si=XE89UrhYKkIb1-oe [🔗 스프링캠프 & KSUG] 스프링캠프 2024 웹 https://springcamp.ksug.org/2024/ 스프링캠프 페이스북 https://www.facebook.com/springcampkr/ 스프링캠프 유튜브 ...
백엔드
컨퍼런스 SpringCamp 2024
스프링캠프 2024 [Track 2] 2.Spring Coroutine in action (최진영)
컨퍼런스 SpringCamp 2024
[초급] spring에서 kotlin coroutine 활용에 초첨을 맞추어, 비동기 프로그래밍과 coroutine의 동작구조부터 spring 프레임워크에서의 실제 적용까지를 이야기하려고 합니다. spring kotlin을 사용하지만 coroutine을 적용하지 않거나, coroutine이 적용되었지만 잘 사용하고있는지 고민이 되는 분들에게 어떻게 spring에서 coroutine을 in action 할 지 소개하고자 합니다. 🎙️ 최진영 (우아한형제들) 🗓️ 스프링캠프 2024 Track 2 - 2 (2024년 05월 25일) 🧭 SETEC 컨벤션센터 📂 발표자료 : http://springcamp.ksug.org/2024/static/docs/T2S2.pdf 📺 스프링캠프 2024 영상 모두 보기 : https://youtube.com/playlist?list=PLdHtZnJh1KdY3gEi7EPa2AuWn5NKRVmDf&si=XE89UrhYKkIb1-oe [...
백엔드 프로그래밍 언어
컨퍼런스 SpringCamp 2024
스프링캠프 2024 [Track 2] 4.데이터를 스케치 하기 (황영)
컨퍼런스 SpringCamp 2024
[초급] MSA가 대세가 되어진 세상입니다. 하지만 여전히 제한된 리소스에서 데이터를 처리해야하는 경우도 존재합니다. Data Sketch를 통하여 작은 리소스를 이용해서도 높은 성능을 낼수 있습니다. bloom filter, count min sketch, hyperloglog 같은 대표적인 Data Sketch에 대해 알아보고 상황에 따른 활용에 대해 이야기 해보자 합니다. 🎙️ 황영 (IMQA) 🗓️ 스프링캠프 2024 Track 2 - 4 (2024년 05월 25일) 🧭 SETEC 컨벤션센터 📂 발표자료 : http://springcamp.ksug.org/2024/static/docs/T2S4.pdf 📺 스프링캠프 2024 영상 모두 보기 : https://youtube.com/playlist?list=PLdHtZnJh1KdY3gEi7EPa2AuWn5NKRVmDf&si=XE89UrhYKkIb1-oe [🔗 스프링캠프 & KSUG] 스프링캠프 2024 웹 h...
알고리즘 · 자료구조 데이터베이스