<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>정성훈</title>
    <link>https://jeongseonghun.com</link>
    <description>정체되지 않고 성장하는 개발자가 되기 위해 경험과 배움을 기록하는 정성훈의 개발 블로그입니다.</description>
    <language>ko</language>
    <atom:link href="https://jeongseonghun.com/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Handy로 말해서 입력하고, AI의 답은 글로 읽기</title>
      <link>https://jeongseonghun.com/posts/handy-voice-to-text</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/handy-voice-to-text</guid>
      <pubDate>Fri, 09 Oct 2026 15:00:00 GMT</pubDate>
      <description>ChatGPT 보이스 모드의 대안이 된 로컬 모델 기반 입력 앱</description>
      <category>AI</category>
    </item>
    <item>
      <title>AI로 앱을 만들었다. 나는 무엇을 배웠을까?</title>
      <link>https://jeongseonghun.com/posts/baeuja-ai-design</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/baeuja-ai-design</guid>
      <pubDate>Thu, 08 Oct 2026 15:00:00 GMT</pubDate>
      <description>배우자를 만들며 돌아본 내가 한 일과 개발자로서 남은 질문</description>
      <category>AI</category>
      <category>Career</category>
    </item>
    <item>
      <title>AI가 작성한 코드를 어디까지 믿을 수 있을까?</title>
      <link>https://jeongseonghun.com/posts/ai-agent-code-trust</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/ai-agent-code-trust</guid>
      <pubDate>Sat, 03 Oct 2026 15:00:00 GMT</pubDate>
      <description>사람의 리뷰 없이 병합되는 AI PR을 보며 생긴 질문에서 출발해 Lauren Tan의 에이전트 개발 방식을 살펴보다</description>
      <category>AI</category>
    </item>
    <item>
      <title>6개월의 인턴을 마치고, 다시 기록을 시작하며</title>
      <link>https://jeongseonghun.com/posts/restart-blog-after-intern</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/restart-blog-after-intern</guid>
      <pubDate>Fri, 18 Sep 2026 15:00:00 GMT</pubDate>
      <description>무신사 인턴 경험을 통해 배운 일의 방식과 오너십</description>
      <category>Career</category>
    </item>
    <item>
      <title>Offset vs Cursor 페이지네이션 with DB 관점</title>
      <link>https://jeongseonghun.com/posts/offset-vs-cursor-pagination</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/offset-vs-cursor-pagination</guid>
      <pubDate>Fri, 20 Feb 2026 15:00:00 GMT</pubDate>
      <description>대용량 데이터 환경에서 성능 최적화를 위한 페이징 전략</description>
      <category>DB</category>
    </item>
    <item>
      <title>Race Condition 해결을 위한 로컬 락 관리 구현체 분석</title>
      <link>https://jeongseonghun.com/posts/Dev-LocalLockManager</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Dev-LocalLockManager</guid>
      <pubDate>Tue, 17 Feb 2026 15:00:00 GMT</pubDate>
      <description>수강 신청 서비스를 만들어야 할 때 서버 엔지니어 입장에서 깊이 고려해야되는 &quot;동시성(Concurrency)&quot; 이슈가 발생하는 상황을 생각해보자. 예를 들어, 인기 있는 운영제체 전공 수업의 남은 자리가 딱 1자리라고 가정하자. 이때, 수강 신청 기간 시작과 동시에…</description>
      <category>Java</category>
      <category>Architecture</category>
    </item>
    <item>
      <title>[정리] Redis Cluster</title>
      <link>https://jeongseonghun.com/posts/Study-redis-cluster</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Study-redis-cluster</guid>
      <pubDate>Mon, 16 Feb 2026 15:00:00 GMT</pubDate>
      <description>센티널과 다르게 고가용성을 실현하는 클러스터 기능 알아보자</description>
      <category>Redis</category>
    </item>
    <item>
      <title>JMeter 소스 코드 뜯어보기: 왜 로컬 테스트에서 Secure 쿠키 전송이 실패할까?</title>
      <link>https://jeongseonghun.com/posts/dev-jmeter-cookiemanager</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/dev-jmeter-cookiemanager</guid>
      <pubDate>Sat, 14 Feb 2026 15:00:00 GMT</pubDate>
      <description>JMeter의 CookieManager가 Secure 쿠키를 거부하는 이유와 해결 과정</description>
      <category>Java</category>
      <category>Test</category>
    </item>
    <item>
      <title>TTL로 인한 Cache Stampede</title>
      <link>https://jeongseonghun.com/posts/Study-prevent-cache-stampede-strategies</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Study-prevent-cache-stampede-strategies</guid>
      <pubDate>Tue, 10 Feb 2026 15:00:00 GMT</pubDate>
      <description>Cache Stampede 원인과 해결방법 탐구</description>
      <category>Redis</category>
    </item>
    <item>
      <title>[정리] Redis Cache</title>
      <link>https://jeongseonghun.com/posts/Study-redis-cache</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Study-redis-cache</guid>
      <pubDate>Sat, 07 Feb 2026 15:00:00 GMT</pubDate>
      <description>Redis Cache 정리하기</description>
      <category>Redis</category>
    </item>
    <item>
      <title>[정리] Redis Sentinel</title>
      <link>https://jeongseonghun.com/posts/Study-redis-sentinel</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Study-redis-sentinel</guid>
      <pubDate>Tue, 03 Feb 2026 15:00:00 GMT</pubDate>
      <description>Redis Sentinel 정리하기</description>
      <category>Redis</category>
    </item>
    <item>
      <title>MVCC: Undo Log와 Read View로 데이터의 시점 관리하기</title>
      <link>https://jeongseonghun.com/posts/Study-understanding-mysql-mvcc-mechanism</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Study-understanding-mysql-mvcc-mechanism</guid>
      <pubDate>Tue, 27 Jan 2026 15:00:00 GMT</pubDate>
      <description>REPEATABLE READ에서 Phantom Read가 발생하는 예외 케이스까지 한 번에 정리</description>
      <category>DB</category>
    </item>
    <item>
      <title>[정리] Spring IoC Container (3): IoC Container</title>
      <link>https://jeongseonghun.com/posts/Study-spring-overview-ioc-container</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Study-spring-overview-ioc-container</guid>
      <pubDate>Thu, 22 Jan 2026 15:00:00 GMT</pubDate>
      <description>About IoC Container</description>
      <category>Spring</category>
      <category>Java</category>
    </item>
    <item>
      <title>왜 논블로킹과 멀티플렉싱은 항상 세트로 등장할까?</title>
      <link>https://jeongseonghun.com/posts/Study-understanding-io-multiplexing-and-non-blocking-synergy</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Study-understanding-io-multiplexing-and-non-blocking-synergy</guid>
      <pubDate>Wed, 21 Jan 2026 15:00:00 GMT</pubDate>
      <description>Non-Blocking과 Multiplexing 조합 탐구해보자</description>
      <category>Architecture</category>
    </item>
    <item>
      <title>멀티모듈과 DDD로 캡슐화와 응집도 높이기</title>
      <link>https://jeongseonghun.com/posts/Dev-refactoring-mycodingtest-with-ddd-and-multi-module</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Dev-refactoring-mycodingtest-with-ddd-and-multi-module</guid>
      <pubDate>Sun, 18 Jan 2026 15:00:00 GMT</pubDate>
      <description>사이드 프로젝트 리팩토링 기록</description>
      <category>Java</category>
      <category>Architecture</category>
    </item>
    <item>
      <title>[정리] Spring IoC Container (2): IoC Container와 Bean 개요</title>
      <link>https://jeongseonghun.com/posts/Study-spring-intro-ioc-container-and-bean</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Study-spring-intro-ioc-container-and-bean</guid>
      <pubDate>Thu, 15 Jan 2026 15:00:00 GMT</pubDate>
      <description>IoC Container와 Beans 알아보기</description>
      <category>Spring</category>
      <category>Java</category>
    </item>
    <item>
      <title>[정리] Spring IoC Container (1): Java기반 컨테이너 구성 @Bean과 @Configuration</title>
      <link>https://jeongseonghun.com/posts/Study-spring-java-based-container-config</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Study-spring-java-based-container-config</guid>
      <pubDate>Mon, 12 Jan 2026 15:00:00 GMT</pubDate>
      <description>코드로 스프링 빈 설정하기</description>
      <category>Spring</category>
      <category>Java</category>
    </item>
    <item>
      <title>DB 인덱스의 B+Tree 자료구조</title>
      <link>https://jeongseonghun.com/posts/Study-B-plus-Tree</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Study-B-plus-Tree</guid>
      <pubDate>Wed, 07 Jan 2026 15:00:00 GMT</pubDate>
      <description>범위검색과 풀스캔에 최적화된 B+Tree</description>
      <category>DB</category>
    </item>
    <item>
      <title>DB Connection Pool</title>
      <link>https://jeongseonghun.com/posts/Study-connection-pool-db-and-http</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Study-connection-pool-db-and-http</guid>
      <pubDate>Mon, 05 Jan 2026 15:00:00 GMT</pubDate>
      <description>데이터베이스 커넥션 풀 정리</description>
      <category>DB</category>
    </item>
    <item>
      <title>B-Tree 자료구조</title>
      <link>https://jeongseonghun.com/posts/Study-B-Tree</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Study-B-Tree</guid>
      <pubDate>Sat, 03 Jan 2026 15:00:00 GMT</pubDate>
      <description>B-Tree 확실히 정리해보자</description>
      <category>DB</category>
    </item>
    <item>
      <title>EXPLAIN의 access_type을 시간복잡도로 이해하기</title>
      <link>https://jeongseonghun.com/posts/Lab-db-access-type-with-time-complexity</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Lab-db-access-type-with-time-complexity</guid>
      <pubDate>Thu, 01 Jan 2026 15:00:00 GMT</pubDate>
      <description>access type을 시간복잡도 관점에서 이해한다</description>
      <category>DB</category>
    </item>
    <item>
      <title>2025 회고</title>
      <link>https://jeongseonghun.com/posts/2025-final-review</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/2025-final-review</guid>
      <pubDate>Wed, 31 Dec 2025 15:00:00 GMT</pubDate>
      <description>2025년을 마무리하며...</description>
      <category>Career</category>
    </item>
    <item>
      <title>[정리] DBMS 인덱스 기본</title>
      <link>https://jeongseonghun.com/posts/Study-mysql-index-basic</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Study-mysql-index-basic</guid>
      <pubDate>Mon, 29 Dec 2025 15:00:00 GMT</pubDate>
      <description>RealMySQL을 읽고 나만의 언어로 정리</description>
      <category>DB</category>
    </item>
    <item>
      <title>unwrap() 한 줄은 어떻게 Cloudflare를 멈췄을까</title>
      <link>https://jeongseonghun.com/posts/Lab-cloudflare-why-down</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Lab-cloudflare-why-down</guid>
      <pubDate>Sun, 28 Dec 2025 15:00:00 GMT</pubDate>
      <description>#시스템 장애 #Rust #Cloudflare #단일지점장애</description>
      <category>Infra</category>
    </item>
    <item>
      <title>Java InvocationHandler와 Proxy</title>
      <link>https://jeongseonghun.com/posts/Study-java-InvocationHandler-with-proxy</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Study-java-InvocationHandler-with-proxy</guid>
      <pubDate>Sat, 27 Dec 2025 15:00:00 GMT</pubDate>
      <description>#Java #InvocationHandler #Interface Proxy</description>
      <category>Java</category>
    </item>
    <item>
      <title>[정리] MySQL의 격리 수준</title>
      <link>https://jeongseonghun.com/posts/Study-mysql-isolation-level</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Study-mysql-isolation-level</guid>
      <pubDate>Wed, 24 Dec 2025 15:00:00 GMT</pubDate>
      <description>#Isolation Level #Concurrency #MySQL #DB</description>
      <category>DB</category>
    </item>
    <item>
      <title>[인프런] 토비의 스프링 부트 - 이해와 원리</title>
      <link>https://jeongseonghun.com/posts/Study-inflearn-toby-spring-boot</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Study-inflearn-toby-spring-boot</guid>
      <pubDate>Wed, 24 Dec 2025 15:00:00 GMT</pubDate>
      <description>&quot;토비의 스프링 부트 - 이해와 원리&quot; 수강 후 나만의 정리와 후기</description>
      <category>Java</category>
      <category>Spring</category>
    </item>
    <item>
      <title>[정리] InnoDB 스토리지 엔진 잠금</title>
      <link>https://jeongseonghun.com/posts/Study-mysql-innodb-storage-engine-lock</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Study-mysql-innodb-storage-engine-lock</guid>
      <pubDate>Tue, 23 Dec 2025 15:00:00 GMT</pubDate>
      <description>#InnoDB #Lock #MySQL #DB</description>
      <category>DB</category>
    </item>
    <item>
      <title>[정리] 트랜잭션과 MySQL 엔진 잠금</title>
      <link>https://jeongseonghun.com/posts/Study-mysql-engine-lock-and-transaction</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Study-mysql-engine-lock-and-transaction</guid>
      <pubDate>Tue, 23 Dec 2025 15:00:00 GMT</pubDate>
      <description>#Transaction #Lock #MySQL #DB</description>
      <category>DB</category>
    </item>
    <item>
      <title>[정리] RAG(Retrieval-Augmented Generation)</title>
      <link>https://jeongseonghun.com/posts/Study-RAG</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Study-RAG</guid>
      <pubDate>Mon, 22 Dec 2025 15:00:00 GMT</pubDate>
      <description>#Token #Embedding #VectorDB</description>
      <category>AI</category>
    </item>
    <item>
      <title>Spring 의존성을 격리한 다국어 처리 클래스 설계</title>
      <link>https://jeongseonghun.com/posts/spring-i18n-decoupling-strategy</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/spring-i18n-decoupling-strategy</guid>
      <pubDate>Sat, 13 Dec 2025 15:00:00 GMT</pubDate>
      <description>Spring MessageSource로 촉발된 고민</description>
      <category>Java</category>
      <category>Spring</category>
    </item>
    <item>
      <title>최근 5건 조회에 3초가 걸린 이유: 풀 스캔은 왜 발생했을까?</title>
      <link>https://jeongseonghun.com/posts/Dev-Log-analyze-db-full-scan</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Dev-Log-analyze-db-full-scan</guid>
      <pubDate>Fri, 12 Dec 2025 15:00:00 GMT</pubDate>
      <description>ROW_NUMBER()와 실행 계획으로 파헤친 DB 성능 병목</description>
      <category>DB</category>
    </item>
    <item>
      <title>간단한 Mock 서버로 얻은 긍정적 경험</title>
      <link>https://jeongseonghun.com/posts/simple-mock-server-retrospect</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/simple-mock-server-retrospect</guid>
      <pubDate>Thu, 04 Dec 2025 15:00:00 GMT</pubDate>
      <description>내가 필요로하는건 남들도 필요로 하며, 이를 직접 만들어보는 것은 꽤나 가치가 있다.</description>
      <category>Test</category>
    </item>
    <item>
      <title>비동기 도입 시 발생하는 데이터 불일치 상황을 개선하기 위한 방법</title>
      <link>https://jeongseonghun.com/posts/async-problem</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/async-problem</guid>
      <pubDate>Sat, 29 Nov 2025 15:00:00 GMT</pubDate>
      <description>비동기 처리로 인한 데이터 불일치 문제</description>
      <category>Architecture</category>
    </item>
    <item>
      <title>중앙 세션 저장소, 왜 RDB가 아닌 Redis일까?</title>
      <link>https://jeongseonghun.com/posts/why-use-redis-for-session-management</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/why-use-redis-for-session-management</guid>
      <pubDate>Sat, 08 Nov 2025 15:00:00 GMT</pubDate>
      <description>경쟁과 기다림을 없앤 Redis의 내부 동작 원리 탐구</description>
      <category>Redis</category>
    </item>
    <item>
      <title>CORS를 정책 위반 없이 해결한 방법: Proxy 패턴 적용기</title>
      <link>https://jeongseonghun.com/posts/bypass-cors-error-with-proxy</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/bypass-cors-error-with-proxy</guid>
      <pubDate>Mon, 03 Nov 2025 15:00:00 GMT</pubDate>
      <description>흔히 마주치는 CORS를 실무에서 만나 해결하는 과정에서 얻은 인사이트 공유</description>
      <category>Web</category>
    </item>
    <item>
      <title>25년 상반기 회고</title>
      <link>https://jeongseonghun.com/posts/2025-first-half-review</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/2025-first-half-review</guid>
      <pubDate>Sat, 14 Jun 2025 15:00:00 GMT</pubDate>
      <description>올해 상반기 회고 실시. 회고를 통해 더 나은 나를 만들어 보자</description>
      <category>Career</category>
    </item>
    <item>
      <title>Test Coverage 100% 달성 후기</title>
      <link>https://jeongseonghun.com/posts/Review-test-coverage-100-percent</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/Review-test-coverage-100-percent</guid>
      <pubDate>Tue, 04 Mar 2025 15:00:00 GMT</pubDate>
      <description>테스트의 양이 아닌 질을 고민하자</description>
      <category>Test</category>
    </item>
    <item>
      <title>DB Lock이 걸렸는데 조회가 되는 현상(MVCC)</title>
      <link>https://jeongseonghun.com/posts/db-mvcc</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/db-mvcc</guid>
      <pubDate>Mon, 17 Feb 2025 15:00:00 GMT</pubDate>
      <description>MVCC 공부</description>
      <category>DB</category>
    </item>
    <item>
      <title>AWS S3를 활용한 비정형 데이터 관리</title>
      <link>https://jeongseonghun.com/posts/aws-s3-data-management</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/aws-s3-data-management</guid>
      <pubDate>Wed, 12 Feb 2025 15:00:00 GMT</pubDate>
      <description>서버 부담을 덜기 위해 도입한 S3 도입 후기</description>
      <category>Infra</category>
    </item>
    <item>
      <title>당황스러웠던 JVM의 정수 캐싱</title>
      <link>https://jeongseonghun.com/posts/JVM-integer-1byte-cache</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/JVM-integer-1byte-cache</guid>
      <pubDate>Mon, 11 Nov 2024 15:00:00 GMT</pubDate>
      <description>잘 작동되던 API가 memberId를 바꾸었더니 에러가 발생한다. 그 원인분석과 테스트를 해본다.</description>
      <category>Java</category>
    </item>
    <item>
      <title>Index를 활용한 조회 성능 개선</title>
      <link>https://jeongseonghun.com/posts/db-index-read-optimize</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/db-index-read-optimize</guid>
      <pubDate>Fri, 25 Oct 2024 15:00:00 GMT</pubDate>
      <description>인덱스, 복합 인덱스 활용하면 조회가 얼마나 빨라지는가?</description>
      <category>DB</category>
    </item>
    <item>
      <title>squash merge로 인한 git conflict 해결</title>
      <link>https://jeongseonghun.com/posts/github-squash-merge</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/github-squash-merge</guid>
      <pubDate>Sat, 28 Sep 2024 15:00:00 GMT</pubDate>
      <description>카테캠 프로젝트에서 마주친 가장 긴장된 순간</description>
      <category>Git</category>
    </item>
    <item>
      <title>카카오 테크 캠퍼스 아이디어톤 참여 후기</title>
      <link>https://jeongseonghun.com/posts/ideaton-kakao-tech-campus-2024</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/ideaton-kakao-tech-campus-2024</guid>
      <pubDate>Sat, 24 Aug 2024 15:00:00 GMT</pubDate>
      <description>여름에 참여한 아이디어톤 후기</description>
      <category>Career</category>
    </item>
    <item>
      <title>Twilio 서비스로 수신 번호를 서버로 전달하기</title>
      <link>https://jeongseonghun.com/posts/twilio-feature</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/twilio-feature</guid>
      <pubDate>Sat, 17 Aug 2024 15:00:00 GMT</pubDate>
      <description>API로 부재중 전화번호 서버에 로깅하는 기능 구현한 내용을 정리</description>
      <category>Web</category>
    </item>
    <item>
      <title>깃허브 활용한 협업 방법</title>
      <link>https://jeongseonghun.com/posts/how-to-cowork-with-github</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/how-to-cowork-with-github</guid>
      <pubDate>Sun, 11 Aug 2024 15:00:00 GMT</pubDate>
      <description>카테캠 팀원들에게 협업 방법들을 설명하기 위한 자료</description>
      <category>Git</category>
    </item>
    <item>
      <title>깃허브 협업을 위한 레포지토리 준비</title>
      <link>https://jeongseonghun.com/posts/how-to-set-github-for-cowork</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/how-to-set-github-for-cowork</guid>
      <pubDate>Sat, 10 Aug 2024 15:00:00 GMT</pubDate>
      <description>협업 준비위한 세팅 방법을 기록</description>
      <category>Git</category>
    </item>
    <item>
      <title>preflight request와 CORS 에러</title>
      <link>https://jeongseonghun.com/posts/preflight-request-CORS-Error</link>
      <guid isPermaLink="true">https://jeongseonghun.com/posts/preflight-request-CORS-Error</guid>
      <pubDate>Mon, 29 Jul 2024 15:00:00 GMT</pubDate>
      <description>CORS error 해결 과정 정리</description>
      <category>Web</category>
    </item>
  </channel>
</rss>
