💡 중단 함수를 사용하는 코루틴에서 취소를 통해서 자원 낭비와 메모리 누수를 줄일 수 있는 방법에 대하여 학습하였습니다.cancellation중단 함수를 사용하는 몇몇 클래스와 라이브러리는 항상 취소를 지원합니다.단순히 스레드를 죽이면, 연결을 닫고 자원을 해제하는 기회가 없기 때문에 최악의 취소 방법이 됩니다.개발자들이 상태가 액티브한지 확인하지 않아도 되고, 간단하고 안전한 방식으로 취소할 수 있도록 코루틴은 이를 지원하고 있습니다.기본적인 취소Job 인터페이스는 cancel 메서드를 통해서 취소를 지원합니다.cancel()이를 호출한 코루틴은 첫 번째 중단점에서 잡을 끝냅니다.잡이 자식을 가지고 있따면 그들 또한 취소되며, 부모는 영향을 받지 않습니다.잡이 취소되면, 취소된 잡은 새로운 코루틴의 ..
💡 구조화된 동시성에 이어서 Job과 child 코루틴의 특징에 대하여 학습하였습니다.Coroutine Job?Job은 코루틴을 취소하고, 상태를 파악하는 등 다양하게 사용될 수 있는 컨텍스트입니다.수명주기를 가지며 인터페이스 입니다.구체적인 사용법과 상태를 가지고 있다는 점에서 추상 클래스처럼 다룰 수 있습니다.Coroutine Job 상태 도식도아래와 같이 6가지 상태와 도식표로 나타낼 수 있습니다.실제 코드에서는 toString을 활용해 잡의 상태를 볼 수 있습니다.Active잡이 실행되고 코루틴이 잡을 수행합니다.잡이 코루틴 빌더에 의해 생성되었을 때, 본체가 실행되는 상태이며 자식 코루틴을 시작할 수 있습니다.New대부분 코루틴은 Active 상태로 시작되지만, 지연 시작되는 코루틴은 New ..
💡 다양한 비동기 처리 방법에 대하여 알아보고, 예제를 통해서 학습하였습니다.코투린이 없다면?일반적인 비동기 로직일반적인 프론트엔드(안드로이드) 단에서 애플리케이션 로직을 구현하는 방법은 아래와 같습니다.다양한 소스로부터 데이터를 받음API, 뷰 구성요소, 데이터베이스, 다른 앱데이터 처리가공된 데이터로 작업뷰 동기화데이터베이스 저장API로 전송일반적인 비동기 연산 라이브러리는 아래와 같이 사용됩니다.fun onCreate() { val news = getNewsFromApi() val sortedNews = news .sortedByDescending { it.publishedAt } view.showNews { sortedNews }}안드로이드에서는 하나의 앱에서 뷰를 ..