[Kotlin/코틀린] @Parcelize / Parcelable을 사용한 직렬화와 역직렬화
·
Kotlin
안드로이드 개발에서 데이터 객체를 인텐트나 번들로 전달할 때, 데이터 객체를 직렬화 해야하는 경우가 많다. 스프링과 같은 프레임워크에서도 데이터 객체를 사용할 때 직렬화하는 경우가 많다.어쨋든, 코틀린에서는 @Parcelize를 사용하면 효율적으로 데이터를 직렬화와 역직렬화를 할 수 있다. Parcelable이란?Parcelable은 안드로이드에서 객체를 직렬화하는 데 사용되는 인터페이스이다.객체의 데이터를 Parcel이라는 형식으로 변환하여 다른 컴포넌트 간에 전달할 수 있도록 한다. 안드로이드에서는 기본적으로 제공하는 Serializable과 달리 Parcelable은 보다 빠르고 효율적으로 데이터를 직렬화할 수 있다. 그래서, 왜 사용하는데?성능이 뛰어나며, 메모리 효율성 측면에서도 최적화되어 있어..
[Kotlin/코틀린] String과 Int 변환 - String to Int, Int to String 변환 방법
·
Kotlin
숫자 데이터와 문자열 데이터를 서로 변환해서 사용하는 경우가 많이 있다.String to Int와 Int to String에 대해서 기록하려고 한다. String to Int 방법 1: toInt() 사용하기toInt() 함수를 사용해 문자열을 정수로 변환할 수 있다. toInt() 함수는 변환할 수 없는 문자열을 만났을 때 예외를 발생시키는데, 예외 처리를 고려해야 한다.val numberString = "123"val number: Int = numberString.toInt()println(number) // 출력: 123 동작 원리: toInt() 함수는 문자열을 정수로 변환, 변환할 수 없는 경우 예외를 발생예외 발생: 변환할 수 없는 문자열을 toInt()로 변환하려고 하면 NumberFor..
[Kotlin/코틀린] MVVM 패턴이란? - MVVM 패턴과 Counter 앱
·
Kotlin
안드로이드 앱 개발에서 널리 사용되는 아키텍처 패턴 중 하나인 MVVM에 대해서 기록하려고 한다.요즘 안드로이드 개발을 취미로 시작하여 기록을 위해 작성한다. 혹여나 틀린 정보가 있다면 댓글로 남겨주신다면 반영하겠습니다 감사합니다. 서론MVVM 패턴이란?MVVM (Model-View-ViewModel) 패턴은 앱의 UI와 비즈니스 로직을 분리하여 보다 깔끔한 구조와 유지보수성을 제공하는 아키텍처 패턴이다. MVVM은 크게 세 가지 컴포넌트로 구성된다.Model: 데이터와 비즈니스 로직을 관리하는 컴포넌트View: 사용자에게 보이는 UIViewModel: Model과 View 사이의 중간 역할을 하며, 데이터를 가공하여 View에 전달하고 사용자 인터렉션을 처리MVVM은 데이터를 UI에 쉽게 바인딩하고, ..
[Kotlin/코틀린] 인터페이스와 다중 상속이란?
·
Kotlin
코틀린에서는 다중 상속이 불가능하다. 하지만, 인터페이스를 통해 이와 비슷하게 구현 가능하다. 예를 들어, 게임 캐릭터를 개발할 때, 하나의 캐릭터가 여러 가지 직업 특성을 가지도록 하게 만든다면 아래와 같이 구현할 수 있다. 인터페이스 정의하기각 지업을 인터페이스로 정의하여, 필요한 특성을 메서드로 구현할 수 있다. interface Archer { fun shootArrow() { println("궁수가 화살을 쏩니다!") }}interface Singer { fun sing() { println("가수가 노래를 부릅니다!") }}interface Warrior { fun attack() { println("전사가 공격합니다!") ..
[Kotlin/코틀린] override와 super 개념
·
Kotlin
상속코틀린에서는 상속 가능한 클래스를 만들기 위해서는 open 키워드를 사용한다.open 키워드를 사용하면 클래스나 메서드를 상속 및 오버라이딩 할 수 있게 한다. 기본적으로 코틀린의 모든 클래스와 메서드는 final로 간주되므로, 상속이 불가능하다. 즉, 다른 클래스가 상속하거나 메서드를 오버라이딩하지 못하게 막혀있다. 이를 가능하게 해주는 것이 open 키워드이다.open class Animal { open fun sound() { println("동물이 소리를 냅니다.") }} override를 하기 위해서는 fun 키워드 앞에 override를 함께 붙여 사용하면 된다.물론, open 처리된 메서드만 가능하다.class Dog : Animal() { override f..