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분 읽기

Spring WebFlux 기본 — 논블로킹 I/O와 리액티브 스택

Spring MVC는 요청당 스레드를 할당한다. I/O 대기가 길어지면 스레드가 묶인다. WebFlux는 이벤트 루프 기반 논블로킹 모델로 이 문제를 해결한다. MVC와의 구조적 차이, Reactor 패턴, 선택 기준을 정리한다.

2024년 3월 25일 · 약 3분 읽기

GDG Korea Android 11 끝장개발대회 — YouTube Together

GDG Korea Android 11 끝장개발대회에 단독으로 참가해 서버와 앱을 3주 만에 완성한 기록.

2020년 8월 29일 · 약 2분 읽기