Study
-
코틀린 스터디 회고Study(종료)/Kotlin 22.09.13 ~ 12.18 2023. 1. 3. 22:11
1장 :강력하고 실용적인 코틀린 ~ 14장 :코틀린 테스팅 까지 스터디 내용 정리를 다 했다. 스터디를 14주 동안 다 빠지지 않았으면 좋았겠지만, 한 주는 사정이 있어서 쉬었고 13주 동안 참여했다. 사실 작성하면서 가장 크게 느낀 점은 글을 작성할 때 어떤 개념이 중요하고 중요하지 않은지에 대해 판단이 안돼서 모든 내용들을 자세히 적으려고 노력했고, 그래서 책의 내용과 별반 다르지 않게 작성한 글들이 주를 이루었다고 생각돼 아쉽다. 그리고 어떤 개념에 대해 설명할 때 내 주관이 들어갔는데 틀린 설명이 될 수도 있다고 생각하니 좀 더 내 생각을 배제하고 작성하게 되었고, 그래서 더 책과 비슷하게 작성한 것 같아 아쉽다. 나는 아직 취업 준비를 하는 개발자의 입장이라 스터디를 하면서 초반에는 내가 프로그..
-
14-3. 코틀린 테스팅 : 픽스쳐와 설정Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 12. 18. 16:28
14장 - 코틀린 테스팅 14-1. 코테스트 명세 14-2. 단언문(assertion) 14-3. 픽스쳐와 설정 14-3. 픽스쳐와 설정 1) 픽스처 제공하기 테스트 픽스처란 실제 테스트를 진행하기 위해 필요한 환경과 자원을 초기화하고 테스트가 끝나면 정리해야 하는 경우를 말한다. 코테스트에서는 TestListener 인터페이스를 구현해 픽스처를 지정할 수 있다. TestListener 인터페이스는 BeforeTestListener 등의 개별 픽스처 인터페이스를 한데 모아둔 리스너이다. package fixture import io.kotest.core.listeners.* import io.kotest.core.spec.Spec import io.kotest.core.spec.materializeAnd..
-
14-2. 코틀린 테스팅 : 단언문(assertion)Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 12. 17. 15:40
14장 - 코틀린 테스팅 14-1. 코테스트 명세 14-2. 단언문(assertion) 14-3. 픽스쳐와 설정 14-2. 단언문 1) 매처 앞에서 사용했던 수신 객체와 인자가 같은지 비교하는 shouldBe는 코테스트 라이브러리가 제공하는 수많은 매처 중 한 가지이다. 매처는 일반 함수 호출이나 중위 연산자 형태로 사용할 수 있는 확장 함수로 정의되며 모든 매처 이름은 shouldBe로 시작한다. 아래 사이트에서 전체 내장 매처 목록을 확인할 수 있다. https://kotest.io/docs/assertions/core-matchers.html 직접 매처를 작성해 테스트 프레임워크를 확장하는 커스텀 매처가 있다. 커스텀 매처를 정의하려면 Matcher 인터페이스를 구현하고 test() 메서드를 오버라..
-
14-1. 코틀린 테스팅 : 코테스트 명세Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 12. 16. 14:37
14장 - 코틀린 테스팅 14-1. 코테스트 명세 14-2. 단언문(assertion) 14-3. 픽스쳐와 설정 사실 혼자 앱을 만들 때는 테스트 케이스를 만들기보다는 심심할 때 마다 내가 만든 앱을 켜서 재대로 동작하는지 확인하고 만약 오류가 난다면 어떤 작업을 헀을 때 어떤 오류가 나는지 확인하고 혼자 내가 작성한 코드를 생각해보며 왜 이런 오류가 나는지 고민해보고 만약 생각이 안난다면 디버그 모드를 통해 실제 데이터의 흐름을 보며 오류의 원인을 파악헀다. 틀린 방법이라고는 생각하지 않지만, 이런 식으로 디버깅을 하면 데이터의 흐름을 break Point를 찍어서 일일히 확인해 봐야 하기도 하고 코드를 다시 한번 분석해야 되기 때문에 시간이 꽤나 오래 걸리는 작업이었다. 그래서 최근에 TDD 얘기가 ..
-
13-4. 동시성 : 자바 동시성 사용하기Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 12. 11. 17:06
13장 - 동시성 13-1. 코루틴 13-2. 코루틴 흐름 제어와 잡 생명 주기 13-3. 동시성 통신 13-4. 자바 동시성 사용하기 13-4. 자바 동시성 사용하기 JVM 플랫폼에서는 JDK가 제공하는 동기화 요소를 활용할 수 있다. 코틀린 표준 라이브러리는 스레드 생성 / 동기화 등 관련 작업을 편하게 도와준다. 1) 스레드 시작하기 범용 스레드를 시작하려면 스레드에서 실행하려는 Runnable 객체에 대응하는 람다와 스레드 프로퍼티들을 지정해서 thread() 함수를 사용하면 된다. ● start : 스레드를 생성하자마자 실행할지 여부(dafault: true) ● isDaemon : 스레드를 데몬 모드로 시작할지 여부(dafault: false) 데몬 모드는 JVM의 종료를 방해하지 않고, 메인..
-
13-3. 동시성 : 동시성 통신Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 12. 11. 15:48
13장 - 동시성 13-1. 코루틴 13-2. 코루틴 흐름 제어와 잡 생명 주기 13-3. 동시성 통신 13-4. 자바 동시성 사용하기 13-3. 동시성 통신 어제인가 친구랑 얘기를 하다가 코루틴 관련 내용이 나왔는데, 코루틴 얘기를 하다가 같은 변수에 동시에 접근하면 어떻게 될까? 라는 얘기를 했다. 그냥 내 개인적인 생각으로는 작업별로 우선순위를 정한 뒤 우선순위 큐에 넣으면 해결되지 않을까? 라는 생각을 했는데, 사실 굉장히 얕게 생각했던 해결 방법이다. 이번 단원에서 이런 내용에 대해 코틀린에서 어떻게 해결하는지 알려주는 것 같다. 이번 단원은 코루틴과 액터 사이에서 동기화나 락을 사용하지 않고도 변경 가능한 상태를 안전하게 공유할 수 있는 데이터 스트림을 제공하는 매커니즘인 채널(channel)..
-
13-2. 동시성 : 코루틴 흐름 제어와 잡 생명 주기Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 12. 10. 15:54
13장 - 동시성 13-1. 코루틴 13-2. 코루틴 흐름 제어와 잡 생명 주기 13-3. 동시성 통신 13-4. 자바 동시성 사용하기 13-2. 코루틴 흐름 제어와 잡 생명 주기 잡은 동시성 작업의 생명 주기를 표현하는 객체이다. 잡을 사용하면 작업 상태를 추적하고 필요할 때 작업을 취소할 수 있다. 잡이 취할 수 있는 상태들에 대해 알아보고, 각 상태가 무엇을 의미하며 하나의 상태에서 다른 상태로 어떻게 전이되는지 알아보자. 활성화 상태는 작업이 시작됐고 아직 완료나 취소로 끝나지 않았다는 뜻 이다. 활성화 상태가 디폴트 상태로, 잡은 생성되자마자 활성화 상태가 된다. 신규 상태의 잡에 대해 start()나 join() 메서드를 호출하면 잡이 시작되면서 활성화 상태가 된다. fun main() { r..
-
13-1. 동시성 : 코루틴Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 12. 9. 15:14
13장 - 동시성(concurrent) 13-1. 코루틴 13-2. 코루틴 흐름 제어와 잡 생명 주기 13-3. 동시성 통신 13-4. 자바 동시성 사용하기 내가 듣기로는 악명이 꽤 높은 기술 중 하나가 코루틴에 대한 내용이다. 저번 스터디때 "코틀린의 코루틴과 자바의 RxJava가 서로 대응되는 기술인가요?" 라는 질문을 했었는데, 대응되는 기술은 아니고, 비슷한 기능이다 라는 답변을 받았었다. 사실 코루틴과 RxJava 모두 어려운 기술이라고 들었고, 최근은 아니지만 6개월정도 전에 안드로이드 앱 개발자 취업 공고를 보면 코루틴 사용 가능자, 동시성에 대한 이해 뭐 이런식의 내용들이 적혀있었던 것으로 기억한다. 그래서 어렵긴 하지만 꼭 배워야 할 내용이라고 생각되고,공부할 때도 좀 더 신경써서 해봐야..