Language/kotlin

개요Kotlin 접근 제한자에 대해 아시나요? 음... 기본적으로 public이 있고, private, protected, internal 이렇게 있던 것 같은데 protected하고 internal의 차이가 뭐였더라??? 라는 생각에서 바로 정리를 해야겠다 생각했다. 1. 접근 제한자란?클래스, 객체, 함수, 프로퍼티가 공개 되어야 하는 범위를 정해주는 역할을 한다. public, private, protected, internal이 있고 각각에 대해 알아보자 1-1. 접근 제한자 종류public(공개)-> 기본 접근 제어자로, 어디서든 접근이 가능하다.-> 명시적으로 지정하지 않으면 public이 기본적으로 적용된다.class MyClass { public fun greet() { ..
개요프로젝트를 진행하면서 Type을 일반 정수형이 아닌 알기 편하게 하기 위해 주로 enum class로 정의해왔었는데, 얘를들어 선수, 심판, 감독에 대한 Type을 나누려고 할때enum class Type{ player, referee, coach} 이런식으로 나눴던 기억이 있는데 이번에 enum class에 대한 내용을 한번 정리해보려고 한다. 1. Enum 클래스란?Enum(열거형) 클래스는 상수(constant) 집합을  표현하는 특수한 클래스이다.상수를 하나의 타입으로 정의해 코드의 가독성을 높이고, 실수를 방지할 수 있다.enum class Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY} 여기서 각각의 ..
개요지금 watchOS를 통해 healthCare Connection API의 데이터를 callback을 통해 비동기로 받아오는 샘플 코드가 있었다. callbackFlow가 뭐지(?) 라고 요리조리 뜯어보는 과정에서 kotlin의 channel이라는 개념이 나왔고, MVI 아키텍처를 적용하는 과정에서도 SideEffect를 처리할 때 Channel을 썼던 코드를 본 기억이 있다. 그래서 먼저 channel 부터 알아야 할 필요성을 느끼게 되었고, 이렇게 정리하게 되었다. 1. Channel이란?Channel은 코루틴 간의 데이터 스트림을 공유할 수 있도록 하는 파이프의 역할을 한다. 또한 데이터를 생산하는측과 소비하는 측 간의 데이터 흐름을 관리해 생산자 - 소비자 패턴을 쉽게 구현할 수 있도록 한다...
개요저번에는 Flow에 대한 간단한 정리 를 했다. flow 정리Flow는 비동기 데이터 스트림을 처리하기 위한 Kotlin의 API로 코루틴은 하나의 suspend 함수에서 값을 하나만 return해주지만 Flow의 경우 지속적으로 나오는 여러 개의 데이터를 처리하기 적합하다. Flow에는 StateFlow와 SharedFlow라는 애들이 있다. 기존에 Flow의 경우 소비자가 구독을 할 때 값을 방출하는 Cold Stream이고, StateFlow와 SharedFlow는 하나 이상의 소비자들이 구독할 수 있고, 모든 구독자에게 같은 데이터를 발행하며, 구독자가 없는 경우에도 데이터를 발행하는 Hot Stream이다. 이제 StateFlow와 SharedFlow에 대해 알아보자 StateFlow 위의 ..
알파카임
'Language/kotlin' 카테고리의 글 목록