Top-K — heap 이 항상 답은 아니다

K번째 큰 값 문제에서 heap 은 반사적인 선택이지만, 전체 배열이 이미 메모리에 있다면 Quick Select 가 평균 더 빠르다. heap 크기 K 유지와 Quick Select 의 메커니즘, 그리고 데이터 형태에 따른 선택 기준.

2026년 7월 9일 · 약 4분 읽기

JPA 영속성 컨텍스트와 Dirty Checking

findById 로 얻은 managed entity 는 save() 없이 변경 감지(dirty checking)로 UPDATE 된다. 엔티티 3상태와 스냅샷 비교 원리, save() 가 실제로 하는 일, 그리고 이 자동 동작의 전제인 영속성 컨텍스트의 수명을 정리한다.

2026년 7월 6일 · 약 3분 읽기

@Transactional 은 프록시를 거쳐야 동작한다

@Transactional 은 붙였다고 동작하지 않는다. Spring 은 bean 을 프록시로 감싸고 프록시를 거친 호출만 가로챈다. private 메소드와 self-invocation 에서 조용히 무시되는 이유, 그리고 @DataJpaTest 의 테스트 트랜잭션이 그 결함을 가리는 착시까지 정리한다.

2026년 7월 5일 · 약 4분 읽기

Union-Find — 두 최적화가 O(N) 을 상수로 만든다

Union-Find 는 그룹마다 root 대표를 두고 같은 그룹인지 판정한다. 최적화 없는 구현은 사슬 트리에서 find 가 O(N) 까지 늘어지지만, path compression 과 union by rank 를 더하면 사실상 상수가 된다.

2026년 7월 4일 · 약 4분 읽기

위상정렬 — 진입차수 0 부터 처리한다

위상정렬의 Kahn BFS 는 진입차수 0 인 노드를 반복해서 꺼내 처리하는 알고리즘이고, 사이클 검출은 별도 로직 없이 따라온다. Kahn BFS 의 메커니즘, Course Schedule 유형, DFS post-order 와의 선택 기준.

2026년 7월 3일 · 약 4분 읽기

슬라이딩 윈도우와 누적합 — 단조성이 도구를 가른다

부분 배열 합 문제는 슬라이딩 윈도우와 누적합 두 도구로 O(N) 환원된다. 입력에 음수가 섞이거나 합이 정확히 K 인 등식 조건이 붙으면 단조성이 깨지고, 도구는 누적합 + 해시 영역으로 넘어간다.

2026년 6월 14일 · 약 4분 읽기

Parametric Search — 답을 이분탐색한다

답을 직접 찾지 못하는 문제도 결정 함수와 단조성이 보이면 답 자체를 이분탐색할 수 있다. parametric search 의 사고 패턴 — 결정 함수 정의, 단조성 방향, lo/hi 정당화.

2026년 6월 13일 · 약 4분 읽기

로드밸런싱 알고리즘 — Round Robin에서 LOR까지

Round Robin과 Least Connection은 오래 로드밸런서의 기본이었다. 그런데 Envoy, AWS ALB 같은 최신 로드밸런서가 핵심 옵션으로 들고 온 알고리즘은 Least Outstanding Requests이고, 그 실용 구현은 Power of Two Choices다. 분배 결정의 단위가 connection에서 request로 세분화된 진화 경로를 정리한다.

2026년 6월 13일 · 약 5분 읽기

quant-investment-platform — 중간 회고

Rust + Python + React 로 개발하고 있는 개인 자동매매 플랫폼의 중간 회고. ETF 리밸런싱과 개별 종목 시그널 매매까지 기능은 갖췄지만, 운영 진입 전에 안전 잠금장치(중지/차단/감지/시뮬레이션)부터 만들게 된 경위 기록.

2026년 5월 31일 · 약 6분 읽기

한국 계좌 유형별 투자 제약

종합·ISA·연금저축·IRP 네 계좌의 핵심 제약(비과세, 세액공제, 위험자산 70% 룰, 해외 직투 가능 여부), 전략-계좌 매핑, 그리고 세후 수익에 미치는 영향.

2026년 5월 13일 · 약 4분 읽기