Pinned[kotlin] 코루틴 내부 최적화 분석 (was optimised out)코틀린의 suspend 함수는 내부 최적화 때문에 디버깅하기 까다로웠다. 이 최적화는 코루틴의 메모리 누수를 방지하기 위한 장치. (버전 1.4.20 에서 추가됨)코틀린 1.8.0 버전 부터는 디버깅 경험 개선을 위해 최적화를 끌 수 있는 옵션을…Feb 11, 20233Feb 11, 20233
[Kotlin] 돌려줘요 staticKotlin 에는 Java 의 static 키워드가 없다. 대신 companion object 라는 친구가 있기에 Java 의 static 처럼 동작해야하는 변수나 메소드가 필요하다면 companion object 블록을 사용해서 그 내부에 선언하면…Jan 51Jan 51
Elasticsearch 는 어떻게 위치 검색도 빠를까일반적으로 공간 데이터 저장을 위한 선택지는 PostgreSQL(PostGIS) 아니면 MongoDB 가 무난한 것으로 알려져있다. 나 또한 당연히 그렇게 알고 있었고, 공간 데이터 저장용으로 이 둘만 적당히 성능 비교 해보고 더 나은쪽으로 선택하려…Nov 10, 2024Nov 10, 2024
Project Valhalla : value class이 글은 State of Valhalla Part 1: The Road to Valhalla 를 나름대로 요약하고 정리한 글입니다. OpenJDK 에서 자바를 개선하고자 꽤 오래 전부터 대대적으로 진행하는 프로젝트가 여러가지가 있습니다. (Loom…Mar 3, 2024Mar 3, 2024
[Kotlin] 코루틴이 Deadlock을 유발하는 경우runBlocking 메소드는 사용에 있어서 크게 주의해야할 점이 하나 있는데, 이는 코틀린 공식 문서에도 언급되어있다. runBlocking 은 코루틴 내부에서 사용하지 말 것.Dec 10, 2023Dec 10, 2023
virtual thread + synchronized = Xvirtual thread 를 synchronized 블록과 함께 사용할 때는 조심하자. synchronized 블록에서 blocking I/O 를 실행할 경우 VT 를 사용했다 하더라도 java thread 가 블락된다.Nov 16, 20234Nov 16, 20234
Structured Concurrency 이해하기코틀린의 코루틴은 코틀린에서 동시성 프로그래밍을 지원하기 위한 도구입니다. 자바에도 동시성 프로그래밍을 위한 편리한 라이브러리가 많죠. 코틀린에선 자바 코드를 문제없이 사용할 수 있으니 동시성 코드를 구현함에 있어서 꼭 코루틴을 써야하는 건…Sep 22, 20232Sep 22, 20232