Kotlin

    [Kotlin Coroutine] 생명주기를 인식하여 안전하게 코루틴 사용하기

    Kotlin 코루틴은 비동기 코드를 작성할 수 있게 하는 API를 제공한다. Kotlin 코루틴을 사용하면 코루틴이 실행되어야 하는 시기를 관리하는 데 도움이 되는 CoroutineScope 를 정의할 수 있다. 수명 주기 인식 코루틴 범위 ViewModelScope ViewModelScope 는 앱의 각 ViewModel 을 대상으로 정의한다. 이 범위에서 시작된 모든 코루틴은 ViewModel 이 삭제되면 자동으로 취소된다. ViewModel 이 활성 상태인 경우엠나 실행해야 할 작업이 있을 때 유용하다. class MyViewModel: ViewModel() { init { viewModelScope.launch { // Coroutine that will be canceled when the Vi..

    [Kotlin] HashSet

    HashSet이란? Set은 중복을 허용하지 않는 자료구조로, 순서대로 입력되지 않고 일정하게 유지되지 않는게 특징이다. HashSet은 null 요소도 허용한다. 가장 큰 특징은 중복을 허용하지 않는 것. 중복을 걸러내는 과정 HashSet은 객체를 저장하기 전에 먼저 객체의 hashCode() 메소드를 호출하여 해시코드를 얻어 낸 다음 저장되어 있는 개체들의 해시 코드와 비교한 뒤 같은 해시 코드가 있다면 equals() 메소드로 두 객체를 비교하여 같은 객체라면 중복 저장을 하지 않는다. 예제 fun main() { val hashSet = hashSetOf(1,2,3,4,5) hashSet.add(-1) hashSet.add(0) hashSet.add(-3) print(hashSet) // [-1..