<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on NineKoo9's story</title><link>https://NineKoo9.github.io/posts/</link><description>Recent content in Posts on NineKoo9's story</description><generator>Hugo -- gohugo.io</generator><language>ko</language><copyright>© 2026 NineKoo9</copyright><lastBuildDate>Sat, 18 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://NineKoo9.github.io/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>왜 NoSQL과 Elasticsearch는 특정 워크로드에서 유리할까? LSM 트리와 I/O까지</title><link>https://NineKoo9.github.io/posts/nosql-elasticsearch-deep-dive/</link><pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/nosql-elasticsearch-deep-dive/</guid><description>NoSQL이 항상 빠른 것은 아니라는 전제에서 출발해, LSM 트리의 쓰기 경로, Elasticsearch의 역색인과 세그먼트, MySQL 전문검색과의 차이, HDD·SSD I/O 패턴까지 원래 구조를 유지해 정리합니다.</description></item><item><title>[Network] L4 vs L7 로드밸런싱 정리 - ALB/NLB, Logstash, Elasticsearch</title><link>https://NineKoo9.github.io/posts/l4-vs-l7-load-balancing/</link><pubDate>Mon, 13 Apr 2026 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/l4-vs-l7-load-balancing/</guid><description>L4와 L7의 기준 차이만이 아니라, TLS 종료가 왜 절대 구분선이 아닌지, Logstash와 Elasticsearch 앞단에서는 왜 보통 L4 또는 단순 분산이 많이 쓰이는지 정리합니다.</description></item><item><title>IP, MAC, ARP, TCP/UDP, NAT/PAT는 실제 통신에서 어떻게 이어질까?</title><link>https://NineKoo9.github.io/posts/network-fundamentals-arp-tcp-udp-nat/</link><pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/network-fundamentals-arp-tcp-udp-nat/</guid><description>IP와 MAC의 역할 차이, ARP 동작, TCP 연결 수립과 종료, UDP 특성, NAT/PAT의 포트 변환 개념을 공식 문서 기준으로 보수적으로 정리합니다.</description></item><item><title>[MySQL] 동시성 제어 정리 — MVCC, 2PL, Locking Read, Next-Key Lock</title><link>https://NineKoo9.github.io/posts/mysql-mvcc-2pl/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/mysql-mvcc-2pl/</guid><description>InnoDB에서 일반 SELECT와 locking read가 어떻게 다르게 동작하는지, REPEATABLE READ와 READ COMMITTED의 차이, phantom과 next-key lock, undo/redo의 역할을 한 번에 정리합니다.</description></item><item><title>GCP Docker 배포 &amp; 운영 가이드</title><link>https://NineKoo9.github.io/posts/gcp-deployment-guide/</link><pubDate>Tue, 31 Mar 2026 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/gcp-deployment-guide/</guid><description>GCP VM에 Docker Compose로 백엔드·프론트엔드·DB·Nginx를 배포하고 HTTPS를 적용하는 실전 가이드</description></item><item><title>[MySQL] 데이터베이스 학습 정리 - 세션, 인덱스, 락, MVCC</title><link>https://NineKoo9.github.io/posts/mysql-database-session-summary/</link><pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/mysql-database-session-summary/</guid><description>클러스터드 인덱스, 보조 인덱스, undo/redo, REPEATABLE READ, READ COMMITTED, MyISAM 차이, wait_timeout, DB 세션과 커넥션 풀까지 한 번에 훑는 MySQL 정리 노트입니다.</description></item><item><title>[RDBMS] JOIN의 드라이빙 테이블과 드리븐 테이블 정리</title><link>https://NineKoo9.github.io/posts/rdbms-join-driving-driven-table/</link><pubDate>Sat, 21 Mar 2026 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/rdbms-join-driving-driven-table/</guid><description>드라이빙 테이블과 드리븐 테이블 개념이 특히 Nested Loop Join에서 왜 중요한지, EXPLAIN으로 어떻게 읽고 DBMS별로 어디까지 제어할 수 있는지 정리합니다.</description></item><item><title>왜 Spring 싱글톤 빈은 무상태여야 할까? 스레드, Entity, @Configuration까지</title><link>https://NineKoo9.github.io/posts/spring-singleton-thread-safety/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/spring-singleton-thread-safety/</guid><description>Spring 싱글톤 빈의 무상태 설계, 지역 변수와 스레드 안전성, Entity와 persistence context, @Configuration의 CGLIB 동작을 한 번에 정리합니다.</description></item><item><title>[OOP] 객체지향 설계: 메시지 패싱과 역할·책임</title><link>https://NineKoo9.github.io/posts/oop-message-passing/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/oop-message-passing/</guid><description>손님과 바리스타 예시를 통해 누가 요청을 시작하는지, 왜 메서드 이름이 수신 객체의 책임을 기준으로 잡히는지, 왜 구체 타입 의존이 결합을 키우기 쉬운지 정리합니다.</description></item><item><title>가상 주소는 어떻게 물리 주소가 될까? MMU, TLB, 페이지 테이블, page fault</title><link>https://NineKoo9.github.io/posts/memory-management-study/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/memory-management-study/</guid><description>MMU와 TLB의 관계, 계층형 페이지 테이블이 필요한 이유, context switch와 TLB 무효화, page fault와 OS 메모리 관리자의 역할을 한 번에 정리합니다.</description></item><item><title>[Network] HTTP, gRPC, 멀티플렉싱 정리 — 무상태성, HTTP/2, Java NIO</title><link>https://NineKoo9.github.io/posts/http-grpc-multiplexing/</link><pubDate>Wed, 25 Feb 2026 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/http-grpc-multiplexing/</guid><description>HTTP의 무상태성과 연결 재사용은 어떻게 다른지, gRPC는 왜 HTTP/2를 쓰는지, HTTP/2 멀티플렉싱과 Java NIO I/O 멀티플렉싱은 무엇이 다른지 한 번에 정리합니다.</description></item><item><title>[Java] Java는 왜 한 번 컴파일하면 여러 OS에서 실행될까? JVM, GC, JIT, JDK/JRE</title><link>https://NineKoo9.github.io/posts/jvm-complete-guide/</link><pubDate>Thu, 19 Feb 2026 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/jvm-complete-guide/</guid><description>Java가 왜 플랫폼 독립성을 얻는지, Python/C와 무엇이 다른지, 현대 JVM에서 GC와 JIT, JDK/JRE 설치 개념을 한 번에 정리합니다.</description></item><item><title>Singleton, 그냥 구현하면 안 되나요?</title><link>https://NineKoo9.github.io/posts/java-singleton-patterns/</link><pubDate>Sat, 14 Feb 2026 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/java-singleton-patterns/</guid><description>멀티스레드 환경에서 Singleton이 왜 깨질 수 있는지, 왜 Holder 패턴이 안전한지, enum과 Spring singleton을 어디까지 같은 개념으로 봐야 하는지 정리합니다.</description></item><item><title>[JPA] 영속성 컨텍스트와 캐시 — Auto Scaling 환경에서 데이터 정합성은 괜찮을까?</title><link>https://NineKoo9.github.io/posts/jpa-cache-autoscaling-consistency/</link><pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/jpa-cache-autoscaling-consistency/</guid><description>Auto Scaling으로 서버가 여러 대일 때 JPA 영속성 컨텍스트와 2차 캐시가 데이터 정합성을 깨뜨리는지, 각 캐시의 범위와 해결 방법을 코드 예시와 함께 정리합니다.</description></item><item><title>[MySQL] InnoDB에서 테이블은 정말 파일 하나로 저장될까? Tablespace, Segment, Extent, Page, Row</title><link>https://NineKoo9.github.io/posts/mysql-innodb-storage-structure/</link><pubDate>Sat, 07 Feb 2026 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/mysql-innodb-storage-structure/</guid><description>InnoDB에서 테이블이 디스크에 어떻게 저장되는지 — File, Segment, Extent, Page, Row 각 계층의 역할과 크기를 정리합니다.</description></item><item><title>[Network] TCP 커넥션은 어떻게 유지되는가 — TCP Keepalive, HTTP Keepalive, HikariCP</title><link>https://NineKoo9.github.io/posts/tcp-connection-keepalive/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/tcp-connection-keepalive/</guid><description>TCP 커넥션은 왜 안 끊기는지, HikariCP는 validation query 없이 어떻게 30분을 버티는지, Nginx/LB의 Keepalive는 뭐가 다른지 정리합니다.</description></item><item><title>Linux 입문자를 위한 핵심 가이드</title><link>https://NineKoo9.github.io/posts/linux-practice/</link><pubDate>Fri, 31 Oct 2025 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/linux-practice/</guid><description>리눅스 파일 시스템, 터미널 명령어, 권한, 프로세스, 네트워크, SSH까지 핵심을 정리한 입문 가이드입니다.</description></item><item><title>JDBC 기초와 트랜잭션 관리</title><link>https://NineKoo9.github.io/posts/jdbc-transaction/</link><pubDate>Sat, 12 Apr 2025 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/jdbc-transaction/</guid><description>JDBC API 개요, DataSource 설정, JdbcTemplate 사용법, @Transactional 트랜잭션 관리와 전파 속성까지 정리합니다.</description></item><item><title>VUser 300명, Tomcat Thread 60개 — 나머지 240개의 요청은 어디로 갔을까?</title><link>https://NineKoo9.github.io/posts/tomcat-nio-connector-vuser-thread-mystery/</link><pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/tomcat-nio-connector-vuser-thread-mystery/</guid><description>Tomcat NIO Connector의 Acceptor-Poller-Worker 구조를 분석하여, 60개 스레드로 300명의 동시 요청을 처리하는 원리를 설명합니다.</description></item><item><title>Spring Boot Tomcat threads.max와 HikariCP maximum-pool-size를 기본으로 설정하면 나타나는 현상</title><link>https://NineKoo9.github.io/posts/tomcat-thread-hikaricp-pool-tuning/</link><pubDate>Wed, 08 Jan 2025 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/tomcat-thread-hikaricp-pool-tuning/</guid><description>Tomcat 스레드 200개와 HikariCP 커넥션 10개의 기본 설정이 성능 병목을 일으키는 원인을 분석하고 최적 설정을 찾은 과정을 정리합니다.</description></item><item><title>Grafana 대시보드 누락(단절?) 현상</title><link>https://NineKoo9.github.io/posts/grafana-dashboard-missing-data/</link><pubDate>Sun, 05 Jan 2025 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/grafana-dashboard-missing-data/</guid><description>성능 테스트 중 Grafana 대시보드에서 데이터가 누락되는 현상의 원인과 해결 방법을 정리합니다.</description></item><item><title>MySQL 전문 검색의 한계, Elasticsearch 도입으로 검색 API 성능 개선하기</title><link>https://NineKoo9.github.io/posts/mysql-fulltext-to-elasticsearch-performance/</link><pubDate>Sun, 22 Dec 2024 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/mysql-fulltext-to-elasticsearch-performance/</guid><description>MySQL FullText Search의 한계를 분석하고 Elasticsearch를 도입하여 검색 API 성능을 개선한 과정을 정리합니다.</description></item><item><title>[MySQL] Left Join에서 Subquery로 변경 후 쿼리 성능 30배 향상하기</title><link>https://NineKoo9.github.io/posts/mysql-left-join-to-subquery-optimization/</link><pubDate>Thu, 31 Oct 2024 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/mysql-left-join-to-subquery-optimization/</guid><description>MySQL 전문 검색 API의 응답 시간을 6.85초에서 84ms로, Left Join을 Subquery로 변경하여 약 30배 향상한 과정을 정리합니다.</description></item><item><title>NCP(Naver Cloud Platform) 를 이용한 인프라 구성하기 2편. Jenkins와 SourceDeploy을 이용한 CI/CD와 무중단 배포 구성</title><link>https://NineKoo9.github.io/posts/ncp-infra-jenkins-cicd-sourcedeploy/</link><pubDate>Wed, 23 Oct 2024 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/ncp-infra-jenkins-cicd-sourcedeploy/</guid><description>NCP에서 Jenkins 서버를 구축하고 SourceDeploy를 연동하여 CI/CD 파이프라인과 무중단 배포를 구성하는 방법을 정리합니다.</description></item><item><title>NCP(Naver Cloud Platform) 를 이용한 인프라 구성하기 1편. Auto Scaling과 Load Balancer 구성</title><link>https://NineKoo9.github.io/posts/ncp-infra-auto-scaling-load-balancer/</link><pubDate>Wed, 25 Sep 2024 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/ncp-infra-auto-scaling-load-balancer/</guid><description>NCP에서 Auto Scaling과 Load Balancer를 구성하여 CI/CD와 무중단 배포 인프라를 구축하는 과정을 정리합니다.</description></item><item><title>[H2 Database] JSON 컬럼에 대한 Converter 에러 상황</title><link>https://NineKoo9.github.io/posts/h2-json-column-converter-error/</link><pubDate>Wed, 21 Aug 2024 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/h2-json-column-converter-error/</guid><description>H2와 MySQL의 JSON 타입 매핑 차이(byte[] vs String)로 인한 Converter 에러 원인과 해결 방법을 정리합니다.</description></item><item><title>[Spring] 애플리케이션의 원자성과 트랜잭션의 원자성은 다르다 (Feat. @Transactional)</title><link>https://NineKoo9.github.io/posts/spring-transactional-atomicity/</link><pubDate>Thu, 01 Aug 2024 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/spring-transactional-atomicity/</guid><description>애플리케이션 레벨의 원자성과 DB 트랜잭션의 원자성 차이를 @Transactional을 통해 분석하고, 동시성 문제 해결 방법을 다룹니다.</description></item><item><title>[JPA] @OneToOne 에 지연 로딩을 적용했지만, 왜 지연 로딩이 안되고 즉시 로딩이 되는 걸까요?</title><link>https://NineKoo9.github.io/posts/jpa-onetoone-lazy-loading-issue/</link><pubDate>Tue, 23 Jul 2024 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/jpa-onetoone-lazy-loading-issue/</guid><description>JPA @OneToOne 관계에서 지연 로딩이 동작하지 않고 즉시 로딩되는 원인을 프록시 메커니즘을 통해 분석합니다.</description></item><item><title>[Spring] DTO와 Entity에 @Getter, @Setter, @RequiredArgsConstructor, @NoArgsConstructor 뭘 써야 할까?</title><link>https://NineKoo9.github.io/posts/lombok-annotations-dto-entity/</link><pubDate>Thu, 02 May 2024 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/lombok-annotations-dto-entity/</guid><description>DTO와 Entity의 역할 차이에 따라 Lombok 어노테이션(@Getter, @Setter, @NoArgsConstructor, @RequiredArgsConstructor)을 어떻게 선택해야 하는지 코드 예시와 함께 정리합니다.</description></item><item><title>macOS에서 MySQL 실행할 때 `brew services`와 `mysql.server` 차이 정리</title><link>https://NineKoo9.github.io/posts/mysql-mac-commands/</link><pubDate>Sun, 18 Feb 2024 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/mysql-mac-commands/</guid><description>macOS에서 MySQL을 실행할 때 &lt;code&gt;brew services&lt;/code&gt;와 &lt;code&gt;mysql.server&lt;/code&gt;가 어떻게 다른지, 어떤 상황에서 무엇을 쓰면 되는지 정리합니다.</description></item><item><title>Gradle이란 무엇일까? 역할 정리</title><link>https://NineKoo9.github.io/posts/gradle-explained/</link><pubDate>Sun, 03 Dec 2023 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/gradle-explained/</guid><description>프로젝트 세팅 중 헷갈렸던 Gradle의 역할과 Spring Boot, QueryDSL 설정에서 Gradle 버전을 같이 확인해야 하는 이유를 정리합니다.</description></item><item><title>IntelliJ 단축키 정리 (macOS 기준)</title><link>https://NineKoo9.github.io/posts/intellij-shortcuts/</link><pubDate>Thu, 02 Nov 2023 00:00:00 +0000</pubDate><guid>https://NineKoo9.github.io/posts/intellij-shortcuts/</guid><description>macOS 기준 IntelliJ IDEA 필수 단축키 모음 — 탐색, 편집, 리팩토링, 검색, 테스트, Live Template까지 한눈에 정리</description></item></channel></rss>