인프런 커뮤니티 질문&답변

째꾸뇽님의 프로필 이미지
째꾸뇽

작성한 질문수

2시간으로 끝내는 코루틴

3강. 코루틴 빌더와 Job

runBlocking을 사용하는 경우가 있을까요?

해결된 질문

작성

·

212

0

안녕하세요, 좋은 강의 잘 듣고 있습니다.

runBlocking 설명하시면서, runBlocking은 자신의 코루틴이 모두 실행될 때까지 Thread를 Blocking 시킨다. 그래서 main 함수 최초 진입점이나, 테스트 코드 맨처음에 작성하는 것이 좋다. 라고 말씀해 주셨습니다.

그런데 그럼 테스트 코드 전체 또는 main 함수 전체를 코루틴으로 작성할 경우에만 사용이 되는 걸까요? 테스트 코드 이외에는 실제 로직에서 어떤 경우에 사용이 될지 궁금합니다.

아직 강의 초반부라서 이해가 부족한 것인가 싶기도 하지만 실시간으로 궁금해서 여쭤봅니다.

답변 1

1

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요 응애님!! 좋은 질문감사합니다! 🙂

제 개인적인 경험으로는 테스트 코드 혹은 main 함수에서 코루틴을 사용할 경우, 루틴 세계와 코루틴 세계를 이어주는 최초 진입지점으로 주로 사용했습니다. 즉, 로직 중간에 runBlocking 을 잘 사용하지는 않았어요!

 

만약 runBlocking 을 로직 중간에 사용하게 되면, 해당 thread 자체를 blocking 시키기 때문에 코루틴이 적극적으로 사용되는 non-blocking 코드에서는 치명적인 성능 저하를 가져올 수 있기 때문이죠.

 

물론 애당초 blocking 코드를 작성하고 있었다면, runBlocking 을 중간에 쓰는 경우도 간혹 있었습니다.

답변이 도움이 되었으면 좋겠습니다. 감사합니다! 🙏

째꾸뇽님의 프로필 이미지
째꾸뇽
질문자

실무에서도 강의에서 말씀하신 그대로군요! 답변 감사합니다 (__)

째꾸뇽님의 프로필 이미지
째꾸뇽

작성한 질문수

질문하기