본문 바로가기

코틀린

(13)
코틀린 StateFlow 및 SharedFlow 스트림 콜드 스트림인 Flow와 달리 StateFlow와 SharedFlow는 핫 스트림이다. Flow에서 콜드 스트림이란 collect 시점과 상관 없이 emit 된 모든 값들을 받아오는 것 을 말한다. 핫 스트림이란 collect한 시점 이후 발생한 emit 값만 받아 오는 것을 말한다. ex) lateinit var flowTest : Flow val stateFlowTest = MutableStateFlow(0) val sharedFlowTest = MutableSharedFlow(0) someScope.launch { launch { flowTest = flow { for (i in 0 until 10) { emit(i) delay(1000) } } } launch { for (i in 0 un..
코루틴 채널 개념 및 예제 개념 채널은 코루틴을 연결해 주는 파이프 라인이다. 송신측 채널에서 send를 해서 데이터를 전해줄 수 있고 수신측 채널에서는 receive를 통해 데이터를 받을 수 있다. ex) fun main() { runBlocking { val channel = Channel() launch { for (i in 0 until 10) { channel.send(i) } } repeat(10) { println(channel.receive()) } println("end") } } 출력) 0 1 2 3 4 5 6 7 8 9 end 기본 사용법 send나 receive가 suspension point이고 서로에게 의존적이기 때문에 같은 코루틴 내에서 사용할 경우 무한 대기가 이루어 짐으로 코루틴 내에서 launch ..
코틀린 코루틴 개념 및 기본 사용 용도 정의 1. 개념 기본 개념은 하나의 스레드가 하나의 작업을 하는 것 과는 달리 하나의 스레드가 하나의 작업만을 사용하는게 아니라(delay등의 일시정지등을 통해) 유기적으로 하나 혹은 다른 작업들을 실행 ex) 네트워크 작업등을 처리하는데 있어서 스레드가 서버의 응답을 마냥 기다리기만 하는게 아니라 기다리는 동안 다른 작업을 처리함 2. Coroutine Context CoroutineContext는 일련의 다음 요소를 사용하여 코루틴의 동작을 정의합니다. Job: 코루틴의 수명 주기를 제어한다. CoroutineDispatcher: 적절한 스레드에 작업을 전달한다. (2.1 디스패처) CoroutineName: 디버깅에 유용한 코루틴의 이름이다. (CoroutineName을 설정하여 디버깅 등에 이용가능 e..
JVM JVM이란 특정 플랫폼에 구애받지 않고 자바 소스로 개발한 프로그램을 컴파일하여 만들어지는 바이트코드를 실행시키는 가상머신을 말한다. 가비지컬렉터 동적으로 할당된 메모리(heap)의 영역 중 사용하지 않는 영역을 해제하는 것을 말한다. 메소드가 실행되면 스택과 힙(큐)에 데이터가 저장되는데 오브젝트의 경우 stack에 주소값이 저장되고 힙에 데이터가 저장된다.(스택: 주소값 저장, 힙(큐): 데이터 저장) 스택에 저장된 테이터들은 메스드가 끝나는 동시에 사라지고 이때 힙에는 데이터가 남아있지만 스택에서 주소값 정보가 사라진다. 가비지컬렉터는 이때 스택에 데이터가(주소값) 가리키는 정보가 큐에 없을 경우 데이트를 삭제하는 것 을 말한다. 가비지 컬렉터 과정 1. 가비지 컬렉터가 Stack의 모든 변수를 스..
primitive wrapper 변수는 타입이 있으며 타입에 따라 기본형(primitive)과 참조형(refrence) 2가지로 나눌 수 있다. 기본형은 실제 data를 저장하고 참조형은 아래와 같이 data값이 저장되어 있는 주소를 값으로 가지고 이를 wrapper 클래스라고 부른다. public final class Integer extends Number implements Comparable { ... private int value; ... } 기본형과 참조형 기본형(primitive) 참조형(wrapper) boolean Boolean char Char byte Byte short Short int Integer long Long folat Float double Double 코틀린은 기본형과 참조형 타입을 따로 구분하지 않..