Develop 80

[Kotlin] 확장 함수

확장 함수가 뭐야? 🤔 확장 함수는 기존 클래스를 간단하게 확장할 수 있는 방법이다. 실제로 클래스 내부에 메서드나 프로퍼티가 생성되는 것은 아니며, 정적 바인딩 된다는 특징이 있다. 주로 라이브러리나 이미 있는 클래스를 따로 상속받지 않고 하나의 클래스에 추가적인 메서드를 구현하고 싶을 때 사용하는 함수이다. 확장 함수를 통해, 가독성을 향상시킬 수 있고 새로운 클래스를 만드는 번거로움을 줄일 수 있다.

Develop/Kotlin 2024.04.03

[Kotlin] Data class

Data class가 뭐야? 🤔 data class는 데이터를 저장하는 데 주로 사용된다. 내부적으로 toString(), hashCode(), equals(), copy() 메서드를 자동으로 생성해주어 편리하게 사용할 수 있다. 이 특징으로 인해 주로 엔터티(Entity)로 사용되거나 RecyclerView에서 아이템을 비교할 때 장점을 얻기 위해 활용된다. RecyclerView에서는 변경된 목록을 효율적으로 처리하기 위해 DiffUtil 클래스가 사용된다. DiffUtil은 두 목록 간의 변경 사항을 계산해야 하는데, 이때 data class의 equals() 메서드를 사용하여 각 항목을 비교한다. 두 목록에서 같은 위치에 있는 항목이 동일한 객체로 간주되어야 하며, 이는 equals() 메서드를 ..

Develop/Kotlin 2024.04.03

[Kotlin] enum와 sealed class

Enum class가 뭐야? 🤔 enum class는 상수, 상태값 등 유사한 값을 열거형으로 정의하는 클래스이다. 주로 고유한 값을 사용할 때 활용된다. Enum class는 상수, 상태값 등 유사한 값을 열거형 클래스로 정의하여 고유한 값으로 사용할 때 주로 활용된다. Enum class는 생성자, 프로퍼티, 메서드, 인스턴스, 변수 등을 가질 수 있다. 일반적으로 생성자를 명시적으로 선언하지 않으면 자동으로 디폴트 생성자가 생성된다. Enum class는 상속 해줄 수 없으며, 상속 받을 수도 없다. Sealed class가 뭐야? 🤔 sealed class는 특정 유형의 하위 클래스를 제한하는 데 사용하는 클래스이다. 주로 패턴 매칭과 같은 작업에 유용하다. *패턴 매칭 : 특정한 패턴을 찾아서 ..

Develop/Kotlin 2024.02.26

[kotlin] Android 4대 컴포넌트

💡 Android 4대 컴포넌트란? Android에서 4대 컴포넌트는 애플리케이션을 구성하고 동작시키는 기본적인 구성 요소들을 말한다. 이 4대 컴포넌트는 각각 다른 역할을 수행하며, 함께 조합하여 완전한 Android 애플리케이션을 구축한다. 📌 컴포넌트는 무엇이고 어떤 역활을 수행하는지? Android에서 컴포넌트(Component)는 애플리케이션을 구성하고 동작시키는 기본적인 모듈 또는 요소를 말한다. 각 컴포넌트는 특정한 역할을 수행하며, 이들을 조합하여 완전한 Android 애플리케이션을 구축할 수 있다. 다양한 컴포넌트들은 서로 상호작용하면서 앱의 기능과 동작을 결합시킨다. 컴포넌트는 애플리케이션을 구성하는 단위이며 애플리케이션이 아니다. 컴포넌트는 애플리케이션이 아니다. 하나의 애플리케이션은..

Develop/Kotlin 2023.08.30

[kotlin] 코틀린 기본 문법

💡 코틀린이란? 코틀린은 intellj, pycharm 등 IDE 툴을 만든 젯브레인(jetbrains)에서 개발한 언어이다. 2011년에 발표되었고, 코틀린섬 이름으로부터 지어졌다. Google I/O 2017에서 안드로이드의 공식 언어로 채택되다. 더 자세한 내용은 다음 링크를 통해 알아보자. [kotlin] 코틀린이란 무엇인가? 💡 코틀린이란? 코틀린은 intellj, pycharm 등 IDE 툴을 만든 젯 브레인(jetbrains)에서 개발한 언어이다. 2011년에 발표되었고, 코틀린섬 이름으로부터 지어졌다. Google I/O 2017에서 안드로이드의 공식 언 fre2-dom.tistory.com 그럼 이번에는 코틀린의 기본적인 문법에 대해서 알아보자. 💡 기본 문법1 : val, var // ..

Develop/Kotlin 2022.12.06

[kotlin] 객체 지향 프로그래밍

