💡우아한테크코스 인터뷰 과정에서 받았던 질문 중인 sealed class vs abstract class에 대하여 정리하였습니다. 개요Kotlin에서 abstract class와 sealed class는 모두 공통 기능을 자식 클래스에 상속하기 위해 사용됩니다.sealed class는 abstract class를 통해 구현되어 있으며 타입에 대한 제한적인 사용을 할 수 있습니다.두 클래스는 상속 제어, 목적, 사용 사례에 차이점을 가지고 있습니다.abstract추상 클래스는 인스턴스화할 수 없으며, 상속을 통해서만 사용됩니다.추상 메서드를 포함할 수 있으며, 이를 상속받는 클래스에서 구현해야합니다.비추상 메서드도 가질 수 있으며, 상속받는 자식 클래스를 어디에서나 정의할 수 있습니다.abstract c..
💡우아한테크코스 인터뷰 과정에서 받았던 질문 중인 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..
💡스레드와 코루틴에 대하여 간단하게 정리하였습니다. 개요Thread와 Coroutine은 둘 다 동시성 처리를 위한 방법이지만, 서로 다른 방식으로 작업을 처리합니다.안드로이드, 서버 애플리케이션 또는 다양한 병렬 처리 환경에서 중요한 역할을 수행합니다.이는 동기 & 비동기, 동시성 & 병렬성의 개념과 매우 밀접하게 연관되어 있습니다.동기와 비동기(Thread & Handler) 동기와 비동기(Thread & Handler)💡동기, 비동기의 차이에 대해서 이해하고 안드로이드에서 Thread와 Handler가 어떻게 동작하는지 정리하였습니다. Synchronous vs Asynchronous동기와 비동기는 작업의 처리 방식을 나타내는 개념으로,jinudmjournal.tistory.com[CS] 동시성..
💡 코틀린에서 날짜와 시간을 다루는 클래스에 대하여 학습하였습니다! Java의 API와 Kotlin 자체 라이브러리를 비교하였습니다. Java APIKotlin은 JVM 언어이기 때문에 Java의 날짜 및 시간 API를 직접 사용할 수 있습니다.Java 8에서 도입된 java.time 패키지의 API를 많이 사용합니다.java.time 패키지Java 8에서 도입된 날짜와 시간 관련 API로, 현대적인 방식으로 날짜와 시간을 처리할 수 있게 해줍니다.[LocalDate] : 날짜(년, 월, 일)을 표현하는 클래스[LocalTime] : 시간(시, 분, 초, 나노초) 을 표현하는 클래스[LocalDateTime] : 날짜와 시간 모두 표현하는 클래스[Period] : 두 날짜 간의 차이를 표현하는 클래스[..
💡 도메인 특화 언어인 DSL의 개념에 대하여 알고, 간단한 실습을 진행하였습니다.DSL?특정 업무나 문제 해결을 위해 최적화된 언어로, 해당 도메인에서 일반적으로 사용되는 개념과 연산을 간결하고 직관적으로 표현할 수 있게 해줍니다.Domain Specific Language의 약자로, 특정 도메인에 국한해 사용하는 언어입니다.반대 개념으로는 General Purpose Language가 있으며, C, C++, Kotlin, Swift 등의 프로그래밍 언어들이 이에 해당합니다.DSL vs GPLDSL웹 페이지 레이아웃, 데이터베이스 쿼리, 빌드 자동화 등 작업을 쉽게 하기 위해 설계되었습니다.생산성과 가독성이 좋고, 복잡한 작업을 간단하게 표현할 수 있습니다.하지만 범용적이지 않아서 다른 도메인에 적용..