본문 바로가기

✔️ Kotlin5

Inline 함수, 왜 쓸까? 보호되어 있는 글 입니다. 2024. 6. 29.
Coroutine이 취소되는 기본 동작 방식 코루틴의 취소코루틴은 실행 중에 취소 요청에 의해 취소되거나 예외가 발생하여 취소될 수 있습니다.코루틴이 취소되는 것이 중요한 이유는 필요하지 않은 코루틴을 적절하게 취소하여 컴퓨팅 자원을 효율적으로 사용하는 것이 중요하기 때문입니다.그러나 바로 스레드를 죽이는 것은 좋지 않은 해결방법입니다. 스레드에서 활용중이던 리소스 연결을 먼저 해제한 후 취소하는 것이 더 우아한 방법이겠죠? 취소하는 방법코루틴을 취소하는 기본적인 방법은 `cancel` 함수를 사용하는 방법입니다.이 함수를 사용하면 이런 특징을 가지고 있습니다.취소 시점으로부터 첫번째 중단 지점(suspend 함수 사용 지점)부터 취소가 이루어집니다.하위 job이 있는 경우 모두 취소합니다.suspend fun main(): Unit = corou.. 2024. 5. 25.
Coroutine의 개념 이해한대로 정리하기 들어가기 전에코루틴은 코틀린을 접하면서 가장 헷갈렸던 개념 중 하나입니다.그래서 틈틈이 인프런 강의도 보고 이것저것 글도 찾아보며 학습하고 있는데요. 조금씩 학습했던 것들을 정리하며, 더 깊이 남기기 위해 이 글을 작성해보았습니다.혹시나 부족한 부분이 있다면 댓글로 알려주세요 😀아래 개념을 전제하여 작성하였습니다만 이 글에서 다루고 있지는 않습니다.프로세스, 스레드컨텍스트 스위치 context switch동시성, 병렬성메모리 스택영역, 힙영역동기 프로그래밍, 비동기 프로그래밍 Coroutineco는 '협력하는'이라는 의미가 있는 접두사입니다. routine은 컴퓨터 공학에서 이야기하는 루틴입니다. 즉, 협력하는 함수라는 의미입니다.Coroutine은 Kotlin 언어를 개발한 Jetbrain 이 개발자.. 2024. 5. 18.
Kotlin Scope 함수를 어떨 때 쓰면 좋았을까? 보호되어 있는 글 입니다. 2024. 4. 26.
🐛 Bug: 로컬에서 잘 실행되던 Unit Test가 parallel test 실행에서 오류가 났다 : 잠깐🤚 아까 설정했던 Mock을 어떻게 했나요...? 발생 상황 spring boot gradle test kotest, spoke 테스트 SpringBoot 프로젝트의 테스트를 로컬에서 실행했을 때 모든 단위 테스트와 API 테스트가 통과했으나, Github workflow 실행시 갑자기 단위 테스트 중 몇 개가 깨져버렸습니다. 로컬과 origin 코드가 동일한 상황에서 로컬에서는 계속 잘 통과하는 데 무엇이 문제일까 헤매었습니다. 근데 예외코드가 약간 이상합니다. 분명 실패한 테스트는 수정 로직인데, 예외 스택에 삭제 테스트가 함께 포함되어 있습니다. // 예외 로그 중 시그니처가 살짝 수정되어있습니다 com.backend.domain.test.Modify > 수정 > 작성자가 수정할 경우 성공한다 FAILED java.lang.AssertionErro.. 2024. 3. 23.