💡빌드와 테스트, 배포에 활용되는 CI/CD에 대하여 학습 후 정리하였습니다. CI/CD?CI/CD는 소프트웨어 개발 프로세스를 자동화하고 효율적으로 만들기 위한 개발 관행입니다.코드를 작은 단위로 자주 병합하고, 자동화된 테스트와 배포를 통해 안정적이고 신속한 소프트웨어 릴리스를 가능하게 하는 목표를 가지고 있습니다.CI (Continuous Integration)개발자들이 자주 코드를 통합하고 변경 사항을 버전 관리 시스템에 병합하는 과정입니다.CI 파이프라인은 코드 변경 사항이 병합될 때마다 자동으로 빌드, 테스트를 실행하여 코드 품질을 보장합니다.CD (Continuous Delivery/Deployment)Continuous Delivery는 CI 이후, 검증된 코드가 자동으로 준비된 프로덕션..
💡우아한테크코스 활동 중에 경험한 코루틴 테스트에 대하여 기록하였습니다. 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..
💡안드로이드 개발 환경에서 자주 마주할 수 있는 ANR에 대하여 정리하였습니다. 개요안드로이드 개발을 진행하면서 ANR 에러를 마주할 수 있습니다.이는 사용자가 앱을 제거하는 동작으로 이어질 수 있는 치명적인 에러이며, 개발자는 이를 반드시 해결해야 합니다.ANR과 관련해서 자주 사용되는 용어를 정리하였습니다.교착 상태한 스레드에서 필요한 리소스를 다른 스레드가 보유하여, 다른 스레드가 해당 리소스를 대기하는 상태를 뜻합니다.스레드가 연속 대기 상태가 되면서 교착 상태가 발생합니다.Background Service사용자에게 보이지 않고 묵시적으로 실행되며 사용자가 작동 여부를 알지 못합니다.데이터 동기화, 네트워크 요청, DB 업데이트 등의 작업을 진행합니다.Foreground Service사용자에게 ..
💡안드로이드에서 리소스를 쉽게 관리하기 위해 사용하는 Resource Provider에 대하여 기록하였습니다. Resource ProviderResource Provider는 안드로이드에서 리소스를 더 쉽게 관리하고 테스트 가능성을 높이기 위해 사용하는 패턴입니다.XML리소스(문자열, 색상, 배열 등)와 같은 리소스를 코드 내에서 주입하고 ViewModel이나 다른 클래스에서 사용하면서도 리소스에 직접 접근하지 않도록 만들어줍니다.ViewModel이나 Repository에서는 Context에 직접 접근하는 것이 권장되지 않습니다. Resource Provider 패턴을 사용하여 리소스에 대한 접근을 인터페이스로 추상화할 수 있습니다.Resource Provider의 역할Context에 대한 의존성을 줄..