본문 바로가기
[Kotlin] 자료구조 : Hash, Tree, Binary Search Tree, Heap, Priority Queue package com.samclarke.android.util // playHash() import java.security.MessageDigest // playHash() import java.security.DigestException // playHash() import java.util.* // playPriorityQueue() fun main() { println("Hello kotlin.....") // playHash() // playTree() // playBST() // playHeap() // playPriorityQueue() } private fun playHash() { /** * Hash : 해쉬 * 해쉬란, 해쉬 함수를 통해 매핑된 고정된 길이의 데이터를 의미. * * Ha.. 2023. 7. 18.
[Kotlin] 자료구조 : Stack, Queue, Deque, Array, ArrayList, LinkedList import java.util.* fun main() { println("Hello kotlin.....") // playStack() // playQueue() // playDeque() // playArray() // playArrayList() // playLinkedList() } private fun playStack() { /** * 스택 : Stack * LIFO(Last In First Out) : 목록의 끝에서만 접근, 접근이 제한적임. * * [시간복잡도] * - 접근, 검색 O(n) 처음 index 부터 접근 * - 추가, 삭제 O(1) 마지막 index에 추가, 삭제 * * [메소드] * - push() [.] stack의 최상단에 item을 올림. * - pop() [.] stac.. 2023. 6. 16.
Kotlin의 Coroutine, 코루틴 #1 Co-Routine, Co(접/함께, 동시에) 코틀린의 코루틴은 무엇인지, 그리고 왜 사용되는지 알아보겠습니다. 안드로이드 가이드 문서를 살펴보면 비동기 프로그래밍을 하는 경우, Coroutine을 사용하도록 권장하고 있습니다. Kotlin Document : Coroutine Wikipedia Document : Coroutine 공식문서에서는 suspendable computations라는 표현을 통하여 Coroutine에 대한 설명을 시작합니다. 중단시킬 수 있는 계산 정도로 해석하면 좋을 것 같은데, 이 표현 자체가 비동기 프로그래밍을 가장 적절하게 표현할 수 있다는 생각이 듭니다. 상기 그림과 같이 코루틴은 프로세스의 시작 이후 프로세스가 중단되었다가 그 이후 중단된 그 시점에 다시 재개될 수 .. 2023. 1. 31.
2부 코드설계 > 3장 재사용성 2부 코드설계 > 3장 재사용성 1. 책에서 기억하고 싶은 내용 knowledge를 반복하여 사용하지말라. - 모든 것은 변화하고, 우리는 이에 대비해야 합니다. 변화할 때 가장 큰 적은 knowledge가 반복되어 있는 부분입니다. - knowledge의 반복은 프로젝트의 확장성(scalable)을 막고, 쉽게 깨지게(fragile)하게 만듭니다. 다행히도 개벌자는 knowledge 반복을 줄일 수 있는 도구와 기능을 사옹할 수 있습니다. - 여러종류의 추상화를 표현할 수 있는 솔루션. (변화로부터 코드 보호하려면 추상화를 사용하라) - 단일 책임 원칙이란 '클래스를 변경하는 이유는 단 한 가지여야 한다'라는 의미이다 - 서로 다른 곳에서 사용하는 knowledge는 독립적으로 변경할 가능성이 많습나다.. 2022. 7. 27.
728x90
반응형