목록Kotlin (2)
백엔드 개발 블로그
Kotlin 1.5 기준으로 작성된 글입니다. 코틀린 코루틴에서 새로운 경량 쓰레드에서 작업을 생성하기 위해선 launch 혹은 async를 사용한다. 둘의 자세한 차이점 및 사용시 주의사항에 대해 알아보자. TL;DR launch는 작업을 실행만 시키고 그 결과에 관심이 없으며, 각 job 마다의 오류를 처리할 필요가 없을 경우 사용한다. launch 내에서 발생한 오류는 join() 메소드 호출 시 catch할 수 없으며, 오류는 부모 job으로 전파된다. 만약 supervisorScope 등을 사용하여 부모 job으로 전파되지 않는 경우, 오류는 unhandled exception으로 취급되어 프로그램 실행에 영향을 끼칠 수 있다. async는 작업 실행의 결과(반환값)를 얻어올 수 있으며 각 jo..
2022/08 기준이며, Java에 익숙하다는 가정 하에 작성된 자료입니다. Kotlin의 장점으로는 간결성, JVM 호환성, 코루틴 등이 자주 언급되지만 그 중에서도 흔히 언급되는 것은 널 안정성이다. Java에서는 프로그래머가 주의 깊게 코드를 작성하지 않으면 NPE(NullPointerException)가 빈번하게 일어난다. Kotlin은 언어의 정적 타입 시스템에 null 관련 구조를 추가하였기 때문에 변수가 null일지 아닐지 고민하거나 수많은 Optional 등을 타이핑하지 않고도 효과적으로 NPE를 막을 수 있다. 기존 Java와 비교하여 어떤 점이 다른지 알아보자. 기존 Java에서는? String 객체의 레퍼런스는 실제 값을 가질 수도 있고 null 값을 가질 수도 있다. String m..