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