<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>sGOM</title><description>개발하며 겪은 문제와 공부한 개념을 남깁니다</description><link>https://sgom.github.io/</link><language>ko</language><item><title>리팩토링의 경계 — 무엇까지가 리팩토링인가</title><link>https://sgom.github.io/posts/refactoring-basics/</link><guid isPermaLink="true">https://sgom.github.io/posts/refactoring-basics/</guid><description>동작을 바꾸면 리팩토링이 아니다. 인접한 작업들과 갈라놓고, 좋은 리팩토링의 판단 기준을 정리한다</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>실행계획 노드가 나타나는 조건 — 스캔·조인·정렬 예시로 확인</title><link>https://sgom.github.io/posts/query-plan-node-triggers/</link><guid isPermaLink="true">https://sgom.github.io/posts/query-plan-node-triggers/</guid><description>Seq Scan이 Hash Join으로, Nested Loop이 Merge Join으로 바뀌는 조건을 실제 EXPLAIN 결과로 확인한다</description><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate></item><item><title>JVM GC 파고들기 — 컬렉터마다 다르게 도는 이유</title><link>https://sgom.github.io/posts/jvm-gc/</link><guid isPermaLink="true">https://sgom.github.io/posts/jvm-gc/</guid><description>weak generational hypothesis 하나로는 설명 안 되는 컬렉터별 동작 차이를, 같은 메모리 압박 상황에서 Serial·Parallel·G1의 실제 GC 로그로 비교해 확인한다</description><pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate></item><item><title>코틀린 코루틴 기본 개념 정리</title><link>https://sgom.github.io/posts/kotlin-coroutine-basics/</link><guid isPermaLink="true">https://sgom.github.io/posts/kotlin-coroutine-basics/</guid><description>코루틴이 스레드와 어떻게 다른지, suspend 함수와 CoroutineScope·Job·Dispatcher가 하는 역할을 표와 예시로 정리한다.</description><pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate></item><item><title>코틀린 suspend 함수는 스레드 없이 어떻게 중단하고 재개하는가</title><link>https://sgom.github.io/posts/kotlin-coroutine-basics-deep-dive/</link><guid isPermaLink="true">https://sgom.github.io/posts/kotlin-coroutine-basics-deep-dive/</guid><description>suspend 함수가 컴파일 시점에 상태 머신으로 변환되는 과정을 바이트코드로 직접 확인하고, 콜백 기반 API 위에서 스레드를 블로킹하지 않고 중단·재개되는 동작을 재현한다.</description><pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate></item><item><title>계층 구조를 부모 참조로 저장하는 Adjacency List</title><link>https://sgom.github.io/posts/adjacency-list/</link><guid isPermaLink="true">https://sgom.github.io/posts/adjacency-list/</guid><description>각 행이 자신의 parent_id만 저장하는 가장 기본적인 계층 구조 저장 방식과, 재귀 조회가 필요한 이유·비용을 정리한다</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate></item><item><title>계층 구조를 저장하는 Closure Table</title><link>https://sgom.github.io/posts/closure-table/</link><guid isPermaLink="true">https://sgom.github.io/posts/closure-table/</guid><description>부모-자식 컬럼만으로는 재귀 조회가 필요한 계층 구조를, 조상-자손 관계를 미리 계산해 저장하는 Closure Table로 다루는 방법을 정리한다</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate></item><item><title>JVM 기본개념 — 클래스 로딩부터 메모리 구조, 실행 엔진까지</title><link>https://sgom.github.io/posts/jvm-basics/</link><guid isPermaLink="true">https://sgom.github.io/posts/jvm-basics/</guid><description>자바 프로그램이 실행되는 과정을 클래스 로딩, 런타임 메모리 영역, 실행 엔진 세 부분으로 정리한다</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Kotlin List.contains를 Set으로 바꾸면 빨라지는 이유</title><link>https://sgom.github.io/posts/kotlin-list-contains-vs-set-contains/</link><guid isPermaLink="true">https://sgom.github.io/posts/kotlin-list-contains-vs-set-contains/</guid><description>리스트 원소 포함 여부를 반복 확인할 때 Set으로 미리 바꾸는 것과 그냥 List로 쓰는 것을 벤치마크로 비교하고, 차이의 근거를 stdlib 소스에서 찾는다</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate></item><item><title>계층 구조를 숫자 구간으로 저장하는 Nested Set</title><link>https://sgom.github.io/posts/nested-set/</link><guid isPermaLink="true">https://sgom.github.io/posts/nested-set/</guid><description>트리를 깊이 우선으로 순회해 매긴 left/right 번호로 계층을 표현하는 Nested Set의 동작 방식과 실무 활용 예시를 정리한다</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate></item><item><title>계층 구조를 문자열로 저장하는 Path Enumeration</title><link>https://sgom.github.io/posts/path-enumeration/</link><guid isPermaLink="true">https://sgom.github.io/posts/path-enumeration/</guid><description>루트부터 현재 노드까지의 경로를 문자열에 이어붙여 저장하는 Path Enumeration의 동작 방식과 실무 활용 예시를 정리한다</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate></item><item><title>힙(Heap) — 배열 하나로 우선순위를 유지하는 원리</title><link>https://sgom.github.io/posts/heap-basics/</link><guid isPermaLink="true">https://sgom.github.io/posts/heap-basics/</guid><description>min-heap을 배열로 표현하는 방식과 push·pop이 sift-up·sift-down으로 힙 속성을 지키는 과정을 정리한다</description><pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Kotlin 애노테이션 use-site target</title><link>https://sgom.github.io/posts/kotlin-annotation-use-site-target/</link><guid isPermaLink="true">https://sgom.github.io/posts/kotlin-annotation-use-site-target/</guid><description>Kotlin 프로퍼티에 애노테이션을 붙일 때 field·get·set·param 중 어디로 갈지 정하는 use-site target을 표로 정리한다</description><pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Kotlin 프로퍼티가 여러 JVM 요소로 컴파일되는 이유</title><link>https://sgom.github.io/posts/kotlin-annotation-use-site-target-deep-dive/</link><guid isPermaLink="true">https://sgom.github.io/posts/kotlin-annotation-use-site-target-deep-dive/</guid><description>use-site target이 왜 필요한지 실제 바이트코드를 javap로 확인한다</description><pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate></item><item><title>격리 수준과 세 가지 이상 현상</title><link>https://sgom.github.io/posts/isolation-levels-and-anomalies/</link><guid isPermaLink="true">https://sgom.github.io/posts/isolation-levels-and-anomalies/</guid><description>SQL 표준이 정의한 4단계 격리 수준과 각 단계가 허용하는 이상 현상을 정리한다</description><pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate></item><item><title>행 추정치 1이 조인 플랜을 뒤집는 과정</title><link>https://sgom.github.io/posts/planner-row-estimation/</link><guid isPermaLink="true">https://sgom.github.io/posts/planner-row-estimation/</guid><description>통계에 없는 값의 선택도가 0이 되고, 1로 clamp된 추정치가 Nested Loop을 부르기까지</description><pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate></item><item><title>실행계획 읽기 — 스캔, 조인, rows와 loops</title><link>https://sgom.github.io/posts/query-plan-basics/</link><guid isPermaLink="true">https://sgom.github.io/posts/query-plan-basics/</guid><description>EXPLAIN 출력에서 무엇을 먼저 보고 무엇을 무시해도 되는지 정리한다</description><pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate></item><item><title>배포할 때마다 목록 조회가 120초 걸렸다</title><link>https://sgom.github.io/posts/slow-query-after-restart/</link><guid isPermaLink="true">https://sgom.github.io/posts/slow-query-after-restart/</guid><description>기동 시 대량 적재가 auto-analyze 기준에 미달해 통계가 갱신되지 않았다</description><pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Spring AOP 프록시</title><link>https://sgom.github.io/posts/spring-aop-proxy/</link><guid isPermaLink="true">https://sgom.github.io/posts/spring-aop-proxy/</guid><description>스프링이 주입하는 것은 원본 객체가 아니라 프록시다. 그 구조와 제약을 정리한다</description><pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate></item><item><title>트랜잭션과 ACID</title><link>https://sgom.github.io/posts/transaction-and-acid/</link><guid isPermaLink="true">https://sgom.github.io/posts/transaction-and-acid/</guid><description>트랜잭션이 무엇을 보장하고 무엇을 보장하지 않는지 네 속성으로 정리한다</description><pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate></item><item><title>@Transactional 전파 속성 7가지</title><link>https://sgom.github.io/posts/transaction-propagation-types/</link><guid isPermaLink="true">https://sgom.github.io/posts/transaction-propagation-types/</guid><description>진행 중인 트랜잭션을 만났을 때의 동작 7가지와 기본 롤백 규칙을 정리한다</description><pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate></item><item><title>같은 클래스 안에서 부른 @Transactional은 왜 동작하지 않을까</title><link>https://sgom.github.io/posts/transactional-self-invocation/</link><guid isPermaLink="true">https://sgom.github.io/posts/transactional-self-invocation/</guid><description>Spring AOP의 프록시 기반 동작을 테스트로 확인했다</description><pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate></item><item><title>예외를 잡았는데 왜 롤백될까</title><link>https://sgom.github.io/posts/transactional-propagation/</link><guid isPermaLink="true">https://sgom.github.io/posts/transactional-propagation/</guid><description>@Transactional 전파 속성과 rollback-only 표시를 테스트로 확인했다</description><pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate></item><item><title>트랜잭션 격리 수준은 DBMS마다 다르게 동작한다</title><link>https://sgom.github.io/posts/transaction-isolation-levels/</link><guid isPermaLink="true">https://sgom.github.io/posts/transaction-isolation-levels/</guid><description>표준 정의만 외우면 실무에서 틀리는 이유와, 테스트로 직접 확인한 기록</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item></channel></rss>