일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코틀린
- 추상 팩토리
- a
- 빌터패턴
- factory method
- builderPattern
- F
- El
- 싱글톤
- 프로토타입 패턴
- Design Pattern
- Observer Pattern
- Abstract Factory
- 팩토리 메소드
- 옵저버 패턴
- 디자인패턴
- 함수형프로그래밍
- r
- 추상팩토리패턴
- designPattern
- ㅓ
- ㅋㅁ
- PrototypePattern
- Functional Programming
- Kotlin
- 디자인패턴 #
- Singleton
- Today
- Total
목록Coroutine (24)
오늘도 더 나은 코드를 작성하였습니까?
코루틴을 사용할 때 앱의 확장성과 테스트 가능성을 높여 긍정적인 영향을 미치는 권장사항을 알아보자! 디스패처 삽입 새 코루틴을 만들거나 withContext를 호출할 때 Dispatchers를 하드코딩하지 마세요. // DO inject Dispatchers class NewsRepository( private val defaultDispatcher: CoroutineDispatcher = Dispatchers.Default ) { suspend fun loadNews() = withContext(defaultDispatcher) { /* ... */ } } // DO NOT hardcode Dispatchers class NewsRepository { // DO NOT use Dispatchers.De..
다음 두 가지 방법 중 하나로 코루틴을 시작할 수 있다. launch - 새 코루틴을 시작하고 호출자에게 결과를 반환하지 않습니다. ' - 실행 후 삭제로 간주되는 모든 작업은 launch를 사용하여 시작할 수 있습니다. async - 새 코루틴을 시작하고 await라는 suspend 함수로 결과를 반환하도록 허용합니다. 보통 일반 함수는 await를 호출할 수 없으므로 일반 함수에서 새 코루틴을 launch하고 그 안에서 async를 사용한다. async는 다른 코루틴 내부에서만 사용하거나 suspend 함수 내에서 병렬 분해를 실행할 때 사용합니다 주의사항 launch와 async는 예외를 서로 다르게 처리합니다. async는 최종 await 호출을 예상하므로 예외를 보유하고 await 호출의 일부로..
장기 실행 작업 관리 코루틴은 장기 실행 작업을 처리하는 두 작업을 추가하여 일반 함수를 기반으로 빌드됩니다. invoke(또는 call) 및 return 외에도 코루틴은 suspend 및 resume을 추가합니다. suspend는 현재 코루틴 실행을 일시중지하고 모든 로컬 변수를 저장합니다. resume은 정지된 위치부터 정지된 코루틴을 계속 실행합니다. suspend 함수는 다른 suspend 함수에서 호출하거나 코루틴 빌더(예: launch)를 사용하여 새 코루틴을 시작하는 방법으로만 호출가능하다. suspend fun fetchDocs() { // Dispatchers.Main val result = get("https://developer.android.com") // Dispatchers.IO..
코루틴은 비동기적으로 실행되는 코드를 간소화하기 위해 Android에서 사용할 수 있는 동시 실행 설계 패턴입니다. 코루틴은 Kotlin 버전 1.3에 추가되었으며 다른 언어에서 확립된 개념을 기반으로 합니다. Android에서 코루틴은 Main 스레드(UI)를 차단하여 앱이 응답하지 않게 만들 수도 있는 장기 실행 작업을 관리하는 데 도움이 된다. 코루틴은 Android의 비동기 프로그래밍에 권장되는 솔루션입니다. 주목할 만한 기능은 다음과 같습니다. 경량: 코루틴을 실행 중인 스레드를 차단하지 않는 suspension를 지원하므로 단일 스레드에서 많은 코루틴을 실행할 수 있습니다. suspension는 많은 동시 작업을 지원하면서도 차단보다 메모리를 절약합니다. 메모리 누수 감소: 구조화된 동시 실행..