[Kotlin] 코루틴 기본
코루틴은 요즘 떠오르는 비동기 처리 방법론 중 하나다.
일단 기본적으로 코루틴은, 또다른 형태의 함수라고 할 수 있다.
함수와 다른점은, return으로 바로 종료되는 것이 아니라 일시정지를 하고 나왔다가 다시 들어갈 수 있다는 것이다.
제어를 이리저리 옮겨다닐 수 있음에도, 일반 멀티스레딩처럼 문맥 교환이 발생하지 않아 성능 효율도 좋은 편이다.
우선 IntelliJ에서 사용을 해보도록 하겠다.
코루틴은 기본 라이브러리에 포함되어있지 않기 때문에, 추가로 설치를 해줘야 한다.
Project Structure -> Libraries로 들어가서
- 누르고 from Main. 그리고 저렇게 검색해서 선택해주자.
유의할 점은, 사용하고 있는 자바 버전에 따라서 저 코어의 버전도 달라질 수 있다는 것이다.
가령 java8을 사용할 경우 사용할 수 있는 가장 최신 버전은 0.22 버전뿐이다.
나는 java12를 사용했다.
오케이
그럼 이제 사용해보자.
기본적인 사용법은 굉장히 간단하다.
GlobalScope의 launch라는 메서드에 클로저나 함수를 던져주는 것이다.
그럼 해당 클로저나 함수가 코루틴의 실행 내용이 된다.
클래스명인 GlobalScope는 코루틴이 전역 스코프에서 실행됨을 의미한다.
프로그램이 꺼질 때까지 코루틴이 살아있을 수 있다는 것이다.
여튼 위의 코드는 잘 돌아가긴 하지만 저렇게 시간으로 딜레이를 거는 건 그리 좋지 않다.
더 좋은 방법은 launch의 반환 핸들러(Job 타입)를 받아서 처리해주는 것이다.
하지만 기본 main 문에서는 그런식의 사용이 불가능하기 때문에, runBlocking 함수로 메인 코루틴 블럭을 따로 표시해준다.
잘 된다.
일단 여기까지만 하고 나중에 제대로 공부해서 다시 쓰겠다.
참조
https://medium.com/@jeho1335/kotlin-coroutine-%ED%8A%9C%ED%86%A0%EB%A6%AC%EC%96%BC-c2c0a063b2fd
https://stackoverflow.com/questions/52522282/using-kotlinx-coroutines-in-intellij-idea-project
https://medium.com/@jeho1335/kotlin-coroutine-%ED%8A%9C%ED%86%A0%EB%A6%AC%EC%96%BC-c2c0a063b2fd