💡 객체 지향 프로그래밍이란? 객체 지향 프로그래밍은 컴퓨터 프로그래밍의 패러다임중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고, 그 객체들 간의 유기적인 상호작용을 통해서 로직을 구성하는 프로그래밍 밥법이다. 위의 그림에서 보면 알 수 있듯이 절차지향은 프로그램 순서와 흐름이 중점이 되고, 객체지향은 객체가 중점이 된다. 즉, 절차지향 프로그래밍은 프로그램의 순서와 흐름을 먼저 세우고 필요한 자료구조와 함수들을 설계하는 방식이라면, 객체지향 프로그래밍은 자료구조와 이를 중심으로 한 모듈들을 먼저 설계한 다음에 이들의 실행 순서와 흐름을 짜는 방식인 것이다. 💡 객체 지향 프로그래밍의 장단점 장점 코드 재사용이 용이하다 ← 남이 만든 클래스를 가져와서 이용할 수 있..

Develop/Kotlin 2022.12.05

[kotlin] 코틀린이란 무엇인가?

💡 코틀린이란? 코틀린은 intellj, pycharm 등 IDE 툴을 만든 젯 브레인(jetbrains)에서 개발한 언어이다. 2011년에 발표되었고, 코틀린섬 이름으로부터 지어졌다. Google I/O 2017에서 안드로이드의 공식 언어로 채택되었다. 코틀린으로는 다음과 같은 것을 할 수 있다. Kotlin/JVM : 자바 가상 머신 상에서 동작하는 앱 Kotlin/JS : 자바 스크립트에 의해 DB부터 서버, 클라이언트까지 다루는 풀스택 웹 Kotlin/Native : 안드로이드와 iOS뿐만 아니라 임베디드 IOT 등 개발 즉, 앱과 웹, 서버, 임베디드 등 모든 곳에서 사용할 수 있는 만능 언어이다. 💡 코틀린의 주요 특징 코틀린의 핵심 특성을 좀 더 자세히 알아보자. 정적 타입 지정 언어 코틀린..

Develop/Kotlin 2022.12.02

[kotlin - Error] 코틀린 Android Error inflating class com.google.android.material.button.MaterialButton

Material Components for Android를 사용하던 도중 view 객체 생성에 문제가 발생하는 경우가 있었습니다. 출력된 에러 메시지이다. 해결 방법 이러한 문제가 발생하는 이유는 사용된 뷰에 머터리얼 테마가 있지만, 액티비티 테마의 상속된 테마는 머터리얼 테마가 아니기 때문이다. 일반적으로 styles.xml 파일에 각종 액티비티 테마가 정의되어 있다. 문제가 발생한 테마는 AppCompat 테마인 Theme.AppCompat.Light.NoActionBar 가 적용되어 있어 머터리얼 테마로의 변경이 필요하다. 안드로이드 매니페스트 파일(AndroidManifest.xml)을 열고 문제가 발생한 액티비티가 사용하는 테마를 다음과 같이 변경하자. Theme.MaterialComponent..

Develop/Kotlin 2022.05.09

[kotlin] 코틀린 Android MVVM Retrofit(BE 연결) 구현

이전까지 모두 Room을 통해 MVVM 패턴을 구현해보았는데 이번에는 외부 백엔드와 연결하여 MVVM 패턴을 구현해보도록 하자. Retrofit을 통해 BE와 연결 후 데이터를 가져오는 게시판 예제이다. 비동기 작업은 Corutine을 사용하였고 자세한 내용과 공부한 내용은 주석을 달아 놓았다. Retrofit에 대해 잘 모른다면 다음 링크를 통해 알아보고 온 후에 아래 내용을 보면 이해가 더욱 쉬울 것으로 예상한다. [kotlin] 코틀린 Android Retrofit 활용(기상청단기예보 오픈 API 사용) Retofit이란? 이번에는 Retofit 라이브러리를 이용하여 기상청 단기예보 오픈 API와 통신하는 방법에 대해서 알아보도록 하자. Retofit이란 모바일에서 HTTP API 통신을 할 때 사..

Develop/Kotlin 2022.05.01

[kotlin] 코틀린 Android RecyclerView Item 오류(Position 오류)

RecyclerView를 구현할 때 Item이 카운트 되지 않아 똑같은 데이터를 부르거나 item을 재사용 하지 않는 오류가 종종 발생한다. 예를 들어 item의 갯수는 10개지만 처음에 화면에 보이는 item이 4개라서 4개의 뷰만 계속해서 화면에 뿌리는 것이다. 이러한 현상이 발생하는 이유는 RecyclerView의 재사용이다. RecyclerView는 리소스를 아끼기 위해 뷰를 재사용한다. 그래서 재사용을 막기 방법을 쓰기도 하는데 그러면 RecyclerView의 목적이 손실되므로 권장하는 방식이 아니다. 해결 방법은 다음과 같다. RecyclerView Adapter에 다음 메소드를 오버라이드 하는 것이다. override fun getItemViewType(position: Int): Int {..

Develop/Kotlin 2022.05.01