코틀린 1.1에 추가된 코루틴(Coroutine)은 서로에게 제어를 넘겨주면서 협력하는 방식으로 작업을 처리하는 기법이다 이를 사용하면 async/await 패턴을 통해 비동기 연산을 기술할 때 복잡한 콜백 구조를 활용하지 않고 일반 함수처럼 비동기 호출을 활용할 수 있는 로직을 작성할 수 있다 비동기 처리를 수행하는 로직은 async로 표시해야 다른 곳에서 await로 이 로직의 결과를 기다릴 수 있다 // 비동기 작업 시작 val number1 = async(CommonPool) { delay(1000); 1 } // 1초 걸리고 결과가 1인 작업 val number2 = async(CommonPool) { delay(2000); 2 } // 2초 걸리고 결과가 2인 작업 // 기다리면서 메서드 블록..
리플렉션(Reflection)은 런타임 때 프로그램의 구조(객체, 함수, 프로퍼티)를 분석해 내는 기법을 이야기합니다. 코틀린에서 리플렉션을 위해서는 라이브러리가 필요합니다. kotlin-reflect.jar 라는 라이브러리를 의존성(dependency) 설정을 통해 준비해야 합니다 dependencies { compile "org.jetbrains.kotlin:kotlin-reflect" } 1. 클래스 타입과 레퍼런스 런타임 때 동적으로 클래스를 분석하려면 클래스에 대한 정보가 필요한데 이 클래스에 대한 정보를 클래스 레퍼런스라고 표현하며, 클래스 레퍼런스를 대입하는 곳은 클래스 타입으로 선언해야 합니다. 클래스 타입은 KClass로 표현하며 대입하는 클래스 레퍼런스는 "클래스명::class"로 표현..
제네릭(Generics) 혹은 제네릭 타입(generic type)은 인자로 사용하는 타입에 따라 구체화되는 클래스나 인터페이스를 말합니다 1. 제네릭 클래스/인터페이스 정의 // java class Car { ... } // 항목을 담거나 뺄 수 있는 제네릭 인터페이스 Container 정의 interface Container { void put(T item); T take(); } // 자동차(Car)를 담거나 뺄 수 있는 클래스 Garage 정의 class Garage implements Container { @Override public void put(Car item) { ... } @Override public Car take() { ... } } // kotlin class Car { .....
- Total
- Today
- Yesterday
- 앱
- google I/O
- 카카오톡
- 안드로이드Q
- 개발
- 백준
- kakaotalk
- 과제
- Android
- 알고리즘
- 안드로이드 9.0
- 안드로이드
- 액티비티
- 대학교
- Material
- Unity
- 코틀린
- 백그라운드
- ScrollView
- 구글IO
- ScrollView in ScrollView
- 카톡
- 중첩
- KAKAO
- NestedScrollView
- 신규기능
- 자바
- Kotlin
- 유니티
- Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |