💡Coroutine 사용 중에 발생한 에러를 CoroutineExceptionHandler를 활용하여 핸들링 하는 방법에 대하여 기록하였습니다. 개요코루틴 내부에서 예외가 발생했을 때 try - catch 블럭이나 runcatching을 활용하여 예외를 감싸 처리하는 방법이 있습니다. 다른 방법으로는 CoroutineExceptionHandler를 활용하는 방안이 있는데, 코루틴에서 발생한 예외를 처리하고 앱의 비정상 종료를 방지할 수 있습니다.CoroutineExceptionHandlerCoroutineExceptionHandler는 Kotlin의 코루틴에서 발생한 예외를 처리하기 위한 방법으로 주로 비동기 작업에 활용됩니다.전역적으로 예외 처리를 할 수 있는 방법을 제공하며, 취소되지 않은 코루틴에..
💡안드로이드 아키텍처에서 중요한 역할을 하는 비즈니스 로직과 UI 로직에 대하여 정리하였습니다. 개요안드로이드에서는 다양한 Architecture Sample을 제공합니다. 아키텍처 패턴에 따라서 다양한 로직을 분리하게 되는데, 그 중에서 비즈니스 로직과 UI 로직은 각기 다른 역할을 수행하는 중요한 개념으로 적용되고 있습니다. 이 두개념은 서로 다른 책임을 가지고 있으며, 애플리케이션 아키텍처를 깔끔하고 유지보수 가능하게 만드는 데 중요한 역할을 합니다.https://github.com/android/architecture-samples/blob/130f5dbebd0c7b5ba195cc08f25802ed9f0237e5/app/src/main/java/com/example/android/architec..
💡우아한테크코스 과정에서 적관용한 상태 관리와 UIState에 대하여 정리하였습니다. 상태 관리UIState는 상태를 저장하고 관리하는 패턴을 활용하는 중요한 개념입니다.Android에서 애플리케이션에서 UI 및 데이터를 관리하는 중요한 개념입니다. 특히 MVVM 패턴이나 Jetpack Compose 등에서 상태 관리는 필수적인 요소이며, 이를 통해 UI가 일관성 있게 데이터를 반영하고 사용자의 액션에 따라 동적으로 업데이트 할 수 있습니다.State ManageMent안드로이드 애플리케이션은 사용자 인터페이스가 아래와 같이 다양한 상태를 가질 수 있습니다.LoadingSuccessErrorInitUI 상태를 나타내는 클래스나 상태 객체를 활용하면 UI와 ViewModel이 상호작용하여 상태에 따른 U..
💡안드로이드 개발 환경에서 자주 마주할 수 있는 ANR에 대하여 정리하였습니다. 개요안드로이드 개발을 진행하면서 ANR 에러를 마주할 수 있습니다.이는 사용자가 앱을 제거하는 동작으로 이어질 수 있는 치명적인 에러이며, 개발자는 이를 반드시 해결해야 합니다.ANR과 관련해서 자주 사용되는 용어를 정리하였습니다.교착 상태한 스레드에서 필요한 리소스를 다른 스레드가 보유하여, 다른 스레드가 해당 리소스를 대기하는 상태를 뜻합니다.스레드가 연속 대기 상태가 되면서 교착 상태가 발생합니다.Background Service사용자에게 보이지 않고 묵시적으로 실행되며 사용자가 작동 여부를 알지 못합니다.데이터 동기화, 네트워크 요청, DB 업데이트 등의 작업을 진행합니다.Foreground Service사용자에게 ..
💡REST API와 RESTful API에 대하여 정리하였습니다. RESTRepresentational State Transfer의 약자로 자원을 이름(자원이 표현)으로 구분해 해당 자원의 상태(정보)를 행위로 주고 받는 것들을 의미합니다.자원의 표현에 의한 상태 전달[자원] : 해당 소프트웨어가 관리하는 모든 것으로 문서, 그림, 데이터, 소프트웨어 자체 등[표현] : 그 자원을 표현하기 위한 이름[상태 전달] : 데이터가 요청되는 시점에 자원의 상태를 전달하며, 주로 JSON 활용REST는 기본적으로 웹의 기존 기술과 HTTP를 활용하여 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일입니다.REST는 네트워크에서 Client와 Server 사이의 통신 규약을 가지는 아키텍처입니다.어떤 자원에 대..
💡이벤트 처리와 관련 된 개념인 Throtting과 Debounce에 대하여 학습한 내용을 기록하였습니다. 개요Throttling와 Debounce는 자주 사용 되는 이벤트나 함수들의 실행되는 빈도를 줄여서 효율적인 성능 개선을 가져오기 위한 개념입니다.검색 시 자동 완성 기능에 주로 활용되며, keyboard가 한자씩 입력될 때마다 API로 데이터를 가져오게 되면 사용자의 의도와 무관하게 많은 요청이 발생합니다.이를 줄이기 위해서 특정 단위마다 api 값을 가져오도록 요청할 수 있는데, 이러한 방식이 Throttling과 Debounce에서 활용됩니다.두 방법 모두 사용자 인터페이스에서 빠르게 발생하는 이벤트를 제어하고 불필요한 처리를 줄이기 위한 방법이지만, 처리 방식에 차이가 있습니다.Thrott..