오늘은 내일배움캠프의 Kotlin 문법 강의를 수강했다.
1~4주차 내용에 대해 새롭게 알게된 내용을 작성하려 한다.
- 변수는 lateinit을 사용하고, 상수는 lazy를 사용한다.
- class에서 lateinit로 선언한 프로퍼티가 초기화 됐는지 확인하는 코드
->this::프로퍼티.isInitialized / 값이 아니라 참조의 형태로 사용해야 하기 떄문에 this:: 또는 ::를 붙인다.
- ?. 연산자 => Null인지 확인하고 Null이 아닐때만 참조하는 메소드
- set 타입에는 union(합집합), intersect(교집합), subtract(차집합)를 지원하는 메소드가 있다.
5주차 내용 (03/11 추가함)
1. kotlin scope function -> https://rlaxodud214.tistory.com/12
2. 코루틴
- 코루틴은 빌더와 함께 사용
- 일반적으로 launch와 async 빌더를 가장 많이 사용함
- launch : 반환 값이 없는 빌더, Job 객체로 코루틴을 관리
- async : 반환 값이 있는 코루틴, Deffered 타입으로 값을 리턴
- 코루틴은 Scope로 범위를 지정할 수 있음
- GlovalScope : 앱이 실행된 이후에 계속 수행되어야 할 때 사용
- CoroutineScope : 필요할때만 생성하고, 사용 후에 정리가 필요
- 코루틴을 실행할 쓰레드를 디스패치(Dispatcher)로 지정할 수 있음
- Dispatchers.Main: UI와 상호작용하기 위한 메인쓰레드
- Dispatchers.Default: 기본적으로 CPU최적화되어있는 쓰레드
- Dispatchers.IO: 네트워크나 디스크 I/O작업에 최적화되어있는 쓰레드 - Api Call 및 DB 연동 등에 적합하다.
- 안드로이드에서는 특히 Dispatcher간의 변환을 해야하는 작업을 고려해야함
3. 쓰레드와 코루틴
- 쓰레드와 코루틴은 모두 동시성 프로그래밍을 위한 기술
- 동시성 프로그래밍에서는 컨텍스트 스위칭이 중요함
- Suspend (= Non-Blocking)
- 하나의 쓰레드에서 어려 Task Object를 동시에 수행할 수 있음
- 코루틴은 쓰레드보다 CPU 자원을 절약한다는 측면에서 Light-Weight Thread라고 한다.
- google -> 코틀린의 코루틴 사용 적극 권장
'TIL' 카테고리의 다른 글
Kakao Api에서 플랫폼 등록 시 키 해시 값 얻는법 (1) | 2024.05.29 |
---|