이펙티브 코틀린 1장 안정성
1장 안정성 아이템 1: 가변성을 제한하라 코틀린은 모듈로 프로그램을 설계 한다. 모듈은 클래스, 객체 ,함수, 타입 별칭, Top-level property 등 다양한 요소로 구성 된다. 아래의 코드를 살펴 봅니다. class NumberSum { suspend fun sumNumber() { var num = 0 coroutineScope { for (i in 1..1000) { launch { delay(10) num += 1 } } } println(num) // 실행 마다 다른 값이 나온다. } } 코루틴은 경량 쓰레드라고 생각하면 되고, 위의 코드에서는 쓰레드 간의 동기화가 되어 있지 않기 때문에, 값을 마음 대로 변경 하게 되는 이슈가 있고, 우선 num 변수 자체가 가변적인 변수라 이를 불..