<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://yoonxjoong.github.io/</id><title>yoonxjoong's dev blog</title><subtitle>Spring, JPA, MSA, 자료구조/알고리즘, Kubernetes 등 백엔드 개발과 관련해 공부한 내용을 정리하는 개발 블로그입니다.</subtitle> <updated>2026-08-14T09:47:28+09:00</updated> <author> <name>yoonxjoong</name> <uri>https://yoonxjoong.github.io/</uri> </author><link rel="self" type="application/atom+xml" href="https://yoonxjoong.github.io/feed.xml"/><link rel="alternate" type="text/html" hreflang="ko-KR" href="https://yoonxjoong.github.io/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 yoonxjoong </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>스프링 트랜잭션 개념 정리 — 전파, 격리 수준, 그리고 프록시가 실제로 하는 일</title><link href="https://yoonxjoong.github.io/posts/spring-transaction-propagation-isolation/" rel="alternate" type="text/html" title="스프링 트랜잭션 개념 정리 — 전파, 격리 수준, 그리고 프록시가 실제로 하는 일" /><published>2026-08-14T09:00:00+09:00</published> <updated>2026-08-14T09:00:00+09:00</updated> <id>https://yoonxjoong.github.io/posts/spring-transaction-propagation-isolation/</id> <content type="text/html" src="https://yoonxjoong.github.io/posts/spring-transaction-propagation-isolation/" /> <author> <name>yoonxjoong</name> </author> <category term="Backend" /> <summary>@Transactional 하나로 커밋/롤백을 대신 처리해주는 스프링 트랜잭션의 동작 원리를 개념 위주로 정리했습니다. 전파(Propagation) 7가지, 격리 수준(Isolation)과 3대 이상현상, 롤백 규칙, 그리고 AOP 프록시 기반으로 동작하기 때문에 생기는 self-invocation 함정까지 다룹니다. 실습 검증은 다음 글로 이어집니다.</summary> </entry> <entry><title>JPA N+1, fetch join / EntityGraph / DTO projection / batch size 뭐가 다른가</title><link href="https://yoonxjoong.github.io/posts/jpa-n-plus-one-fetch-strategies/" rel="alternate" type="text/html" title="JPA N+1, fetch join / EntityGraph / DTO projection / batch size 뭐가 다른가" /><published>2026-08-11T10:00:00+09:00</published> <updated>2026-08-11T10:00:00+09:00</updated> <id>https://yoonxjoong.github.io/posts/jpa-n-plus-one-fetch-strategies/</id> <content type="text/html" src="https://yoonxjoong.github.io/posts/jpa-n-plus-one-fetch-strategies/" /> <author> <name>yoonxjoong</name> </author> <category term="Backend" /> <summary>Author-Book 1:N 연관관계로 N+1을 직접 재현하고, fetch join·EntityGraph·DTO projection·default_batch_fetch_size 네 가지 해결책을 같은 데이터로 비교했습니다. 컬렉션 두 개 이상 조회, 페이징까지 얹었을 때 각 방법이 어디서 깨지는지도 정리한 학습 노트입니다.</summary> </entry> <entry><title>Gemini API 연동 전에 WebFlux로 먼저 만들어본 테스트 프로젝트</title><link href="https://yoonxjoong.github.io/posts/webflux-nonblocking-gemini-api/" rel="alternate" type="text/html" title="Gemini API 연동 전에 WebFlux로 먼저 만들어본 테스트 프로젝트" /><published>2026-08-05T10:00:00+09:00</published> <updated>2026-08-05T13:35:50+09:00</updated> <id>https://yoonxjoong.github.io/posts/webflux-nonblocking-gemini-api/</id> <content type="text/html" src="https://yoonxjoong.github.io/posts/webflux-nonblocking-gemini-api/" /> <author> <name>yoonxjoong</name> </author> <category term="Backend" /> <category term="Spring" /> <summary>회사에 이미지 기반 상품 정보 추출 기능(Gemini Vision API 연동)을 실제로 붙이기 전에, WebFlux가 이 문제를 감당할 수 있을지 미리 검증해보려고 만든 테스트 프로젝트 기록입니다. Mono가 실제로 뭘 의미하는지, WebClient/TimeLimiter/CircuitBreaker/Bulkhead를 어떤 순서로 엮어야 하는지, Netty 이벤트루프 내부 구조, 그리고 CircuitBreaker 상태 전이를 actuator로 직접 확인한 기록까지 담았습니다.</summary> </entry> <entry><title>카프카 파티션과 컨슈머 그룹 실전 — 병렬 처리, 리밸런싱, 순서 보장, 장애 복구</title><link href="https://yoonxjoong.github.io/posts/kafka-partition-consumer-group/" rel="alternate" type="text/html" title="카프카 파티션과 컨슈머 그룹 실전 — 병렬 처리, 리밸런싱, 순서 보장, 장애 복구" /><published>2026-08-03T11:00:00+09:00</published> <updated>2026-08-03T11:00:00+09:00</updated> <id>https://yoonxjoong.github.io/posts/kafka-partition-consumer-group/</id> <content type="text/html" src="https://yoonxjoong.github.io/posts/kafka-partition-consumer-group/" /> <author> <name>yoonxjoong</name> </author> <category term="Backend" /> <summary>파티션 개수가 왜 병렬 처리량을 결정하는지, 컨슈머 그룹이 파티션을 어떻게 자동 배분하고 리밸런싱하는지, 메시지 순서는 언제 보장되고 언제 안 되는지, 컨슈머가 죽었다 살아나면 어떻게 되는지를 직접 확인해본 실습 노트입니다.</summary> </entry> <entry><title>카프카 클러스터 구축 실습 — Zookeeper + 브로커 3대</title><link href="https://yoonxjoong.github.io/posts/kafka-cluster-setup/" rel="alternate" type="text/html" title="카프카 클러스터 구축 실습 — Zookeeper + 브로커 3대" /><published>2026-08-03T10:00:00+09:00</published> <updated>2026-08-03T10:00:00+09:00</updated> <id>https://yoonxjoong.github.io/posts/kafka-cluster-setup/</id> <content type="text/html" src="https://yoonxjoong.github.io/posts/kafka-cluster-setup/" /> <author> <name>yoonxjoong</name> </author> <category term="Backend" /> <summary>docker-compose로 Zookeeper 기반 카프카 브로커 3대를 직접 띄우고, 토픽을 만들어 Leader/Replicas/ISR이 실제로 어떻게 배치되는지, 프로듀서/컨슈머 처리량은 어느 정도 나오는지 확인해본 실습 노트입니다.</summary> </entry> </feed>
