그나저나 메모
개발하다 궁금했던 것들을 직접 확인하고 기록합니다.
백엔드, 데이터베이스 그리고 가끔은 그 밖의 관심사를 다룹니다.
최근 글
모든 글 보기 →-
집계용 중간 결과 테이블을 Global Temporary Table로 바꾸기
집계 중간 결과를 일반 테이블 하나에 담고 매 실행 앞에서 DELETE로 비우면 비용이 세 군데서 나옵니다. Global Temporary Table이 그중 무엇을 없애고, redo 감소는 왜 조건부인지 Oracle 12c 문서를 근거로 정리합니다.
-
Spring과 Jackson에서 필드 부재와 명시적 null 구분하기
수정 API에서 필드에 null을 넣는 것과 필드를 아예 빼는 것은 다릅니다. 서버가 필드 부재와 명시적 null을 구분하지 못하면 null 규칙을 정할 수 없습니다. Jackson의 동작과 패치 본문 형식을 로컬에서 실행해 확인했습니다.
-
Claude Code에서 Kotlin LSP가 참조를 못 찾을 때: Gradle 프로젝트 루트 확인하기
Kotlin LSP 프로세스가 실행 중이어도 Gradle 프로젝트 루트가 틀리면 findReferences가 다른 파일의 사용처는 찾지 못하고 선언 위치만 반환할 수 있습니다. 서브디렉토리 프로젝트에서 원인을 구분하고 workspaceFolder로 교정하는 방법을 정리합니다.
-
버스 노선 공간 데이터에서 정류장 간 구간 형상 만들기 (Linear Referencing)
버스 노선의 선형과 정류장 좌표로 정류장 간 구간 형상을 만드는 과정을 설명합니다. Linear Referencing으로 정류장을 Measure로 바꾸고 두 Measure 사이를 추출합니다.
-
억울한 EXISTS, 정말 IN보다 느릴까?
EXISTS를 IN으로 바꾸면 빨라진다는 통념을 따져봅니다. 성능 개선과 원인 입증은 다른 문제라는 것, 그리고 동등한 서브쿼리 IN과 EXISTS가 현대 MySQL에서 같은 최적화 후보가 되는 것을 로컬 실측으로 확인합니다.