💡우아한테크코스 인터뷰 과정에서 받았던 질문 중인 sealed class vs abstract class에 대하여 정리하였습니다. 개요Kotlin에서 abstract class와 sealed class는 모두 공통 기능을 자식 클래스에 상속하기 위해 사용됩니다.sealed class는 abstract class를 통해 구현되어 있으며 타입에 대한 제한적인 사용을 할 수 있습니다.두 클래스는 상속 제어, 목적, 사용 사례에 차이점을 가지고 있습니다.abstract추상 클래스는 인스턴스화할 수 없으며, 상속을 통해서만 사용됩니다.추상 메서드를 포함할 수 있으며, 이를 상속받는 클래스에서 구현해야합니다.비추상 메서드도 가질 수 있으며, 상속받는 자식 클래스를 어디에서나 정의할 수 있습니다.abstract c..
💡우아한테크코스 활동 중에 경험한 코루틴 테스트에 대하여 기록하였습니다. RunTest?runTest는 테스트 코드를 단일 스레드에서 실행할 수 있게 해주는 함수입니다.Kotlin Coroutines Test 라이브러리에서 제공하며, 비동기 테스트 환경에서 시간을 정확하게 제어하고 예외나 지연 작업을 효과적으로 처리할 수 있습니다.runBlockingTestCoroutine 1.6 이전 버전에서 코루틴을 테스트하기 위해 사용되었지만, 1.6 이후 부터는 runBlockingTest가 Deprecated 되었기 때문에 runTest를 활용합니다.runTest를 활용할 경우 더 나은 시간 제어 및 안전성을 제공하며, 타임아웃과 시간 관련 작업의 동작을 제어할 수 있습니다.특징runTest는 기본적으로 60..
💡네트워크 요청 중에 발생할 수 있는 에러에 대해 알아보고, 해결 방안을 기록하였습니다. HTTPAndroid에서 HTTP 에러는 주로 네트워크 요청 중에 발생하며, 이는 서버 간의 통신이 실패하거나 서버가 요청을 처리하지 못할 때 나타냅니다.이는 HTTP 상태 코드, 네트워크 연결 문제, 서버의 응답 처리 오류 등의 이유가 있을 수 있습니다.아래와 같은 일반적인 오류로 분류할 수 있고, JSON 파싱이나 SSL 인증서 오류도 발생할 수 있습니다.4XXHTTP 상태 코드 4XX를 가지면 클라이언트 오류로 분류합니다.400 : Bad Resquest401 : Unauthorized403 : Forbidden404 : Not Found5XXHTTP 상태 코드 5XX를 가지면 서버 오류로 분류합니다.500 ..
💡우아한테크코스 과정에서 적관용한 상태 관리와 UIState에 대하여 정리하였습니다. 상태 관리UIState는 상태를 저장하고 관리하는 패턴을 활용하는 중요한 개념입니다.Android에서 애플리케이션에서 UI 및 데이터를 관리하는 중요한 개념입니다. 특히 MVVM 패턴이나 Jetpack Compose 등에서 상태 관리는 필수적인 요소이며, 이를 통해 UI가 일관성 있게 데이터를 반영하고 사용자의 액션에 따라 동적으로 업데이트 할 수 있습니다.State ManageMent안드로이드 애플리케이션은 사용자 인터페이스가 아래와 같이 다양한 상태를 가질 수 있습니다.LoadingSuccessErrorInitUI 상태를 나타내는 클래스나 상태 객체를 활용하면 UI와 ViewModel이 상호작용하여 상태에 따른 U..
💡안드로이드 아키텍처 패턴에서 Data Layer 역할을 담당하는 Repository, DataSourece에 대하여 기록하였습니다. 아키텍처 원칙앱 컴포넌트를 설계할 때 데이터 모델에서 UI를 도출해야 하는데 가급적이면 지속적인 모델이 권장됩니다.이를 기반으로 앱 아키텍처를 구축하면 테스트 가능성과 견고성이 높아지는 결과를 얻을 수 있습니다.데이터 모델은 UI요소나 기타 컴포넌트들과 독립되어 있는데, 지속적인 데이터 모델이 이상적인 아키텍처 패턴이 될 수 있습니다.지속적인 데이터 모델OS에서 리소스를 확보하기 위해 앱을 제거해도 데이터가 삭제되지 않습니다.네트워크 연결이 불안정하거나 비연결 상태에도 앱이 동작 합니다.SSOTSingle source of truth의 약자로 단일 소스 저장소를 뜻합니다..
💡여러 종류의 목록 뷰를 하나의 스크롤 영역에 구현하기 위해 학습한 내용을 기록하였습니다. 개요인스타그램을 포함한 여러 앱에서 여러 종류의 목록 뷰를 하나의 스크롤 영역에 표시합니다.리싸이클러뷰로 이를 구현하려고 할 때 여러가지 방식의 차이를 비교하려 합니다.NestedScrollViewNestedScrollView는 ScrollView와 동일하게 동작하지만 중첩된 스크롤을 지원합니다.NestedScrollView | Android Developers NestedScrollView | Android Developersandroidx.core.accessibilityservicedeveloper.android.comNestedScrollView는 View의 스크롤 X or Y 위치가 변경될 때 호..