💡우아한테크코스 인터뷰 과정에서 받았던 질문 중인 sealed class vs enum class에 대하여 정리하였습니다. enum classenum class는 열거형 클래스로, 미리 정의된 상수의 집합을 나타낼 때 사용합니다.코틀린의 열거형 클래스 (Enum Class) 코틀린의 열거형 클래스 (Enum Class)코틀린에서는 자바와 마찬가지로 타입을 담는 클래스인 enum 클래스를 지원합니다. 열거형 클래스라고 하며, 아래와 같이 상수를 집합으로 관리할 수 있어 코드에 가독성이 높아집니다. 이번 프jinudmjournal.tistory.com고정된 값의 집합을 나타낼 때 사용되며, 각 값은 인스턴스화되지 않은 싱글톤입니다.단순한 상태나 옵션을 나타낼 때 적합합니다.enum class Directi..
💡비슷하지만 각기 다른 역할을 하는 object와 data object의 차이에 대해 기록하였습니다. objectobject는 싱글톤 패턴을 구현하는 데 사용됩니다.프로그램 전체에서 하나의 인스턴스만 존재하는 객체를 만들 때 유용합니다.상태를 전역적으로 공유하거나, 유틸리티 클래스처럼 인스턴스화할 필요가 없는 객체를 정의할 때 사용합니다.자동으로 인스턴스가 생성되며, 별도의 생성자를 호출할 수 없습니다.object Singleton { var count = 0 fun increment() { count++ }}fun main() { Singleton.increment() println(Singleton.count) // 1}data objectKotlin 1.9..
💡객체 지향 프로그래밍에서 사용되는 개념인 값 객체(Value Object)에 대하여 기록하였습니다. Value Object값 객체는 객체 지향 프로그래밍에서 불변하며, 주로 고유한 식별자(ex> ID 값)이 없고 데이터 그 자체로 의미를 갖는 객체를 말합니다.두 객체가 같은 속성 값을 가지고 있다면 동일한 것으로 간주하며, 본질적으로 데이터를 담는 그릇으로 분류합니다.불변성값 객체는 생성된 이후 상태가 변하지 않는 특징이 있습니다.값 객체의 속성 값이 변경되면 새로운 값 객체를 생성해야 합니다.동등성두 값 객체는 그 속성 값이 같으면 동일한 것으로 간주됩니다.객체의 참조가 다르더라도 같다면 동일한 객체로 취급합니다.식별자값 객체는 식별자가 없으며, 데이터 자체가 중요합니다.그 데이터의 값이 같으면 두..
💡우아한테크코스 활동 중에 경험한 코루틴 테스트에 대하여 기록하였습니다. RunTest?runTest는 테스트 코드를 단일 스레드에서 실행할 수 있게 해주는 함수입니다.Kotlin Coroutines Test 라이브러리에서 제공하며, 비동기 테스트 환경에서 시간을 정확하게 제어하고 예외나 지연 작업을 효과적으로 처리할 수 있습니다.runBlockingTestCoroutine 1.6 이전 버전에서 코루틴을 테스트하기 위해 사용되었지만, 1.6 이후 부터는 runBlockingTest가 Deprecated 되었기 때문에 runTest를 활용합니다.runTest를 활용할 경우 더 나은 시간 제어 및 안전성을 제공하며, 타임아웃과 시간 관련 작업의 동작을 제어할 수 있습니다.특징runTest는 기본적으로 60..
💡안드로이드 4대 컴포넌트 중 하나인 Service에 대하여 정리하였습니다. ServiceService는 백그라운드에서 실행되는 작업을 처리하기 위한 컴포넌트입니다.사용자가 직접 상호작용하지 않는 작업을 처리하며, 애플리케이션이 포그라운드에 없어도 계속해서 동작할 수 있습니다.주로 네트워크 트랜잭션 처리, 데이터베이스, 파일 다운로드, 음악 같은 장기 실행 작업을 처리하는 데 적합합니다.서비스 개요 | Background work | Android Developers 서비스 개요 | Background work | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 서비스 개요 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를..
💡네트워크 요청 중에 발생할 수 있는 에러에 대해 알아보고, 해결 방안을 기록하였습니다. HTTPAndroid에서 HTTP 에러는 주로 네트워크 요청 중에 발생하며, 이는 서버 간의 통신이 실패하거나 서버가 요청을 처리하지 못할 때 나타냅니다.이는 HTTP 상태 코드, 네트워크 연결 문제, 서버의 응답 처리 오류 등의 이유가 있을 수 있습니다.아래와 같은 일반적인 오류로 분류할 수 있고, JSON 파싱이나 SSL 인증서 오류도 발생할 수 있습니다.4XXHTTP 상태 코드 4XX를 가지면 클라이언트 오류로 분류합니다.400 : Bad Resquest401 : Unauthorized403 : Forbidden404 : Not Found5XXHTTP 상태 코드 5XX를 가지면 서버 오류로 분류합니다.500 ..