게시글
질문&답변
2024.10.09
강의와 책을 통해 학습한 내용을 출처를 남기고 기술 블로그 등에 공개해도 될까요?
pearl님 안녕하세요. 지식 공유자 조세영입니다. 먼저 제 강의를 들어주셔서 감사하다는 말씀 드립니다ㅎㅎ 저도 기술 블로그를 운영하고 있어서 pearl님이 궁금하신 부분이 어떤 부분인지 어떤 목적으로 사용하고 싶으신지 답변 드릴 수 있을 것 같습니다. 학습하신 내용을 바탕으로 이해하신 내용을 블로그에 출처와 함께 남겨주시는 것은 괜찮습니다. 시각 자료들도 출처만 남겨 주신다면 모두 활용 가능 하십니다. 다만 학습자료를 모두 그대로 복사 붙여넣기 하시는 것은 허용되지 않습니다. 개인적으로는 기술 블로그에 자신이 이해한 내용을 바탕으로 글을 작성하고 공유하는 것이 공부한 내용에 대한 이해도를 높이는데 정말 도움이 많이 되기 때문에 권장하고 있습니다. *이 부분은 아마 다른 분들도 궁금해하실 수 있을 것 같아서 조금 자세히 답변 드렸습니다. 감사합니다.
- 1
- 2
- 57
질문&답변
2024.10.07
Coroutine과 VirtualThread의 차이점에 대해질문드립니다
태준님 안녕하세요. 조세영입니다. 코루틴이 Virtual Thread와 비교했을 때 어떤 장점이 있을지에 대해 질문 주셨는데요. 먼저 제가 Java를 사용한 지 시간이 조금 지나서 JDK 21에 도입된 Virtual Threads에 대해서는 개념적으로만 알고, 실제로는 사용해 보지 않았기에 답변이 다소 부족할 수 있음을 양해 부탁드립니다. 먼저 Virtual Threads는 가상 스레드를 생성해, 스레드 블로킹이 발생할 때 실제 스레드를 블로킹하는 대신 가상 스레드가 블로킹되며, 이를 통해 스레드 전환 비용을 줄이는 방식으로 동작합니다. 반면 코루틴은 일시 중단 지점을 가질 수 있는 작업 단위로, I/O 작업 같이 스레드가 계속해서 점유되지 않아도 되는 경우에는 스레드를 점유하지 않는 방식으로 작업을 최적화해 두 개념이 유사하게 느껴지실 수 있습니다. 하지만 이 둘은 다소 차이가 있습니다. Virtual Threads는 JVM 수준에서 제공되는 기본적인 기능인 반면, 코루틴은 더 높은 수준의 추상화를 제공하고, 안정적인 비동기 코드를 작성할 수 있는 다양한 기능을 갖추고 있습니다. 따라서 저는 이 둘이 상호 보완적으로 사용할 수 있다고 생각합니다. 예를 들어 Virtual Threads를 사용하여 경량 스레드를 관리하고, 그 위에 코루틴을 활용하여 구조화된 동시성이나 범위 기반의 작업 관리 같은 기능을 사용해 더 복잡한 비동기 처리 흐름을 유연하고 안정적으로 관리할 수 있을 것 같습니다. 또한, 코루틴은 Kotlin에 특화된 도구이기 때문에, Kotlin이 JVM을 넘어 다양한 환경에서 동작하는 점을 고려하면 계속해서 비동기 프로그래밍에 중요한 역할을 할 것으로 보입니다. 반면, Virtual Threads는 더 범용적인 Java 생태계에서 활용도가 높아질 것으로 보입니다. 따라서 저는 두 기술이 각자의 장점을 살려가며 함께 발전할 가능성이 크다고 생각합니다. 부족한 답변이지만 도움 되셨으면 좋을 것 같습니다. 감사합니다.
- 1
- 1
- 79