<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>글 on CharmingGroot</title>
    <link>https://charminggroot.github.io/posts/</link>
    <description>Recent content in 글 on CharmingGroot</description>
    <generator>Hugo</generator>
    <language>ko-kr</language>
    <lastBuildDate>Fri, 19 Jun 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://charminggroot.github.io/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>096. Flue — 자율 에이전트를 배포 서버로 컴파일하는 하니스 프레임워크</title>
      <link>https://charminggroot.github.io/posts/096-flue/</link>
      <pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/096-flue/</guid>
      <description>Flue는 agents/·workflows/ 디렉터리의 TypeScript 프로젝트를 배포 가능한 서버 아티팩트로 컴파일하는 에이전트 하니스다. &amp;lsquo;Not another SDK&amp;rsquo;를 표방하며 모델에 컨텍스트·도구·샌드박스를 주고 자율 실행시킨다. 다만 이름과 달리 격리 샌드박스를 직접 구현하지 않고, 에이전트 루프도 외부 패키지에 위임한다. 무엇을 제공하고 무엇을 위임하는지, 샌드박스 세 모드의 실제 격리 수준, durable execution까지 코드 레벨로 분해한다.</description>
    </item>
    <item>
      <title>097. zvec — SQLite처럼 임베드되는 in-process 벡터 데이터베이스</title>
      <link>https://charminggroot.github.io/posts/097-zvec/</link>
      <pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/097-zvec/</guid>
      <description>zvec은 애플리케이션 프로세스 안에 박혀 동작하는 임베디드 벡터 DB다. 서버 없이 라이브러리로 dense/sparse 벡터 검색, 전문 검색, 스칼라 필터를 하나의 쿼리로 결합한다. Faiss의 임베디드성과 Milvus의 DB 기능성 사이를 메운다. in-process가 무슨 뜻인지, 6종 인덱스와 HNSW 검색 코드 흐름, VNNI int8 커널 같은 성능 설계, 그리고 RaBitQ·DiskANN이 리눅스 전용이라는 함정까지 분해한다.</description>
    </item>
    <item>
      <title>098. opencode — 벤더 중립 오픈소스 코딩 에이전트의 클라이언트-서버 구조</title>
      <link>https://charminggroot.github.io/posts/098-opencode/</link>
      <pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/098-opencode/</guid>
      <description>opencode는 터미널에서 도는 오픈소스 코딩 에이전트다. 단일 LLM 벤더에 종속되지 않고 20개 이상 provider를 지원하는 것이 핵심이고, 에이전트를 로컬 HTTP 서버로 만들어 TUI·데스크톱·웹·CI가 같은 API를 공유한다. Claude Code의 UX 패턴을 차용하되 벤더 종속을 깬다. 에이전트 루프, LLM 추상화 두 층, 권한 모델, 그리고 V1/V2 이중 런타임 부채까지 코드 레벨로 분해한다.</description>
    </item>
    <item>
      <title>보안-05. 정적 분석·AI 보안 기초 — 웹 취약점·OWASP LLM·YARA·Taint</title>
      <link>https://charminggroot.github.io/posts/static-analysis-ai-security/</link>
      <pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/static-analysis-ai-security/</guid>
      <description>SkillSpector 같은 보안 스캐너에 기여하거나 코드를 읽을 때 필요한 개념들. 웹 취약점 기초, OWASP LLM Top 10, 정적 분석(regex·AST·YARA·taint tracking)을 개발자 시각에서 정리한다.</description>
    </item>
    <item>
      <title>보안-06. SQL Injection</title>
      <link>https://charminggroot.github.io/posts/sql-injection/</link>
      <pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/sql-injection/</guid>
      <description>PayloadsAllTheThings SQL Injection 챕터 전문 번역.</description>
    </item>
    <item>
      <title>보안-00. 런타임 보안 생태계 — 기초 개념 전체 지도</title>
      <link>https://charminggroot.github.io/posts/runtime-security-ecosystem/</link>
      <pubDate>Mon, 15 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/runtime-security-ecosystem/</guid>
      <description>Falco·Sigma·Coraza를 이해하기 위한 런타임 보안 생태계 전체 그림. WAF/IDS/SIEM/SOAR의 역할 구분, 탐지-차단-대응 3계층, MITRE ATT&amp;amp;CK 기초.</description>
    </item>
    <item>
      <title>보안-01. Falco 기초 — 아키텍처, 드라이버, 룰 문법</title>
      <link>https://charminggroot.github.io/posts/falco-basics/</link>
      <pubDate>Mon, 15 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/falco-basics/</guid>
      <description>Falco의 내부 아키텍처(커널 드라이버 → 파서 → 룰 엔진 → 출력), 3가지 드라이버(kmod/legacy BPF/modern BPF), 룰 문법 전체(rule/macro/list/exception), 주요 필드 레퍼런스.</description>
    </item>
    <item>
      <title>보안-02. Falco 심화 — K8s 통합, 플러그인, falcosidekick, 커스텀 룰 전략</title>
      <link>https://charminggroot.github.io/posts/falco-advanced/</link>
      <pubDate>Mon, 15 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/falco-advanced/</guid>
      <description>Falco K8s Audit 통합, falcosidekick 출력 팬아웃, 플러그인 시스템, 룰 튜닝 전략, 성능 최적화, SOAR 연동 패턴.</description>
    </item>
    <item>
      <title>보안-03. Sigma 기초 — 룰 문법, logsource, detection 완전 분해</title>
      <link>https://charminggroot.github.io/posts/sigma-basics/</link>
      <pubDate>Mon, 15 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/sigma-basics/</guid>
      <description>Sigma 룰의 모든 필드를 하나씩 분해. logsource의 3축(product/category/service), detection의 selection+modifier+condition, 상관관계(correlation) 기초.</description>
    </item>
    <item>
      <title>보안-04. Sigma 심화 — pySigma, 백엔드, 파이프라인, 룰 작성 전략</title>
      <link>https://charminggroot.github.io/posts/sigma-advanced/</link>
      <pubDate>Mon, 15 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/sigma-advanced/</guid>
      <description>pySigma 내부 구조(Backend/Pipeline/Transformation), 커스텀 백엔드 작성, 룰 품질 기준, 위협 헌팅과 기본 탐지의 차이, MITRE ATT&amp;amp;CK 커버리지 매핑 실전.</description>
    </item>
    <item>
      <title>063. k8s 부하 테스트 — k6, Grafana, 비동기 구조</title>
      <link>https://charminggroot.github.io/posts/063-k8s-load-testing/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/063-k8s-load-testing/</guid>
      <description>k8s 환경에서 부하 테스트는 애플리케이션 성능과 인프라 반응을 동시에 검증한다. k6를 Pod으로 실행해 클러스터 내부에서 트래픽을 발생시키고, Prometheus와 Grafana로 실시간 메트릭을 수집한다. 동기 API뿐 아니라 큐 기반 비동기 구조도 측정 포인트를 나누면 테스트 가능하다.</description>
    </item>
    <item>
      <title>064. Stable Diffusion — 확산 모델의 원리부터 파인튜닝까지</title>
      <link>https://charminggroot.github.io/posts/064-stable-diffusion/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/064-stable-diffusion/</guid>
      <description>Stable Diffusion은 텍스트 프롬프트로 이미지를 생성하는 잠재 확산 모델이다. 노이즈를 점진적으로 제거하는 역방향 확산 과정을 학습하고, VAE로 픽셀 대신 잠재 공간에서 연산해 효율을 높인다. 원리, 아키텍처, 샘플링 방법, LoRA/ControlNet 같은 파인튜닝 기법, SD1.x부터 FLUX까지의 발전 과정을 다룬다.</description>
    </item>
    <item>
      <title>065. Attention Is All You Need — 트랜스포머 논문 핵심 정리</title>
      <link>https://charminggroot.github.io/posts/065-attention-is-all-you-need/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/065-attention-is-all-you-need/</guid>
      <description>2017년 Google Brain의 Vaswani 등이 발표한 논문. RNN 없이 어텐션만으로 시퀀스를 처리하는 트랜스포머 아키텍처를 제안했다. 병렬 연산이 가능하고 장거리 의존성을 직접 포착한다는 두 가지 특성이 이후 모든 대형 언어 모델의 기반이 됐다.</description>
    </item>
    <item>
      <title>066. Sentence Transformers — 문장 임베딩과 의미 검색</title>
      <link>https://charminggroot.github.io/posts/066-sentence-transformers/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/066-sentence-transformers/</guid>
      <description>Sentence Transformers(SBERT)는 문장을 고정 크기 벡터로 변환해 의미적 유사도를 빠르게 계산할 수 있게 한다. 2019년 Reimers와 Gurevych가 제안했으며, BERT의 O(n²) 연산 문제를 샴 네트워크 구조로 해결했다. RAG, 의미 검색, 문장 클러스터링의 기반 기술이다.</description>
    </item>
    <item>
      <title>067. AI 모델 로드맵 — 발전 순서 목록</title>
      <link>https://charminggroot.github.io/posts/067-ai-model-roadmap/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/067-ai-model-roadmap/</guid>
      <description>딥러닝 모델들의 발표 연도 기준 학습 로드맵. CNN 발전사부터 멀티모달, 추론 최적화, 에이전트까지 순서대로 정리한다.</description>
    </item>
    <item>
      <title>068. AlexNet → ResNet — CNN과 딥러닝 르네상스</title>
      <link>https://charminggroot.github.io/posts/068-cnn-alexnet-resnet/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/068-cnn-alexnet-resnet/</guid>
      <description>2012년 AlexNet이 ImageNet 대회에서 압도적인 성능을 보이며 딥러닝 시대를 열었다. 이후 VGGNet, GoogLeNet, ResNet으로 이어지는 CNN 발전사를 다룬다. 각 모델이 해결하려 했던 문제와 핵심 기여를 중심으로 설명한다.</description>
    </item>
    <item>
      <title>069. YOLO 계보 — 실시간 객체 탐지의 발전</title>
      <link>https://charminggroot.github.io/posts/069-yolo/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/069-yolo/</guid>
      <description>YOLO(You Only Look Once)는 2015년 Joseph Redmon이 제안한 단일 패스 객체 탐지 모델이다. 이미지를 한 번만 보고 모든 객체의 위치와 클래스를 동시에 예측한다. 이전 방식 대비 수십 배 빠른 추론 속도로 실시간 탐지를 가능하게 했다. v1부터 현재 v11까지의 발전 흐름을 다룬다.</description>
    </item>
    <item>
      <title>070. Word2Vec / GloVe — 단어 임베딩의 시작</title>
      <link>https://charminggroot.github.io/posts/070-word2vec-glove/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/070-word2vec-glove/</guid>
      <description>Word2Vec(2013)은 단어를 고밀도 벡터로 표현하는 방법을 제안했다. 비슷한 맥락에서 등장하는 단어는 비슷한 벡터를 갖는다는 분포 가설을 기반으로, 신경망으로 단어 간 의미 관계를 학습한다. GloVe는 전체 말뭉치의 동시 출현 통계를 활용해 같은 목표를 다른 방식으로 달성했다.</description>
    </item>
    <item>
      <title>071. 토크나이저 — BPE, WordPiece, SentencePiece</title>
      <link>https://charminggroot.github.io/posts/071-tokenizer/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/071-tokenizer/</guid>
      <description>토크나이저는 텍스트를 모델이 처리할 수 있는 토큰 시퀀스로 변환한다. 단어 단위 분리는 미등록 단어 문제가 있고, 문자 단위는 시퀀스가 너무 길어진다. BPE와 WordPiece는 자주 등장하는 문자 조합을 병합해 두 문제를 동시에 해결하는 서브워드 토크나이저다.</description>
    </item>
    <item>
      <title>072. BERT — 양방향 트랜스포머 인코더</title>
      <link>https://charminggroot.github.io/posts/072-bert/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/072-bert/</guid>
      <description>BERT(2018)는 트랜스포머 인코더를 양방향으로 사전학습한 모델이다. MLM과 NSP 두 가지 태스크로 대규모 텍스트에서 언어 표현을 학습하고, 다운스트림 태스크에 파인튜닝한다. 문맥 의존 임베딩으로 다의어를 처리하고, 이후 NLP 사전학습 모델의 기준이 됐다.</description>
    </item>
    <item>
      <title>073. RoBERTa — BERT 학습 방식 개선</title>
      <link>https://charminggroot.github.io/posts/073-roberta/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/073-roberta/</guid>
      <description>RoBERTa(2019)는 BERT 아키텍처를 바꾸지 않고 학습 방식만 개선해 성능을 크게 높였다. NSP 제거, 더 많은 데이터, 더 큰 배치, 동적 마스킹이 핵심이다. &amp;lsquo;좋은 사전학습 레시피&amp;rsquo;가 아키텍처만큼 중요하다는 것을 보여줬다.</description>
    </item>
    <item>
      <title>074. DETR — 트랜스포머 기반 객체 탐지</title>
      <link>https://charminggroot.github.io/posts/074-detr/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/074-detr/</guid>
      <description>DETR(2020)은 트랜스포머를 객체 탐지에 처음 적용한 모델이다. NMS 같은 수작업 후처리 없이 이미지에서 객체를 End-to-End로 탐지한다. 헝가리안 매칭으로 예측과 정답을 1대1로 연결해 중복 탐지 문제를 해결했다.</description>
    </item>
    <item>
      <title>075. ViT — Vision Transformer</title>
      <link>https://charminggroot.github.io/posts/075-vit/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/075-vit/</guid>
      <description>ViT(2020)는 이미지를 패치로 나눠 트랜스포머에 입력하는 방식으로 CNN 없이 이미지를 처리한다. 충분히 큰 데이터셋으로 학습하면 ResNet을 능가한다. 이후 비전 모델의 패러다임을 CNN에서 트랜스포머로 전환하는 계기가 됐다.</description>
    </item>
    <item>
      <title>076. ColBERT — Late Interaction 검색</title>
      <link>https://charminggroot.github.io/posts/076-colbert/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/076-colbert/</guid>
      <description>ColBERT(2020)는 쿼리와 문서를 각각 토큰 단위 벡터로 인코딩하고, 검색 시 MaxSim 연산으로 유사도를 계산하는 Late Interaction 방식을 제안했다. Bi-Encoder의 속도와 Cross-Encoder의 정확도 사이 균형을 잡는다.</description>
    </item>
    <item>
      <title>077. 청킹 전략 — RAG를 위한 텍스트 분할</title>
      <link>https://charminggroot.github.io/posts/077-chunking/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/077-chunking/</guid>
      <description>RAG 파이프라인에서 청킹은 긴 문서를 임베딩 가능한 크기의 조각으로 나누는 과정이다. 청킹 방식이 검색 품질을 직접 결정한다. 고정 크기, 재귀적 분할, 시맨틱 청킹까지 각 방식의 원리와 트레이드오프를 다룬다.</description>
    </item>
    <item>
      <title>078. 벡터 DB — Qdrant, pgvector, Pinecone</title>
      <link>https://charminggroot.github.io/posts/078-vector-db/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/078-vector-db/</guid>
      <description>벡터 DB는 고차원 임베딩 벡터를 저장하고 근사 최근접 이웃(ANN) 검색을 빠르게 수행하는 데이터베이스다. Qdrant, pgvector, Pinecone 세 가지 대표 선택지의 구조, 인덱싱 알고리즘, 트레이드오프를 다룬다.</description>
    </item>
    <item>
      <title>079. 하이브리드 검색 — BM25 &#43; 벡터 검색</title>
      <link>https://charminggroot.github.io/posts/079-hybrid-search/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/079-hybrid-search/</guid>
      <description>벡터 검색은 의미 유사도를 잘 포착하지만 정확한 키워드 매칭에 약하다. BM25는 반대다. 두 방식을 결합한 하이브리드 검색이 실무 RAG에서 더 안정적인 성능을 낸다. RRF로 두 순위를 결합하고 Cross-Encoder로 재정렬하는 전체 파이프라인을 다룬다.</description>
    </item>
    <item>
      <title>080. RAG — 검색 증강 생성 파이프라인</title>
      <link>https://charminggroot.github.io/posts/080-rag/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/080-rag/</guid>
      <description>RAG(Retrieval-Augmented Generation)는 LLM이 답변할 때 외부 지식을 검색해 컨텍스트로 주입하는 패턴이다. 모델 가중치에 없는 최신 정보나 도메인 특화 지식을 활용하고 환각을 줄인다. 인덱싱, 검색, 생성 세 단계와 각 단계의 개선 기법을 다룬다.</description>
    </item>
    <item>
      <title>081. MTEB — 임베딩 모델 벤치마크 읽는 법</title>
      <link>https://charminggroot.github.io/posts/081-mteb/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/081-mteb/</guid>
      <description>MTEB(Massive Text Embedding Benchmark)는 56개 데이터셋, 8개 태스크로 임베딩 모델을 종합 평가하는 벤치마크다. 모델 선택 시 전체 평균이 아니라 실제 사용 태스크와 언어에 맞는 점수를 봐야 한다.</description>
    </item>
    <item>
      <title>082. DINO — 자기지도학습 비전 표현</title>
      <link>https://charminggroot.github.io/posts/082-dino/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/082-dino/</guid>
      <description>DINO(2021)는 레이블 없이 ViT를 학습하는 자기지도학습 방법이다. 학생-교사 구조에서 이미지의 다른 크롭이 같은 표현을 갖도록 학습한다. 레이블 없이도 의미 있는 시각적 특징을 학습하고, 어텐션 맵이 자연스럽게 세그멘테이션 마스크를 형성한다.</description>
    </item>
    <item>
      <title>083. CLIP — 텍스트-이미지 공동 임베딩</title>
      <link>https://charminggroot.github.io/posts/083-clip/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/083-clip/</guid>
      <description>CLIP(2021)은 4억 개의 이미지-텍스트 쌍으로 텍스트와 이미지를 같은 임베딩 공간에 정렬한다. 별도 파인튜닝 없이 새로운 분류 태스크에 적용하는 Zero-Shot 분류가 가능하고, 텍스트로 이미지를 검색하거나 이미지로 텍스트를 검색하는 크로스 모달 검색의 기반이 된다.</description>
    </item>
    <item>
      <title>084. BLIP — 이미지 캡셔닝과 VQA</title>
      <link>https://charminggroot.github.io/posts/084-blip/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/084-blip/</guid>
      <description>BLIP(2022)은 노이즈가 많은 웹 이미지-텍스트 쌍을 정제해 학습하는 부트스트래핑 방식을 도입했다. 이미지 이해(Image-Text Matching)와 이미지-텍스트 생성(Captioning)을 통합 모델 안에서 처리한다.</description>
    </item>
    <item>
      <title>085. Flamingo — Few-Shot 멀티모달 LLM</title>
      <link>https://charminggroot.github.io/posts/085-flamingo/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/085-flamingo/</guid>
      <description>Flamingo(2022)는 사전학습된 비전 모델과 LLM을 고정하고 중간 연결 레이어만 학습해 강력한 멀티모달 Few-Shot 능력을 보여준다. 프롬프트에 이미지-텍스트 예시를 몇 개 제공하면 새로운 비전 태스크에 즉시 적응한다.</description>
    </item>
    <item>
      <title>086. FlashAttention — 어텐션 메모리 최적화</title>
      <link>https://charminggroot.github.io/posts/086-flash-attention/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/086-flash-attention/</guid>
      <description>FlashAttention(2022)은 트랜스포머 어텐션의 메모리 병목을 IO-Aware 타일링으로 해결한다. 어텐션 행렬을 HBM에 저장하지 않고 SRAM에서 직접 계산해 메모리 사용량을 O(n)으로 줄이고 속도를 2~4배 높인다.</description>
    </item>
    <item>
      <title>087. Matryoshka Representation Learning — 가변 차원 임베딩</title>
      <link>https://charminggroot.github.io/posts/087-matryoshka/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/087-matryoshka/</guid>
      <description>MRL(Matryoshka Representation Learning, 2022)은 하나의 임베딩 모델이 다양한 차원에서 모두 좋은 성능을 내도록 학습하는 방법이다. 큰 임베딩 벡터의 앞부분만 잘라내도 성능이 유지된다. 저장/속도와 정확도 사이를 동적으로 조절할 수 있다.</description>
    </item>
    <item>
      <title>088. Prompt Tuning / Prefix Tuning — 소프트 프롬프트 학습</title>
      <link>https://charminggroot.github.io/posts/088-prompt-prefix-tuning/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/088-prompt-prefix-tuning/</guid>
      <description>Prompt Tuning과 Prefix Tuning은 모델 가중치를 고정하고 입력 앞에 붙이는 학습 가능한 벡터(소프트 프롬프트)만 학습한다. 전체 파인튜닝의 0.1% 미만 파라미터로 비슷한 성능을 달성한다.</description>
    </item>
    <item>
      <title>089. PEFT — 파라미터 효율적 파인튜닝 프레임워크</title>
      <link>https://charminggroot.github.io/posts/089-peft/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/089-peft/</guid>
      <description>PEFT(Parameter-Efficient Fine-Tuning)는 Hugging Face가 관리하는 파인튜닝 기법 모음 라이브러리다. LoRA, Prefix Tuning, Prompt Tuning, Adapter, IA3 등의 기법을 통일된 API로 제공한다. 모델 가중치의 1% 미만 파라미터만 학습해 전체 파인튜닝에 가까운 성능을 낸다.</description>
    </item>
    <item>
      <title>090. GPTQ — 사후 학습 양자화</title>
      <link>https://charminggroot.github.io/posts/090-gptq/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/090-gptq/</guid>
      <description>GPTQ(2022)는 LLM 가중치를 4비트로 압축하는 사후 학습 양자화 방법이다. 재학습 없이 보정 데이터만으로 FP16 대비 4배 작은 모델을 만들고, 성능 손실을 최소화한다. 소비자 GPU에서 대형 모델을 실행하는 실용적인 방법이다.</description>
    </item>
    <item>
      <title>091. DINOv2 — 범용 비전 특징 추출기</title>
      <link>https://charminggroot.github.io/posts/091-dinov2/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/091-dinov2/</guid>
      <description>DINOv2(2023)는 1억 4200만 장의 정제된 이미지로 학습한 자기지도 비전 모델이다. 파인튜닝 없이 깊이 추정, 세그멘테이션, 분류, 검색 등 다양한 비전 태스크에 직접 사용할 수 있는 범용 비전 특징 추출기다.</description>
    </item>
    <item>
      <title>092. SAM — Segment Anything Model</title>
      <link>https://charminggroot.github.io/posts/092-sam/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/092-sam/</guid>
      <description>SAM(2023)은 Meta AI가 발표한 범용 이미지 세그멘테이션 모델이다. 점, 박스, 텍스트 등 다양한 프롬프트로 이미지의 어떤 객체든 마스크를 생성한다. 11억 개 마스크로 학습된 파운데이션 모델로, 파인튜닝 없이 대부분의 세그멘테이션 태스크에 적용된다.</description>
    </item>
    <item>
      <title>093. BLIP-2 — Q-Former로 비전과 LLM 연결</title>
      <link>https://charminggroot.github.io/posts/093-blip2/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/093-blip2/</guid>
      <description>BLIP-2(2023)는 Q-Former라는 경량 쿼리 트랜스포머로 고정된 이미지 인코더와 고정된 LLM을 연결한다. 두 모델을 재학습 없이 연결하므로 학습 비용이 낮고, 더 강력한 LLM으로 교체하면 멀티모달 능력도 함께 향상된다.</description>
    </item>
    <item>
      <title>094. LLaVA — 오픈소스 멀티모달 LLM</title>
      <link>https://charminggroot.github.io/posts/094-llava/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/094-llava/</guid>
      <description>LLaVA(2023)는 CLIP 비전 인코더와 LLaMA를 선형 투영 레이어 하나로 연결한 오픈소스 멀티모달 모델이다. GPT-4가 생성한 158K 시각 지시 데이터로 학습해 GPT-4V에 가까운 시각 추론 능력을 보인다.</description>
    </item>
    <item>
      <title>095. QLoRA — 소비자 GPU에서 65B 모델 파인튜닝</title>
      <link>https://charminggroot.github.io/posts/095-qlora/</link>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/095-qlora/</guid>
      <description>QLoRA(2023)는 4비트 양자화된 기반 모델에 LoRA를 적용해 65B 모델을 단일 48GB GPU에서 파인튜닝하는 방법이다. NF4(Normal Float 4) 양자화, 이중 양자화, 페이지드 옵티마이저 세 가지 기술을 결합해 메모리를 획기적으로 줄인다.</description>
    </item>
    <item>
      <title>037. VPC — 클라우드 위의 사설 네트워크</title>
      <link>https://charminggroot.github.io/posts/037-vpc/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/037-vpc/</guid>
      <description>VPC(Virtual Private Cloud)는 클라우드 위에 만드는 논리적 사설 네트워크다. 서브넷으로 구역을 나누고, 라우팅 테이블로 트래픽 방향을 제어하고, Internet Gateway로 외부와 연결한다. public/private 서브넷의 차이, 라우팅 테이블이 동작하는 방식, 그리고 실무 VPC 설계 패턴을 설명한다.</description>
    </item>
    <item>
      <title>038. NAT Gateway — private 서브넷의 아웃바운드 인터넷 출구</title>
      <link>https://charminggroot.github.io/posts/038-nat-gateway/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/038-nat-gateway/</guid>
      <description>private 서브넷의 서버는 인터넷에서 직접 접근할 수 없지만, 외부 API 호출이나 패키지 설치를 위해 아웃바운드 인터넷 접근은 필요하다. NAT Gateway는 이 단방향 출구를 제공한다. 동작 원리, 비용 구조, 고가용성 설계, 그리고 EKS에서의 주의사항을 설명한다.</description>
    </item>
    <item>
      <title>039. Security Group vs NACL — AWS의 두 가지 방화벽</title>
      <link>https://charminggroot.github.io/posts/039-security-group-nacl/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/039-security-group-nacl/</guid>
      <description>AWS에는 두 가지 네트워크 접근 제어 메커니즘이 있다. Security Group은 인스턴스 레벨에서 동작하는 stateful 방화벽이고, NACL은 서브넷 레벨에서 동작하는 stateless 방화벽이다. 둘의 결정적인 차이인 stateful vs stateless가 실제로 무엇을 의미하는지, 언제 무엇을 써야 하는지 설명한다.</description>
    </item>
    <item>
      <title>040. VPC Peering vs Transit Gateway — VPC 간 연결 방식</title>
      <link>https://charminggroot.github.io/posts/040-vpc-peering-transit-gateway/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/040-vpc-peering-transit-gateway/</guid>
      <description>VPC는 기본적으로 격리된 네트워크다. 여러 VPC를 연결하려면 VPC Peering 또는 Transit Gateway를 쓴다. Peering은 두 VPC를 직접 연결하는 단순한 방식이고, Transit Gateway는 여러 VPC를 허브-스포크 구조로 연결하는 중앙 라우터다. 각각의 동작 방식과 어떤 상황에 무엇을 쓰는지 설명한다.</description>
    </item>
    <item>
      <title>041. VPN vs Direct Connect — 온프렘과 클라우드를 연결하는 두 가지 방법</title>
      <link>https://charminggroot.github.io/posts/041-vpn-direct-connect/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/041-vpn-direct-connect/</guid>
      <description>온프렘 데이터센터와 AWS VPC를 연결할 때 AWS Site-to-Site VPN 또는 AWS Direct Connect를 쓴다. VPN은 인터넷 위에 암호화 터널을 만드는 방식으로 빠르게 설정할 수 있고, Direct Connect는 AWS와 전용 물리 회선을 연결하는 방식으로 안정적인 대역폭과 낮은 레이턴시를 제공한다. 둘의 차이와 선택 기준을 설명한다.</description>
    </item>
    <item>
      <title>042. L4 vs L7 로드밸런서 — NLB와 ALB</title>
      <link>https://charminggroot.github.io/posts/042-l4-l7-load-balancer/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/042-l4-l7-load-balancer/</guid>
      <description>로드밸런서는 들어오는 트래픽을 여러 서버에 분산한다. OSI 모델의 어느 계층에서 동작하느냐에 따라 L4와 L7으로 나뉜다. L4는 TCP/UDP 레벨에서, L7은 HTTP 내용을 보고 라우팅 결정을 내린다. AWS의 NLB와 ALB를 기준으로 각각 언제 쓰는지 설명한다.</description>
    </item>
    <item>
      <title>043. Health Check &amp; Connection Draining — 로드밸런서의 무중단 배포 기반</title>
      <link>https://charminggroot.github.io/posts/043-health-check-connection-draining/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/043-health-check-connection-draining/</guid>
      <description>로드밸런서는 헬스체크로 서버가 정상인지 확인하고, 비정상 서버로는 트래픽을 보내지 않는다. Connection Draining은 서버를 내릴 때 기존 연결을 끊지 않고 자연스럽게 처리가 끝나길 기다린다. 이 두 메커니즘이 무중단 배포와 자동 장애 복구의 기반이 된다.</description>
    </item>
    <item>
      <title>044. Sticky Session — 로드밸런서에서 같은 서버로 고정하기</title>
      <link>https://charminggroot.github.io/posts/044-sticky-session/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/044-sticky-session/</guid>
      <description>Sticky Session은 같은 클라이언트의 요청이 항상 같은 서버로 가도록 로드밸런서가 보장하는 기능이다. 서버가 세션 상태를 메모리에 들고 있는 경우 필요하지만, 부하 불균형과 수평 확장 어려움이라는 근본적인 문제를 가진다. 왜 피해야 하는지, 불가피할 때 어떻게 쓰는지 설명한다.</description>
    </item>
    <item>
      <title>045. Zero Trust 네트워크 — 내부도 신뢰하지 않는다</title>
      <link>https://charminggroot.github.io/posts/045-zero-trust/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/045-zero-trust/</guid>
      <description>전통적인 보안 모델은 내부 네트워크를 신뢰했다. 방화벽 안에 들어오면 내부 서비스에 자유롭게 접근할 수 있었다. Zero Trust는 이 전제를 버린다. 위치(IP)가 아니라 아이덴티티를 기반으로 매 요청을 검증한다. 왜 등장했고 어떻게 구현되는지 설명한다.</description>
    </item>
    <item>
      <title>046. mTLS — 서비스 간 양방향 인증서 검증</title>
      <link>https://charminggroot.github.io/posts/046-mtls/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/046-mtls/</guid>
      <description>일반 TLS는 클라이언트가 서버를 인증한다. mTLS(mutual TLS)는 서버도 클라이언트를 인증한다. 마이크로서비스 환경에서 서비스 간 통신이 실제로 신뢰할 수 있는 서비스에서 왔는지 검증하는 데 쓰인다. 동작 원리, SPIFFE/SPIRE 아이덴티티 체계, Istio가 어떻게 자동화하는지 설명한다.</description>
    </item>
    <item>
      <title>047. DDoS 방어 레이어 — 볼류메트릭 공격부터 애플리케이션 레이어까지</title>
      <link>https://charminggroot.github.io/posts/047-ddos-defense/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/047-ddos-defense/</guid>
      <description>DDoS(Distributed Denial of Service)는 대량의 트래픽으로 서비스를 마비시키는 공격이다. 공격 유형에 따라 방어 레이어가 다르다. 네트워크 레벨 볼류메트릭 공격, 프로토콜 레벨 공격, 애플리케이션 레벨 공격 각각에 어떤 방어가 적용되는지, 그리고 실무에서 어떤 구성이 표준인지 설명한다.</description>
    </item>
    <item>
      <title>048. IaC — 인프라를 코드로 관리하기</title>
      <link>https://charminggroot.github.io/posts/048-iac/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/048-iac/</guid>
      <description>IaC(Infrastructure as Code)는 서버, 네트워크, DB 같은 인프라를 코드로 정의하고 버전 관리하는 방식이다. 콘솔에서 클릭해서 만들던 것을 코드로 선언하면 재현 가능하고 리뷰 가능하고 자동화할 수 있다. 선언형 vs 명령형의 차이, Terraform과 Pulumi의 철학 차이, 그리고 state 파일 문제를 설명한다.</description>
    </item>
    <item>
      <title>049. Crossplane — k8s로 AWS 인프라를 선언하기</title>
      <link>https://charminggroot.github.io/posts/049-crossplane/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/049-crossplane/</guid>
      <description>Crossplane은 k8s CRD를 이용해 AWS, GCP 같은 클라우드 인프라를 선언적으로 관리하는 오픈소스다. VPC, RDS, S3 같은 클라우드 리소스를 k8s 오브젝트처럼 선언하면 컨트롤러가 실제 인프라를 프로비저닝한다. Terraform과 철학적으로 무엇이 다른지, Provider 구조, Managed Resource 개념을 설명한다.</description>
    </item>
    <item>
      <title>050. Crossplane Composition — 인프라 추상화와 셀프서비스</title>
      <link>https://charminggroot.github.io/posts/050-crossplane-composition/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/050-crossplane-composition/</guid>
      <description>Crossplane의 Managed Resource는 AWS 리소스를 1:1로 선언한다. Composition은 그 위의 추상화 레이어다. 여러 Managed Resource를 묶어 &amp;lsquo;PostgreSQL 데이터베이스 하나 주세요&amp;rsquo;라는 단순한 요청으로 VPC, 서브넷, 보안 그룹, RDS 인스턴스를 한꺼번에 프로비저닝할 수 있게 한다. XRD, XR, Claim의 3계층 구조를 설명한다.</description>
    </item>
    <item>
      <title>051. GitOps — Git을 배포의 단일 진실 원천으로</title>
      <link>https://charminggroot.github.io/posts/051-gitops/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/051-gitops/</guid>
      <description>GitOps는 Git 저장소를 인프라와 애플리케이션의 desired state를 담는 단일 진실 원천으로 사용하는 운영 모델이다. 배포는 Git 커밋으로 시작하고, 클러스터 상태가 항상 Git과 일치하도록 유지한다. 전통적인 push 방식 CI/CD와의 차이, 핵심 원칙, 그리고 왜 k8s에 자연스럽게 맞는지 설명한다.</description>
    </item>
    <item>
      <title>052. Argo CD — GitOps 기반 k8s 배포 도구</title>
      <link>https://charminggroot.github.io/posts/052-argo-cd/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/052-argo-cd/</guid>
      <description>Argo CD는 GitOps 방식으로 k8s 배포를 관리하는 도구다. Git 저장소의 매니페스트를 감시하고, 클러스터 상태와 diff를 보여주며, 자동 또는 수동으로 동기화한다. Application 정의 방식, Sync 전략, App of Apps 패턴, 실무에서 자주 쓰는 설정을 설명한다.</description>
    </item>
    <item>
      <title>053. Argo CD &#43; Crossplane — Git 선언에서 AWS 인프라까지</title>
      <link>https://charminggroot.github.io/posts/053-argocd-crossplane/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/053-argocd-crossplane/</guid>
      <description>Argo CD와 Crossplane을 결합하면 Git 하나로 k8s 앱 배포와 AWS 인프라 프로비저닝을 모두 관리할 수 있다. 개발자가 Git에 Claim을 올리면 Argo CD가 k8s에 적용하고, Crossplane이 실제 AWS 리소스를 만든다. 이 파이프라인이 어떻게 구성되는지, 그리고 실제 운영에서 어떤 점을 주의해야 하는지 설명한다.</description>
    </item>
    <item>
      <title>054. Service Mesh — 서비스 간 통신을 인프라 레이어에서 제어하기</title>
      <link>https://charminggroot.github.io/posts/054-service-mesh/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/054-service-mesh/</guid>
      <description>마이크로서비스가 많아지면 서비스 간 통신 관리가 복잡해진다. 재시도, 타임아웃, 서킷 브레이커, mTLS, 분산 추적을 각 서비스 코드에 중복 구현하게 된다. Service Mesh는 이 공통 기능을 sidecar proxy로 분리해 인프라 레이어에서 처리한다. Istio와 Envoy의 구조, 주요 기능, 그리고 오버헤드를 설명한다.</description>
    </item>
    <item>
      <title>055. eBPF &amp; Cilium — 커널 레벨 네트워킹과 차세대 CNI</title>
      <link>https://charminggroot.github.io/posts/055-ebpf-cilium/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/055-ebpf-cilium/</guid>
      <description>eBPF(extended Berkeley Packet Filter)는 리눅스 커널 안에서 사용자 정의 프로그램을 안전하게 실행하는 기술이다. Cilium은 eBPF 기반의 k8s CNI 플러그인으로, iptables를 대체하고 고성능 네트워킹, NetworkPolicy 구현, 서비스 메시 기능, 실시간 관찰 가능성을 커널 레벨에서 제공한다.</description>
    </item>
    <item>
      <title>056. Design Token — 디자인 결정을 변수로 관리하기</title>
      <link>https://charminggroot.github.io/posts/056-design-token/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/056-design-token/</guid>
      <description>Design Token은 색상, 타이포그래피, 간격, 그림자 같은 디자인 결정을 이름 있는 변수로 추상화한 것이다. 컴포넌트가 직접 헥스코드를 박지 않고 토큰을 참조하면, 브랜드 변경이나 다크모드 구현이 토큰 수정 하나로 전체에 반영된다. 토큰 계층 구조, 실제 구현 방법, 그리고 Design System과의 관계를 설명한다.</description>
    </item>
    <item>
      <title>057. Design System — 컴포넌트 라이브러리와 원자 디자인</title>
      <link>https://charminggroot.github.io/posts/057-design-system/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/057-design-system/</guid>
      <description>Design System은 토큰, 컴포넌트, 패턴, 가이드라인을 하나의 시스템으로 묶어 제품 전체의 일관성을 유지하는 체계다. 원자 디자인 방법론으로 컴포넌트를 계층화하고, Storybook으로 문서화하는 방법, 그리고 Design System을 도입할 때의 현실적인 트레이드오프를 설명한다.</description>
    </item>
    <item>
      <title>058. 타이포그래피 스케일 — 폰트 크기 체계와 가독성</title>
      <link>https://charminggroot.github.io/posts/058-typography-scale/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/058-typography-scale/</guid>
      <description>타이포그래피는 텍스트가 어떻게 보이는지를 결정한다. 폰트 크기, 행간, 자간, 굵기를 체계 없이 쓰면 화면마다 느낌이 달라지고 위계가 흐려진다. 타이포그래피 스케일로 크기 체계를 정하고, 가독성 좋은 line-height를 설정하고, 웹에서 반응형 타이포그래피를 구현하는 방법을 설명한다.</description>
    </item>
    <item>
      <title>059. 간격 시스템 — 8pt Grid와 공간으로 위계 만들기</title>
      <link>https://charminggroot.github.io/posts/059-spacing-system/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/059-spacing-system/</guid>
      <description>간격이 일관되지 않으면 화면이 어수선해 보인다. 8pt 그리드 시스템은 모든 간격을 8의 배수로 정의해 시각적 일관성을 만든다. 간격이 정보 구조를 표현하는 방식, 컴포넌트 내부와 외부 간격의 차이, 그리고 레이아웃 컴포넌트로 간격을 관리하는 방법을 설명한다.</description>
    </item>
    <item>
      <title>060. 접근성(a11y) — 색상 대비, 키보드 내비게이션, ARIA</title>
      <link>https://charminggroot.github.io/posts/060-accessibility/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/060-accessibility/</guid>
      <description>접근성은 장애가 있는 사용자를 위한 것이기도 하지만, 동시에 모든 사용자의 경험을 개선한다. 색상 대비 기준, 키보드만으로 이동 가능한 UI, 스크린 리더를 위한 ARIA 속성, 그리고 실무에서 가장 자주 놓치는 접근성 체크포인트를 설명한다.</description>
    </item>
    <item>
      <title>061. 마이크로인터랙션 — 피드백, 애니메이션, 트랜지션</title>
      <link>https://charminggroot.github.io/posts/061-micro-interaction/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/061-micro-interaction/</guid>
      <description>마이크로인터랙션은 사용자가 행동을 취했을 때 인터페이스가 반응하는 작은 순간이다. 버튼을 눌렀을 때 눌리는 느낌, 저장이 완료됐을 때 체크마크, 에러가 발생했을 때 흔들림. 이 작은 피드백들이 쌓여 제품의 완성도를 결정한다. 트리거, 규칙, 피드백, 루프 4단계 구조와 실제 구현 방법을 설명한다.</description>
    </item>
    <item>
      <title>062. 반응형 디자인 — 브레이크포인트, 유동 레이아웃, 모바일 우선</title>
      <link>https://charminggroot.github.io/posts/062-responsive-design/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/062-responsive-design/</guid>
      <description>반응형 디자인은 하나의 코드베이스가 모바일부터 데스크탑까지 다양한 화면 크기에서 잘 동작하도록 하는 접근 방식이다. 모바일 우선 설계 원칙, 브레이크포인트 설정 방법, CSS Grid와 Flexbox로 유동적인 레이아웃을 만드는 방법, 그리고 자주 발생하는 문제들을 설명한다.</description>
    </item>
    <item>
      <title>011. Kubernetes — 클러스터 구조와 선언적 모델</title>
      <link>https://charminggroot.github.io/posts/011-k8s-cluster-architecture/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/011-k8s-cluster-architecture/</guid>
      <description>Kubernetes가 무엇인지, 클러스터가 마스터(control plane)와 워커 노드로 어떻게 나뉘는지, 각 컴포넌트가 어떤 역할을 하는지, 그리고 k8s 전체를 관통하는 핵심 개념인 선언적 모델이 무엇인지를 설명한다. 이후 리소스 시리즈의 기반이 되는 글이다.</description>
    </item>
    <item>
      <title>012. Kubernetes Pod — 컨테이너를 감싸는 가장 작은 실행 단위</title>
      <link>https://charminggroot.github.io/posts/012-k8s-pod/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/012-k8s-pod/</guid>
      <description>Pod는 k8s에서 배포되는 가장 작은 단위다. 컨테이너가 하나 이상 묶인 실행 단위이고, 같은 파드 안의 컨테이너들은 네트워크와 볼륨을 공유한다. 파드의 라이프사이클, 리소스 요청과 제한, 사이드카 패턴, 초기화 컨테이너가 무엇인지, 그리고 파드를 직접 만들어 쓰지 않는 이유를 설명한다.</description>
    </item>
    <item>
      <title>013. Kubernetes Deployment — 파드 배포와 업데이트를 관리하는 오브젝트</title>
      <link>https://charminggroot.github.io/posts/013-k8s-deployment/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/013-k8s-deployment/</guid>
      <description>Deployment는 파드를 직접 만드는 대신 &amp;lsquo;몇 개를 유지할지, 어떻게 업데이트할지&amp;rsquo;를 선언하는 오브젝트다. 내부적으로 ReplicaSet을 통해 파드를 관리하고, 롤링 업데이트로 무중단 배포를 하며, 문제가 생기면 이전 버전으로 롤백한다. 이 과정이 어떻게 동작하는지, 전략 파라미터를 어떻게 조절하는지를 설명한다.</description>
    </item>
    <item>
      <title>014. Kubernetes Service — 파드 앞에 세우는 고정 엔드포인트</title>
      <link>https://charminggroot.github.io/posts/014-k8s-service/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/014-k8s-service/</guid>
      <description>파드는 죽었다 새로 만들어지면 IP가 바뀐다. Service는 파드 앞에 서서 항상 같은 주소로 트래픽을 받고, 뒤에 있는 파드들 사이에 로드밸런싱한다. ClusterIP, NodePort, LoadBalancer 세 타입의 차이, Ingress와의 관계, k8s 내부 DNS가 어떻게 동작하는지를 설명한다.</description>
    </item>
    <item>
      <title>015. Kubernetes ConfigMap &amp; Secret — 설정과 민감한 값을 파드와 분리하는 방법</title>
      <link>https://charminggroot.github.io/posts/015-k8s-configmap-secret/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/015-k8s-configmap-secret/</guid>
      <description>설정값을 컨테이너 이미지에 박으면 환경마다 이미지를 다시 빌드해야 한다. ConfigMap은 일반 설정을, Secret은 민감한 값을 파드와 분리해 관리한다. 주입 방식(환경변수, 볼륨), Secret의 base64가 암호화가 아닌 이유, 프로덕션에서 실제로 안전하게 관리하는 방법을 설명한다.</description>
    </item>
    <item>
      <title>016. Kubernetes ServiceAccount &amp; RBAC — 파드의 신원과 권한 제어</title>
      <link>https://charminggroot.github.io/posts/016-k8s-serviceaccount/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/016-k8s-serviceaccount/</guid>
      <description>ServiceAccount는 파드가 k8s API를 호출할 때 쓰는 신원(identity)이다. RBAC은 그 신원에 어떤 리소스에 어떤 작업을 허용할지 정하는 권한 체계다. Role, ClusterRole, RoleBinding, ClusterRoleBinding이 어떻게 조합되는지, 최소 권한 원칙을 어떻게 적용하는지를 설명한다.</description>
    </item>
    <item>
      <title>017. Kubernetes DaemonSet — 모든 노드에 하나씩 실행되는 파드</title>
      <link>https://charminggroot.github.io/posts/017-k8s-daemonset/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/017-k8s-daemonset/</guid>
      <description>DaemonSet은 클러스터의 모든 노드(또는 선택한 노드)에 파드를 정확히 하나씩 실행한다. 노드가 추가되면 자동으로 파드가 생기고, 노드가 제거되면 파드도 사라진다. 로그 수집, 메트릭 수집, 네트워크 플러그인처럼 노드 단위로 실행돼야 하는 인프라 컴포넌트에 쓰인다.</description>
    </item>
    <item>
      <title>018. Kubernetes HPA — 트래픽에 따라 파드 수를 자동으로 조절하기</title>
      <link>https://charminggroot.github.io/posts/018-k8s-hpa/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/018-k8s-hpa/</guid>
      <description>HPA(Horizontal Pod Autoscaler)는 CPU·메모리 사용률이나 커스텀 메트릭을 보고 Deployment의 파드 수를 자동으로 늘리고 줄인다. 스케일 계산이 어떻게 이뤄지는지, 실무에서 자주 만나는 함정(requests 미설정, 스케일 다운 지연, 파드 준비 시간)이 무엇인지, 커스텀 메트릭으로 어떻게 확장하는지를 설명한다.</description>
    </item>
    <item>
      <title>019. Kubernetes 셀프힐링 — 파드가 스스로 회복하는 구조</title>
      <link>https://charminggroot.github.io/posts/019-k8s-self-healing/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/019-k8s-self-healing/</guid>
      <description>k8s의 셀프힐링은 선언적 모델과 세 가지 프로브로 구현된다. Liveness probe가 죽은 컨테이너를 재시작하고, Readiness probe가 준비 안 된 파드를 트래픽에서 제외하며, Startup probe가 시작이 느린 앱을 보호한다. 각 프로브가 언제 무엇을 해야 하는지, 잘못 설정했을 때 어떤 문제가 생기는지를 설명한다.</description>
    </item>
    <item>
      <title>020. Kubernetes 관측성 — TPS 측정, 분산 추적, 로그 수집</title>
      <link>https://charminggroot.github.io/posts/020-k8s-observability/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/020-k8s-observability/</guid>
      <description>k8s에서 서비스를 운영하려면 무슨 일이 일어나는지 볼 수 있어야 한다. 관측성의 세 기둥인 메트릭·트레이스·로그가 k8s에서 어떻게 구성되는지, TPS를 어떻게 측정하는지, 분산 추적이 어떻게 여러 서비스를 하나의 흐름으로 잇는지, 로그는 어떻게 중앙에서 수집하는지를 설명한다.</description>
    </item>
    <item>
      <title>021. Kubernetes PV &amp; PVC — 파드가 죽어도 데이터가 살아남는 구조</title>
      <link>https://charminggroot.github.io/posts/021-k8s-pv-pvc/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/021-k8s-pv-pvc/</guid>
      <description>파드는 일시적이라 로컬 파일시스템도 파드와 함께 사라진다. PersistentVolume(PV)은 파드 수명과 분리된 저장소를 추상화하고, PersistentVolumeClaim(PVC)은 파드가 그 저장소를 요청하는 방식이다. 정적 프로비저닝과 동적 프로비저닝, StorageClass, 접근 모드, 반환 정책이 무엇인지, 실제 운영에서 어떻게 쓰이는지를 설명한다.</description>
    </item>
    <item>
      <title>022. Kubernetes StatefulSet — 순서와 신원이 필요한 파드를 위한 오브젝트</title>
      <link>https://charminggroot.github.io/posts/022-k8s-statefulset/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/022-k8s-statefulset/</guid>
      <description>Deployment는 파드를 교환 가능한 존재로 다루지만, DB나 메시지 큐처럼 파드마다 고유한 신원과 안정적인 스토리지가 필요한 경우가 있다. StatefulSet이 무엇인지, Deployment와 어떻게 다른지, 안정적인 네트워크 신원과 영구 스토리지를 어떻게 보장하는지, 언제 써야 하는지를 설명한다.</description>
    </item>
    <item>
      <title>023. Kubernetes Ingress — HTTP(S) 트래픽의 단일 진입점</title>
      <link>https://charminggroot.github.io/posts/023-k8s-ingress/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/023-k8s-ingress/</guid>
      <description>Service를 LoadBalancer 타입으로 노출하면 서비스마다 로드밸런서가 하나씩 생겨 비용이 선형으로 늘어난다. Ingress는 하나의 진입점에서 호스트 이름과 URL 경로로 트래픽을 여러 Service로 분배한다. Ingress 오브젝트와 Ingress Controller의 관계, 경로 기반·호스트 기반 라우팅, TLS 종료, cert-manager 자동 인증서 갱신을 설명한다.</description>
    </item>
    <item>
      <title>024. Kubernetes NetworkPolicy — 파드 간 트래픽을 제어하는 방화벽</title>
      <link>https://charminggroot.github.io/posts/024-k8s-networkpolicy/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/024-k8s-networkpolicy/</guid>
      <description>k8s에서 기본적으로 모든 파드는 서로 통신할 수 있다. NetworkPolicy는 파드 단위의 방화벽 규칙으로, 어떤 파드가 어떤 파드에 접근할 수 있는지 제어한다. 인그레스·이그레스 규칙 작성 방법, 기본 차단 정책, 네임스페이스 간 트래픽 제어, 그리고 CNI 플러그인이 실제로 규칙을 집행하는 구조를 설명한다.</description>
    </item>
    <item>
      <title>025. Kubernetes Namespace — 클러스터 안의 논리적 격리 단위</title>
      <link>https://charminggroot.github.io/posts/025-k8s-namespace/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/025-k8s-namespace/</guid>
      <description>Namespace는 하나의 클러스터를 여러 논리적 공간으로 나누는 메커니즘이다. 팀별, 환경별, 서비스 도메인별로 나눌 수 있고, RBAC과 NetworkPolicy, ResourceQuota와 결합해 진짜 격리를 구현한다. 언제 Namespace로 나누고 언제 클러스터를 아예 분리해야 하는지, 기본 Namespace들이 어떤 역할인지를 설명한다.</description>
    </item>
    <item>
      <title>026. Kubernetes Job &amp; CronJob — 일회성 작업과 주기적 작업</title>
      <link>https://charminggroot.github.io/posts/026-k8s-job-cronjob/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/026-k8s-job-cronjob/</guid>
      <description>Deployment는 파드를 계속 실행 상태로 유지하지만, 데이터 마이그레이션이나 리포트 생성처럼 한 번 실행하고 끝나는 작업도 있다. Job은 파드가 성공적으로 완료될 때까지 실행을 보장하고, CronJob은 Job을 cron 표현식으로 주기적으로 실행한다. 완료 보장 메커니즘, 병렬 실행, 실패 처리, 그리고 CronJob의 주의사항을 설명한다.</description>
    </item>
    <item>
      <title>027. Kubernetes Cluster Autoscaler — 파드가 올라갈 노드를 자동으로 늘리고 줄이기</title>
      <link>https://charminggroot.github.io/posts/027-k8s-cluster-autoscaler/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/027-k8s-cluster-autoscaler/</guid>
      <description>HPA가 파드 수를 조절하면, 새 파드를 올릴 노드가 부족해지는 상황이 생긴다. Cluster Autoscaler는 Pending 상태인 파드를 감지해 노드를 추가하고, 유휴 노드를 제거해 비용을 절감한다. HPA와 어떻게 협력하는지, 노드를 어떻게 선택하는지, 스케일 인 중 파드 안전성을 어떻게 보장하는지, 그리고 차세대 도구인 Karpenter와의 차이를 설명한다.</description>
    </item>
    <item>
      <title>028. Kubernetes Taint, Toleration, Affinity — 파드가 어떤 노드에 올라갈지 제어하기</title>
      <link>https://charminggroot.github.io/posts/028-k8s-taint-affinity/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/028-k8s-taint-affinity/</guid>
      <description>기본적으로 스케줄러는 자원이 충분한 노드에 파드를 자유롭게 배치한다. Taint와 Toleration은 노드를 특수 목적으로 예약하고, Affinity는 파드가 특정 노드에 또는 특정 파드 근처에 배치되도록 유도한다. GPU 노드 예약, 파드 고가용성 분산, 같이 실행해야 하는 파드 모으기를 어떻게 구현하는지 설명한다.</description>
    </item>
    <item>
      <title>029. Helm — Kubernetes 패키지 매니저</title>
      <link>https://charminggroot.github.io/posts/029-k8s-helm/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/029-k8s-helm/</guid>
      <description>하나의 서비스를 k8s에 배포하려면 Deployment, Service, ConfigMap, Ingress, ServiceAccount 등 여러 YAML 파일이 필요하다. Helm은 이 파일들을 하나의 패키지(Chart)로 묶고, 환경마다 다른 값을 변수로 분리해 관리하는 k8s 패키지 매니저다. Chart 구조, values 오버라이드, Release 관리, 그리고 Kustomize와의 차이를 설명한다.</description>
    </item>
    <item>
      <title>030. KEDA — 이벤트 드리븐 오토스케일러</title>
      <link>https://charminggroot.github.io/posts/030-k8s-keda/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/030-k8s-keda/</guid>
      <description>HPA는 CPU와 메모리 사용률을 기준으로 파드를 스케일한다. 하지만 Kafka 큐에 메시지가 쌓이거나 SQS 대기열이 늘어나는 경우처럼 외부 이벤트 소스를 기준으로 스케일하고 싶을 때 HPA만으로는 한계가 있다. KEDA는 70개 이상의 외부 스케일러를 지원하는 이벤트 드리븐 오토스케일러로, 0개에서 N개까지 스케일하는 것도 지원한다.</description>
    </item>
    <item>
      <title>031. Kubernetes CRD &amp; Operator 패턴 — k8s를 플랫폼으로 확장하기</title>
      <link>https://charminggroot.github.io/posts/031-k8s-crd-operator/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/031-k8s-crd-operator/</guid>
      <description>k8s는 Deployment, Service, ConfigMap 같은 기본 리소스 외에 사용자 정의 리소스(CRD)를 추가할 수 있다. Operator 패턴은 CRD로 새 리소스를 정의하고, 컨트롤러가 그 리소스의 desired state를 실현하는 구조다. cert-manager, Postgres Operator처럼 복잡한 운영 지식을 자동화하는 데 쓰인다.</description>
    </item>
    <item>
      <title>032. Kubernetes Security Context &amp; Pod Security Admission — 컨테이너를 안전하게 실행하기</title>
      <link>https://charminggroot.github.io/posts/032-k8s-security-context/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/032-k8s-security-context/</guid>
      <description>컨테이너를 root로 실행하면 컨테이너 탈출 시 호스트 노드도 위험해진다. Security Context는 파드·컨테이너 수준에서 실행 권한을 제한하고, Pod Security Admission은 클러스터 수준에서 보안 기준선을 강제한다. 실무에서 자주 쓰는 설정과 각 제약의 의미를 설명한다.</description>
    </item>
    <item>
      <title>033. Kubernetes RBAC 미비 공격 시나리오 — 파드 침투에서 클러스터 장악까지</title>
      <link>https://charminggroot.github.io/posts/033-k8s-rbac-attack-scenario/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/033-k8s-rbac-attack-scenario/</guid>
      <description>RBAC이 제대로 설정되지 않은 클러스터에서 파드 하나를 침투한 공격자가 전체 클러스터를 장악하는 과정을 단계별로 설명한다. 각 단계에서 공격이 성립하는 조건과 이를 차단하는 방어 포인트를 함께 정리한다.</description>
    </item>
    <item>
      <title>034. IP &amp; CIDR — 네트워크 주소 체계의 기초</title>
      <link>https://charminggroot.github.io/posts/034-ip-cidr/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/034-ip-cidr/</guid>
      <description>IP 주소는 인터넷에서 장치를 식별하는 주소다. CIDR은 IP 주소 범위를 표현하는 표기법으로, VPC 서브넷 설계나 NetworkPolicy, 방화벽 규칙을 작성할 때 매일 마주친다. /24, /16이 실제로 어떤 의미인지, 사설 IP 대역이 왜 따로 있는지를 설명한다.</description>
    </item>
    <item>
      <title>035. DNS — 도메인 이름을 IP로 바꾸는 시스템</title>
      <link>https://charminggroot.github.io/posts/035-dns/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/035-dns/</guid>
      <description>DNS는 도메인 이름을 IP 주소로 변환하는 분산 데이터베이스다. api.example.com에 요청을 보낼 때 실제로 어떤 일이 일어나는지, A/CNAME/MX 레코드가 각각 무엇인지, TTL이 배포와 장애 복구에 어떤 영향을 주는지 설명한다.</description>
    </item>
    <item>
      <title>036. NAT — 사설 IP와 공인 IP를 연결하는 주소 변환</title>
      <link>https://charminggroot.github.io/posts/036-nat/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/036-nat/</guid>
      <description>NAT(Network Address Translation)는 패킷의 출발지 또는 목적지 IP를 변환하는 기술이다. 사설 IP를 가진 서버가 인터넷과 통신할 수 있는 것, VPC의 private 서브넷이 외부로 나갈 수 있는 것이 모두 NAT 덕분이다. SNAT와 DNAT의 차이, Connection tracking, 그리고 k8s Service가 내부적으로 NAT를 어떻게 활용하는지 설명한다.</description>
    </item>
    <item>
      <title>006. JSON-RPC — JSON으로 원격 함수를 호출하는 프로토콜</title>
      <link>https://charminggroot.github.io/posts/006-json-rpc/</link>
      <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/006-json-rpc/</guid>
      <description>REST가 자원을 중심으로 API를 설계한다면, 어떤 API는 동작을 주고받는 편이 더 자연스럽다. JSON-RPC가 무엇인지, RPC라는 모델이 REST와 어떻게 다른지, 메시지 구조와 오류 규약은 어떻게 생겼는지, 전송 수단에 묶이지 않는다는 성격 덕분에 MCP·LSP·블록체인 노드에서 왜 쓰이는지를 설명한다.</description>
    </item>
    <item>
      <title>007. TCP, UDP, QUIC — 데이터를 실어 나르는 전송 계층</title>
      <link>https://charminggroot.github.io/posts/007-tcp-udp-quic/</link>
      <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/007-tcp-udp-quic/</guid>
      <description>HTTP나 JSON-RPC 같은 프로토콜은 무슨 메시지를 주고받을지 정하지만, 그 메시지를 실제로 실어 나르는 일은 전송 계층이 맡는다. TCP가 어떻게 신뢰성을 보장하는지, UDP는 왜 그것을 포기하고 빨라졌는지, QUIC은 어떻게 UDP 위에서 TCP의 신뢰성을 되찾으면서 머리 막힘과 느린 연결 수립까지 해결했는지를 설명한다.</description>
    </item>
    <item>
      <title>008. TLS — 평문 통신을 암호화된 채널로 바꾸는 계층</title>
      <link>https://charminggroot.github.io/posts/008-tls/</link>
      <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/008-tls/</guid>
      <description>TCP는 데이터를 정확히 전달하지만 보호하지는 않는다. TLS가 어떻게 TCP와 HTTP 사이에 끼어 통신을 암호화하는지, 기밀성·무결성·인증이라는 세 가지 보장이 무엇인지, 대칭키와 비대칭키를 왜 함께 쓰는지, 인증서와 신뢰 사슬은 어떻게 사칭을 막는지, 그리고 HTTPS와 wss가 결국 같은 TLS인 이유를 설명한다.</description>
    </item>
    <item>
      <title>009. 샤딩 — 데이터를 여러 대에 쪼개 담아 한계를 넘는 법</title>
      <link>https://charminggroot.github.io/posts/009-sharding/</link>
      <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/009-sharding/</guid>
      <description>데이터와 트래픽이 한 대의 서버가 감당할 수 있는 한계를 넘으면 어떻게 할까. 샤딩이 무엇인지, 복제와 어떻게 다른지, 샤드 키와 분할 방식(범위·해시·디렉토리)이 무엇인지, 핫스팟과 리샤딩과 교차 샤드 조인 같은 대가가 왜 따라오는지, 그리고 언제 샤딩을 선택해야 하는지를 설명한다.</description>
    </item>
    <item>
      <title>010. W3C Trace Context — 서비스를 넘나드는 요청을 하나로 잇는 표준</title>
      <link>https://charminggroot.github.io/posts/010-w3c-trace-context/</link>
      <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://charminggroot.github.io/posts/010-w3c-trace-context/</guid>
      <description>마이크로서비스에서는 요청 하나가 여러 서비스를 거쳐 처리된다. 이 흐름을 끝에서 끝까지 추적하려면 서비스 경계를 넘어 추적 정보를 전달해야 한다. W3C Trace Context가 무엇인지, traceparent와 tracestate 헤더가 어떻게 생겼는지, 전파(propagation)가 어떻게 일어나는지, 그리고 이 표준이 왜 OpenTelemetry의 토대가 됐는지를 설명한다.</description>
    </item>
  </channel>
</rss>
