[블로그 글쓰기 챌린지: Writing Mob]에 대한 간단한 안내
20회 차에는 코루틴 CoroutineContext와 CoroutineScope의 개념 및 상호 관계, 코틀린 코루틴을 사용해야 하는 이유, 위험 권한 처리에 관한 내용을 담고 있습니다. 자세한 내용은 아래 링크에서 확인하실 수 있습니다. 많은 관심과 응원 부탁드립니다. 좋아요 또는 댓글은 각 블로그에 직접 남겨 주시면 좋겠습니다. 감사합니다.
잘못된 내용이나 사소한 오탈자 등 소중한 피드백은 대환영입니다. 해당 블로그에 댓글로 남겨 주시면 감사하겠습니다.
아래 내용은 Gemini를 통해 요약하였습니다.
https://velog.io/@geun5744/%EC%BD%94%ED%8B%80%EB%A6%B0-%EC%BD%94%EB%A3%A8%ED%8B%B4-2%EB%B6%80-2
코틀린 코루틴의 핵심 구성 요소인 CoroutineContext와 CoroutineScope의 개념 및 상호 관계를 심층적으로 분석합니다. CoroutineContext가 Job, Dispatcher, CoroutineName, CoroutineExceptionHandler 등 코루틴의 실행 환경을 정의하는 원소들의 집합(Set)으로서 기능하는 방식을 설명하고, CoroutineScope가 이러한 Context를 프로퍼티로 소유하며 launch나 async와 같은 코루틴 빌더를 통해 구조화된 동시성(Structured Concurrency)을 보장하는 역할을 규명합니다. 특히, Job을 통한 코루틴의 생명주기 관리, 부모-자식 간의 관계 설정, 그리고
Dispatcher를 통한 스레드 지정 및 콘텍스트 전환 원리를 고찰함으로써, 코루틴의 내부 동작 방식과 효율적인 비동기 처리 메커니즘에 대한 이해를 제고하는 것을 목표로 합니다.
https://velog.io/@hxeyexn/why-use-kotlin-coroutines
기존 스레드 기반 프로그래밍이 가진 한계, 특히 안드로이드 환경에서 메인 스레드를 차단(blocking)하여 발생하는 UI 멈춤 및 ANR(Application Not Responding) 오류의 심각성을 지적하며, 이에 대한 해결책으로서 코틀린 코루틴(Kotlin Coroutines)의 필요성을 역설합니다. 코루틴은 스레드를 차단하지 않고(non-blocking) 작업을 일시 중단(suspend)했다가 재개할 수 있게 함으로써, 경량의 리소스로도 복잡한 비동기 및 동시성 코드를 마치 순차적인(sequential) 코드처럼 간결하고 가독성 높게 작성할 수 있도록 지원하여 애플리케이션의 응답성을 보장하는 핵심적인 방안임을 강조합니다.
https://velog.io/@kmkim2689/android-permissions-rationale
Android 11(API 30) 이상 버전에서 변경된 위험 권한 처리 정책, 특히 사용자의 '다시 묻지 않음' 상태를 효과적으로 관리하는 방안을 다루고 있습니다. 사용자가 권한 요청을 반복적으로 거부할 시 시스템이 이를 '다시 묻지 않음'으로 간주하여 앱의 정상적인 기능 수행이 어려워지는 문제를 지적하며, 이에 대한 해결책으로
shouldShowRequestPermissionRationale() 메서드의 역할을 조명합니다. 이 메서드의 반환 값이 'true'일 경우(사용자가 이전에 거부) 권한이 필요한 이유(Rationale)를 설명하고, 'false'일 경우(처음 요청 또는 '다시 묻지 않음')의 모호함을 해결하기 위한 로직을 제시합니다. 특히 onRequestPermissionsResult 콜백에서 권한이 거부되었음에도 shouldShowRequestPermissionRationale()가 'false'를 반환하는 '다시 묻지 않음' 상태를 명확히 감지하여, 사용자에게 직접 앱 설정 화면으로 이동해 권한을 활성화하도록 안내하는 사용자 경험(UX) 설계의 중요성과 구체적인 구현 흐름을 논의합니다.