💡 중단 함수를 사용하는 코루틴에서 취소를 통해서 자원 낭비와 메모리 누수를 줄일 수 있는 방법에 대하여 학습하였습니다.cancellation중단 함수를 사용하는 몇몇 클래스와 라이브러리는 항상 취소를 지원합니다.단순히 스레드를 죽이면, 연결을 닫고 자원을 해제하는 기회가 없기 때문에 최악의 취소 방법이 됩니다.개발자들이 상태가 액티브한지 확인하지 않아도 되고, 간단하고 안전한 방식으로 취소할 수 있도록 코루틴은 이를 지원하고 있습니다.기본적인 취소Job 인터페이스는 cancel 메서드를 통해서 취소를 지원합니다.cancel()이를 호출한 코루틴은 첫 번째 중단점에서 잡을 끝냅니다.잡이 자식을 가지고 있따면 그들 또한 취소되며, 부모는 영향을 받지 않습니다.잡이 취소되면, 취소된 잡은 새로운 코루틴의 ..
💡 코루틴에서 중단이 어떻게 동작하는지 학습하였습니다. 중단은 어떻게 작동할까?중단 함수는 코틀린 코루틴의 핵심이 됩니다.코루틴을 중단한다는 것은 실행을 중간에 멈추는 것을 의미합니다.체크포인트에 게임을 저장하고 다른 게임을 동작하는 것과 같으며, 사용자와 컴퓨터는 각각 다른 일에 집중할 수 있습니다.게임을 재개할 경우 저장한 체크포인터에서 실행한다면 이전에 종료했던 순간부터 게임을 즐길 수 있습니다.코루틴은 중단되었을 때 Continuation 객체를 반환합니다.스레드와의 차이점은?스레드는 저장이 불가능하고, 멈추는 것만 가능합니다.코루틴이 Continuation 객체를 반환하여 멈췄던 곳에서 다시 코루틴을 시작하지만 스레드는 저장이 불가능합니다.코루틴은 또한 중단했을 때 어떤 자원도 사용하지 않으며..
💡 시퀸스 빌더에 대해 알아보고, 중단이 왜 필요한지 학습하였습니다.시퀀스 빌더코틀린의 시퀀스는 List나 Set과 같은 컬렉션이랑 비슷한 개념이지만, 필요한 값을 하나씩 계산하는 지연(lazy) 처리를 합니다.요구되는 연산을 최소한으로 수행무한정이 될 가능성 존재메모리 사용이 효율적!코틀린에서는 시퀸스보다 더 좋은 개념인 flow builder를 제공하지만, 이해를 위해서 시퀀스의 개념을 먼저 학습하였습니다.순차적 계산과 반환val seq = sequence { yield(1) yield(2) yield(3)}fun main() { for (num in seq) { print(num) }}위 코드에 사용된 sequence 함수는 DSL 코드입니다.인자로 수신 객..