kotlin 2

[코틀린 코루틴] 코틀린의 동시성 모델 - 코루틴

코틀린은 동시성 모델로 쓰레드 활용이 아닌, 코루틴을 권장한다.코틀린 코루틴 vs 전통적 스레드코틀린에서는 concurrent.thread 함수를 이용하면, 새 스레드를 간편하게 시작할 수 있다.하지만 이는 커널 스레드를 직접 만드는 형태이기 때문에 비용이 많이 든다.스레드는 계층 개념이 없기 때문에, 계층적 관리를 하기 까다롭다.스레드는 어떤 작업이 완료되길 기다리는 동안에는 블록된다.최신 시스템이라도 한번에 몇 천개의 스레드만 효과적으로 관리할 수 있다.기본적으로 스레드는 굉장히 무거운 자원이다.요청 1개를 처리하는 동안 스레드 1개를 할당하는 구조에서,DB 호출/외부 HTTP/파일 I/O 등으로 스레드가 블로킹되면 그 스레드는 그 시간 동안 유용한 일을 못 하면서도 계속 점유된다.동시 요청이 늘면 ..

Kotlin 문법 - Java와의 차이점

코틀린을 사용하면서, 자바랑 확연히 달라 적응하기 어려웠던 부분들을 기록해둔다.read-only vs mutable 관리read-only vs mutable: 객체 내부 프로퍼티 접근제어코틀린에서 val/var 차이와, 프로퍼티의 getter/setter를 정의하는 방식(특히 private set)을 정리한다.1. val vs varval: 재할당 불가(읽기 전용 참조). 프로퍼티 관점에서는 setter가 없음.var: 재할당 가능. 프로퍼티 관점에서는 getter + setter가 있음.val a = 10// a = 20 // 컴파일 에러var b = 10b = 20 // 가능2. 기본 getter/setter코틀린 프로퍼티는 기본적으로 접근자(accessor)가 자동 생성된다.class User { ..