기타

[Intellij] 인텔리제이에서 코루틴 사용하기

참깨빵위에참깨빵_ 2023. 4. 4. 22:43
728x90
반응형

안드로이드 스튜디오에서 코루틴을 사용하려면 라이브러리 의존성 가져와서 앱 gradle에 넣으면 된다.

그러나 인텔리제이에서도 코루틴을 사용하고 싶다면 어떻게 해야 할까? 이전 포스팅인 세마포어, 뮤텍스 관련 포스팅을 인텔리제이로 작성했는데 코루틴을 사용할 수 있게 따로 환경설정을 해줘야 했었다. 이 포스팅에선 인텔리제이에서 코루틴을 쓸 수 있게 환경설정하는 방법을 정리한다.

 

먼저 프로젝트 설정창을 열어야 한다. 윈도우는 Ctrl + Alt + Shift + S를 누르면 표시된다.

 

 

그 다음 Libraries를 누르고 +를 눌러 From Maven을 클릭한다. 그럼 아래와 같은 팝업이 나타날 것이다.

 

 

여기에 coroutine을 입력하고 검색한다. 그럼 잠시 후 인텔리제이에 설치할 수 있는 라이브러리 중 "coroutine"이 들어간 라이브러리들이 리스트업된다.

 

 

여기서 깔아야 할 것은 "org.jetbrains.kotlinx:kotlinx-coroutines-core" 라는 라이브러리다. 버전은 마음에 드는 걸로 설치한다. 난 1.6.1 정도가 적당해 보여서 이 버전으로 설치했다.

만약 이 라이브러리를 설치해도 코루틴을 사용할 때 오류가 발생한다면 "org.jetbrains.kotlinx:kotlinx-coroutines-android" 의존성을 설치해 보자. 그러나 어지간한 코루틴 요소는 첫 번째 라이브러리만 설치해줘도 사용할 수 있다.

 

이제 OK를 누르고 설치한 라이브러리를 프로젝트에 적용해준다. 이제 코루틴이 잘 작동하는지 간단한 예제 코드를 실행해 본다.

 

import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch

fun main() {
    CoroutineScope(Dispatchers.IO).launch {
        val response = callServer()
        println("서버로부터 응답 받음 : $response")
    }

    println("IO 쓰레드에서 코루틴이 실행되는 동안 메인 쓰레드는 계속 실행됨")

    // 메인 쓰레드가 종료되기 전에 코루틴이 실행될 충분한 시간을 주기 위해 지연시간을 추가
    Thread.sleep(2000L)
}

suspend fun callServer(): String {
    delay(1000L)
    return "response"
}

// IO 쓰레드에서 코루틴이 실행되는 동안 메인 쓰레드는 계속 실행됨
// 서버로부터 응답 받음 : response

 

맨 마지막 주석 2줄이 출력된다면 코루틴을 사용할 수 있는 것이니 이제 코루틴을 적극 활용하면 된다.

반응형