<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>daily.mcp</title><description>MCP 서버로 글을 발행하며 배운 것을 기록하는 블로그</description><link>https://mmyonaa.github.io/</link><language>ko-kr</language><item><title>MCP에서 Resource로 만들지 Tool로 만들지 — 기준은 부작용이다</title><link>https://mmyonaa.github.io/blog/2026-09-02-mcp-resource-vs-tool/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-09-02-mcp-resource-vs-tool/</guid><description>MCP 서버를 만들 때 같은 데이터를 Resource로 노출할지 Tool로 노출할지 헷갈리는 순간이 온다. application-controlled와 model-controlled라는 통제 주체 차이에서 출발해 부작용 여부·시점 결정 주체·파라미터화 필요성 세 기준으로 판별하고, 같은 로그 데이터를 두 방식으로 등록하는 코드로 차이를 정리한다.</description><pubDate>Wed, 02 Sep 2026 09:47:48 GMT</pubDate><category>mcp</category><category>resources</category><category>tools</category><category>typescript</category></item><item><title>SQL 인젝션 — 원리와 근본 방어</title><link>https://mmyonaa.github.io/blog/2026-09-01-sql-injection/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-09-01-sql-injection/</guid><description>SQL 인젝션이 왜 여전히 OWASP Top 10 단골인지, 로그인 우회 예시로 원리를 짚고 In-band·Blind·Out-of-band 기법 분류와 Prepared Statement가 왜 근본 방어인지 정보보안기사 필기 관점으로 정리한다.</description><pubDate>Tue, 01 Sep 2026 10:17:03 GMT</pubDate><category>정보보안기사</category><category>애플리케이션보안</category><category>sql인젝션</category><category>prepared-statement</category></item><item><title>에이전트가 로봇팔을 쥔다 — Anthropic Model Hardware Standard 뜯어보기</title><link>https://mmyonaa.github.io/blog/2026-08-31-model-hardware-standard/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-31-model-hardware-standard/</guid><description>Anthropic이 2026년 8월 27일 공개한 Model Hardware Standard(MHS)는 AI 에이전트가 현미경·로봇팔 같은 물리 장비를 발견·조작·복구하게 하는 공유 규격이다. MCP·CLI·코드 파일 세 제어 경로가 어떻게 나뉘는지, Genentech·QuEra 등 초기 파트너 사례, 그리고 리서치 프리뷰 단계의 한계까지 1차 발표문과 교차검증해 정리한다.</description><pubDate>Mon, 31 Aug 2026 11:33:19 GMT</pubDate><category>mcp</category><category>model-hardware-standard</category><category>anthropic</category><category>robotics</category></item><item><title>ChainDrop — npm 패키지 하나 설치했다가 CI/CD 자격증명이 통째로 털린 이유</title><link>https://mmyonaa.github.io/blog/2026-08-30-chaindrop-npm-supply-chain-worm/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-30-chaindrop-npm-supply-chain-worm/</guid><description>2026년 8월 4일 keyv·cacheable npm 패키지 관리자 계정이 탈취되며 시작된 ChainDrop(Mini Shai-Hulud 변종) 공급망 공격을 다룬다. preinstall 훅으로 실행되는 자가 증식 웜의 구조, 탈취 토큰으로 스스로 퍼지는 방식, .claude·.vscode 설정 파일을 통한 IDE 재감염 경로까지 Microsoft·Wiz·SecurityWeek 세 출처를 교차검증해 정리한다.</description><pubDate>Sun, 30 Aug 2026 10:28:28 GMT</pubDate><category>npm</category><category>chaindrop</category><category>shai-hulud</category><category>preinstall-hook</category><category>공급망공격</category></item><item><title>ARP 스푸핑 — 스위치 환경에서 어떻게 스니핑하나</title><link>https://mmyonaa.github.io/blog/2026-08-30-arp-spoofing/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-30-arp-spoofing/</guid><description>ARP에는 인증이 없다. 요청하지 않은 응답도 캐시에 반영된다는 이 한 줄이 ARP 스푸핑의 전부다. 캐시 오염으로 트래픽 경로를 훔치는 원리, 스위치 재밍·ICMP 리다이렉트와의 관계, 그리고 정적 ARP·DAI·포트 보안까지 정보보안기사 필기 관점으로 정리한다.</description><pubDate>Sun, 30 Aug 2026 10:20:29 GMT</pubDate><category>정보보안기사</category><category>네트워크보안</category><category>스푸핑</category><category>스니핑</category></item><item><title>리눅스 파일 권한과 SetUID·SetGID·스티키 비트</title><link>https://mmyonaa.github.io/blog/2026-08-30-linux-permission-setuid/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-30-linux-permission-setuid/</guid><description>리눅스 권한은 rwx 아홉 자리로 끝나지 않는다. 8진수 계산법과 디렉터리에서 달라지는 rwx의 의미를 정리하고, SetUID·SetGID·스티키 비트가 각각 무엇을 바꾸는지, 그리고 왜 find / -perm -4000이 서버 점검의 기본 항목인지까지 정보보안기사 필기 관점으로 짚는다.</description><pubDate>Sun, 30 Aug 2026 07:25:29 GMT</pubDate><category>정보보안기사</category><category>시스템보안</category><category>리눅스</category><category>권한</category></item><item><title>이진 트리 순회 — 전위·중위·후위</title><link>https://mmyonaa.github.io/blog/2026-08-29-binary-tree-traversal/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-29-binary-tree-traversal/</guid><description>이진 트리 순회의 세 방식인 전위·중위·후위를 예시 트리로 비교하고, 수식 트리와 표기법 변환, 순회 결과로 트리를 복원하는 조건, 레벨 순회와의 차이까지 정처기 필기 관점에서 정리한다.</description><pubDate>Sat, 29 Aug 2026 11:35:14 GMT</pubDate><category>정처기</category><category>자료구조</category><category>이진트리</category><category>트리순회</category><category>수식트리</category></item><item><title>MCP 도구가 JSON을 돌려준다 — outputSchema와 structuredContent</title><link>https://mmyonaa.github.io/blog/2026-08-28-mcp-tool-structured-output/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-28-mcp-tool-structured-output/</guid><description>MCP 도구 결과가 텍스트 content 하나에 갇혀 있던 시절과, outputSchema·structuredContent가 그 결과를 스키마로 검증된 JSON으로 바꾼 방식을 TypeScript SDK 코드로 정리한다.</description><pubDate>Fri, 28 Aug 2026 17:18:43 GMT</pubDate><category>mcp</category><category>outputSchema</category><category>structuredContent</category><category>typescript-sdk</category><category>zod</category></item><item><title>Claude Skills API가 정식 출시됐다 — 코드 실행 샌드박스 안에서 도는 스킬</title><link>https://mmyonaa.github.io/blog/2026-08-27-claude-skills-api-ga/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-27-claude-skills-api-ga/</guid><description>Anthropic이 2026년 8월 20일 Claude Platform에 정식 출시한 Skills API와 Files API를 뜯어본다. Claude Code Skill의 프롬프트 주입 방식과 달리 코드 실행 샌드박스 컨테이너 안에서 도는 실행 모델, 커스텀 스킬 업로드 규칙, 그리고 한 매체의 보도가 1차 문서와 어긋난 지점까지 정리한다.</description><pubDate>Thu, 27 Aug 2026 16:21:55 GMT</pubDate><category>skills-api</category><category>files-api</category><category>code-execution-tool</category><category>sandbox</category><category>mcp</category></item><item><title>Entra ID를 뚫는 역직렬화 결함 — CVSS 10.0, 그리고 엇갈리는 &quot;익스플로잇 여부&quot;</title><link>https://mmyonaa.github.io/blog/2026-08-26-entra-id-cve-2026-69836/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-26-entra-id-cve-2026-69836/</guid><description>마이크로소프트가 2026년 8월 20일 공개한 CVSS 10.0 Entra ID 원격코드실행 취약점 CVE-2026-69836을 정리한다. 역직렬화 결함의 구조와, &quot;실제 공격에 악용됐는가&quot;라는 핵심 사실이 출처마다 다르게 보도된 이유를 교차검증으로 짚는다.</description><pubDate>Wed, 26 Aug 2026 05:43:53 GMT</pubDate><category>Entra ID</category><category>CVE-2026-69836</category><category>역직렬화</category><category>원격코드실행</category></item><item><title>정렬 알고리즘 비교 — 버블·선택·삽입·퀵·병합</title><link>https://mmyonaa.github.io/blog/2026-08-25-sorting-algorithms-comparison/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-25-sorting-algorithms-comparison/</guid><description>버블·선택·삽입·퀵·병합 다섯 정렬 알고리즘을 시간복잡도와 안정성 기준으로 비교하고, 정처기 필기에서 자주 나오는 함정을 정리한다.</description><pubDate>Tue, 25 Aug 2026 05:39:24 GMT</pubDate><category>정처기</category><category>알고리즘</category><category>정렬</category><category>퀵정렬</category><category>병합정렬</category></item><item><title>MCP 로깅 capability — 서버가 클라이언트에게 실어 보내는 구조화된 로그</title><link>https://mmyonaa.github.io/blog/2026-08-24-mcp-logging-capability/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-24-mcp-logging-capability/</guid><description>MCP 서버가 stdout·stderr와는 별개로, 프로토콜 메시지 자체에 로그를 실어 클라이언트에게 보내는 logging capability를 다룬다. capability 선언, RFC 5424 8단계 레벨, sendLoggingMessage 코드, 클라이언트가 logging/setLevel로 볼륨을 조절하는 원리, 그리고 progress 알림과의 차이까지 실제 SDK 소스로 정리한다.</description><pubDate>Mon, 24 Aug 2026 05:46:37 GMT</pubDate><category>mcp</category><category>logging</category><category>typescript-sdk</category><category>capability</category></item><item><title>에이전트가 서로를 어떻게 찾나 — DNS를 디렉터리로 쓰는 DNS-AID</title><link>https://mmyonaa.github.io/blog/2026-08-23-dns-aid-mcp-agent-discovery/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-23-dns-aid-mcp-agent-discovery/</guid><description>Linux Foundation이 2026년 5월 발표한 DNS-AID는 새 DNS 레코드 타입 없이 SVCB·TXT·TLSA·DNSSEC을 조합해 AI 에이전트와 MCP 서버를 DNS로 발행·검색·검증하는 오픈소스 프로젝트다. A2A Agent Card와의 관계, 동작 원리, 지금 시도해볼 만한지를 정리한다.</description><pubDate>Sun, 23 Aug 2026 05:37:43 GMT</pubDate><category>mcp</category><category>dns-aid</category><category>a2a</category><category>dns</category><category>linux-foundation</category></item><item><title>라이브러리가 아니라 curl이 뚫린다 — libssh2 치명적 원격코드실행 (CVE-2026-55200)</title><link>https://mmyonaa.github.io/blog/2026-08-22-libssh2-cve-2026-55200/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-22-libssh2-cve-2026-55200/</guid><description>SSH 클라이언트 라이브러리 libssh2에서 발견된 CVSS 9.2 원격코드실행 취약점 CVE-2026-55200을 다룬다. packet_length 정수 오버플로가 힙 손상으로 이어지는 구조, curl·Git·PHP 등 클라이언트가 왜 피해자가 되는지, 그리고 2019년 같은 코드 영역에서 반복된 버그라는 맥락까지 정리한다.</description><pubDate>Sat, 22 Aug 2026 05:38:22 GMT</pubDate><category>libssh2</category><category>curl</category><category>rce</category><category>정수오버플로</category><category>cve</category></item><item><title>관계대수 — SQL 뒤에 숨은 연산자들</title><link>https://mmyonaa.github.io/blog/2026-08-21-relational-algebra/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-21-relational-algebra/</guid><description>관계형 데이터베이스에서 원하는 결과를 얻기 위해 테이블에 적용하는 연산의 집합인 관계대수. select와 project의 차이, union·difference·intersection의 합병 가능 조건, 세타 조인·동등 조인·자연 조인의 구분, 그리고 관계해석과의 대비까지 정처기 필기 관점에서 정리한다.</description><pubDate>Fri, 21 Aug 2026 05:40:16 GMT</pubDate><category>정처기</category><category>데이터베이스</category><category>관계대수</category><category>join</category></item><item><title>MCP Elicitation — 도구 실행 중 서버가 사람에게 되묻는 법</title><link>https://mmyonaa.github.io/blog/2026-08-20-mcp-elicitation-server-user-input/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-20-mcp-elicitation-server-user-input/</guid><description>MCP 도구가 실행 중에 사람에게 구조화된 입력을 되묻는 Elicitation을 다룬다. elicitation/create 요청의 message·requestedSchema 구조, 평평한 스키마 제약의 이유, accept·decline·cancel 세 응답 갈래, 그리고 Sampling과의 차이를 정리한다.</description><pubDate>Thu, 20 Aug 2026 05:40:31 GMT</pubDate><category>mcp</category><category>elicitation</category><category>json-schema</category><category>sampling</category></item><item><title>MCP 도구가 텍스트 대신 화면을 그린다 — MCP Apps 뜯어보기</title><link>https://mmyonaa.github.io/blog/2026-08-19-mcp-apps-interactive-ui/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-19-mcp-apps-interactive-ui/</guid><description>MCP 도구가 텍스트 대신 대화창 안에서 인터랙티브 UI를 돌려줄 수 있게 하는 공식 확장 MCP Apps를 뜯어본다. ui:// 리소스와 App 클래스로 동작하는 방식, iframe 샌드박스 보안 모델, 2025년 11월 제안부터 2026년 7월 확장 프레임워크 정식화까지의 타임라인을 정리한다.</description><pubDate>Wed, 19 Aug 2026 05:39:54 GMT</pubDate><category>mcp</category><category>mcp-apps</category><category>iframe</category><category>postmessage</category></item><item><title>GhostApproval — AI 코딩 에이전트의 승인 대화상자는 거짓말을 했다</title><link>https://mmyonaa.github.io/blog/2026-08-18-ghostapproval-symlink-ai-coding-agents/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-18-ghostapproval-symlink-ai-coding-agents/</guid><description>Wiz가 발견한 GhostApproval은 Claude Code·Cursor·Amazon Q 등 AI 코딩 에이전트 6종에서 심링크로 승인 대화상자를 속이는 패턴이다. 공격 원리와 벤더별 대응이 갈린 이유, 타임라인, 개발자 체크리스트를 정리한다.</description><pubDate>Tue, 18 Aug 2026 05:37:40 GMT</pubDate><category>claude code</category><category>cursor</category><category>symlink</category><category>cve</category></item><item><title>스택과 큐 — LIFO와 FIFO</title><link>https://mmyonaa.github.io/blog/2026-08-18-stack-queue-basics/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-18-stack-queue-basics/</guid><description>스택은 마지막에 넣은 것이 먼저 나오는 LIFO, 큐는 먼저 넣은 것이 먼저 나오는 FIFO 구조다. push·pop과 enqueue·dequeue 연산 추적, 스택으로 만들 수 없는 출력 순열, 원형 큐의 포화·공백 조건까지 정처기 필기에서 반복 출제되는 포인트를 정리한다.</description><pubDate>Tue, 18 Aug 2026 05:21:51 GMT</pubDate><category>정처기</category><category>자료구조</category><category>스택</category><category>큐</category><category>원형큐</category></item><item><title>SQL 명령어 분류 — DDL·DML·DCL</title><link>https://mmyonaa.github.io/blog/2026-08-18-sql-ddl-dml-dcl/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-18-sql-ddl-dml-dcl/</guid><description>SQL 문장은 구조를 만지면 DDL, 데이터를 만지면 DML, 권한을 만지면 DCL로 나뉜다. CREATE·ALTER·DROP·TRUNCATE와 SELECT·INSERT·UPDATE·DELETE, GRANT·REVOKE의 소속을 예제로 구분하고, DELETE vs TRUNCATE vs DROP, TCL 분류 문제 등 정처기 필기 단골 함정을 정리한다.</description><pubDate>Tue, 18 Aug 2026 05:21:35 GMT</pubDate><category>정처기</category><category>데이터베이스</category><category>sql</category><category>ddl</category><category>dml</category></item><item><title>소프트웨어 개발 방법론 — 폭포수·나선형·애자일</title><link>https://mmyonaa.github.io/blog/2026-08-18-dev-methodology/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-18-dev-methodology/</guid><description>개발 방법론은 소프트웨어를 만드는 절차와 산출물을 정해 둔 표준 진행 방식이다. 요구분석부터 유지보수까지 한 방향으로 가는 폭포수, 위험 분석을 반복하는 나선형, 짧은 주기로 동작하는 소프트웨어를 내놓는 애자일을 비교하고, 애자일 선언 네 가치와 Scrum·XP 구분까지 정처기 필기 단골 포인트를 정리한다.</description><pubDate>Tue, 18 Aug 2026 05:21:18 GMT</pubDate><category>정처기</category><category>소프트웨어공학</category><category>폭포수</category><category>애자일</category><category>스크럼</category></item><item><title>HTTP 상태 코드 정리 — 2xx부터 5xx까지</title><link>https://mmyonaa.github.io/blog/2026-08-17-http-status-codes/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-17-http-status-codes/</guid><description>HTTP 상태 코드는 응답 첫 줄의 세 자리 숫자로 요청 처리 결과를 알린다. 첫 자리로 갈리는 다섯 클래스와 2xx~5xx 대표 코드, 401 vs 403·301 vs 302·502 vs 503 vs 504처럼 헷갈리는 짝을 정처기 시험 관점에서 정리한다.</description><pubDate>Mon, 17 Aug 2026 05:42:32 GMT</pubDate><category>정처기</category><category>네트워크</category><category>http</category><category>상태코드</category></item><item><title>MCP가 세션을 버렸다 — 2026-07-28 스펙의 스테이트리스 전환</title><link>https://mmyonaa.github.io/blog/2026-08-16-mcp-2026-07-28-stateless-spec/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-16-mcp-2026-07-28-stateless-spec/</guid><description>MCP가 7월 28일 발표한 2026-07-28 스펙은 세션 핸드셰이크를 통째로 제거해 프로토콜을 스테이트리스로 바꿨다. 무엇이 왜 사라졌는지, 서버→클라이언트 요청은 어떻게 대체됐는지, Roots·Sampling·Logging의 폐기 일정과 SDK 마이그레이션까지 정리한다.</description><pubDate>Sun, 16 Aug 2026 09:21:23 GMT</pubDate><category>mcp</category><category>stateless</category><category>typescript-sdk</category><category>http</category></item><item><title>RLS(Row Level Security) — 테이블이 아니라 행에 거는 권한</title><link>https://mmyonaa.github.io/blog/2026-08-16-postgres-rls-supabase/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-16-postgres-rls-supabase/</guid><description>RLS는 PostgreSQL이 행 단위로 접근을 제어하는 장치다. GRANT와 무엇이 다른지, 정책이 조건식으로 동작하는 방식, 그리고 &quot;정책 없는 RLS&quot;가 테이블 전체를 잠그는 자물쇠가 되는 원리까지 — 브라우저가 DB를 직접 호출하는 Supabase에서 RLS가 유일한 방어선인 이유를 이 블로그의 조회수 구현으로 정리한다.</description><pubDate>Sun, 16 Aug 2026 08:40:13 GMT</pubDate><category>rls</category><category>supabase</category><category>postgresql</category><category>security-definer</category></item><item><title>MCP 도구에 annotations 달기 — description 밖에서 행동을 힌트하는 법</title><link>https://mmyonaa.github.io/blog/2026-08-16-mcp-tool-annotations/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-16-mcp-tool-annotations/</guid><description>MCP 도구는 description 말고도 annotations라는 채널로 자신의 행동 특성을 알릴 수 있다. readOnlyHint·destructiveHint·idempotentHint·openWorldHint 네 필드가 각각 무엇을 뜻하는지, 왜 힌트일 뿐 보장이 아닌지, registerTool에 실제로 붙이는 코드까지 정리한다.</description><pubDate>Sun, 16 Aug 2026 05:34:33 GMT</pubDate><category>mcp</category><category>tools</category><category>annotations</category><category>typescript</category></item><item><title>디자인 패턴 개요 — 생성·구조·행위</title><link>https://mmyonaa.github.io/blog/2026-08-15-design-patterns-overview/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-15-design-patterns-overview/</guid><description>GoF 디자인 패턴 23개는 생성·구조·행위 세 갈래로 나뉜다. 분류 기준(만드는 문제인가, 조립하는 문제인가, 협력하는 문제인가)을 잡고, Singleton·Factory Method·Adapter·Proxy·Observer·Strategy 등 시험에 자주 나오는 대표 패턴의 한 줄 정의와 매칭 요령을 정처기 필기 관점에서 정리한다.</description><pubDate>Sat, 15 Aug 2026 07:27:52 GMT</pubDate><category>정처기</category><category>소프트웨어공학</category><category>디자인패턴</category><category>GoF</category><category>싱글턴</category></item><item><title>접근통제 모델 — DAC·MAC·RBAC</title><link>https://mmyonaa.github.io/blog/2026-08-15-access-control/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-15-access-control/</guid><description>접근통제는 인증을 통과한 주체가 어떤 객체에 무엇을 할 수 있는지 제한하는 일이다. 소유자 재량의 DAC, 보안 등급 라벨로 강제하는 MAC, 역할에 권한을 묶는 RBAC를 비교하고, BLP·Biba 모델의 읽기·쓰기 방향까지 정처기 필기 단골 포인트를 정리한다.</description><pubDate>Sat, 15 Aug 2026 07:27:15 GMT</pubDate><category>정처기</category><category>정보보안</category><category>접근통제</category><category>RBAC</category><category>BLP</category></item><item><title>CPU 스케줄링 — 선점 vs 비선점</title><link>https://mmyonaa.github.io/blog/2026-08-15-cpu-scheduling/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-15-cpu-scheduling/</guid><description>CPU 스케줄링은 준비 큐의 프로세스 중 다음 CPU 사용자를 고르는 일이고, 실행 중인 프로세스에게서 CPU를 빼앗을 수 있느냐로 선점·비선점이 갈린다. FCFS·SJF·HRN·RR·SRT의 동작과 분류, HRN 우선순위 공식, 평균 대기 시간 계산까지 정처기 필기 단골 포인트를 정리한다.</description><pubDate>Sat, 15 Aug 2026 07:26:38 GMT</pubDate><category>정처기</category><category>운영체제</category><category>스케줄링</category><category>라운드로빈</category><category>HRN</category></item><item><title>시계열 데이터란 무엇인가 — 그리고 메트릭과 로그는 어떻게 갈리나</title><link>https://mmyonaa.github.io/blog/2026-08-15-time-series-metrics-vs-logs/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-15-time-series-metrics-vs-logs/</guid><description>시계열 데이터는 &quot;언제&quot;를 떼면 의미가 사라지는 데이터다. 덮어쓰지 않고 쌓이고, 최근일수록 뜨겁고, 범위 조회가 기본이라는 특성부터, 같은 시간축 위에서도 규칙적인 숫자(메트릭)와 불규칙한 사건(로그)으로 갈려 도구까지 달라지는 이유, 로그에서 메트릭을 뽑아내는 실전 예까지 정리한다.</description><pubDate>Sat, 15 Aug 2026 07:13:27 GMT</pubDate><category>시계열</category><category>메트릭</category><category>로그</category><category>prometheus</category></item><item><title>검색엔진에게 글의 정체 알려주기 — JSON-LD 구조화 데이터와 리치 스니펫</title><link>https://mmyonaa.github.io/blog/2026-08-15-json-ld-rich-snippet/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-15-json-ld-rich-snippet/</guid><description>사람이 보는 HTML만으로 검색엔진은 이 날짜가 발행일인지, 이 이름이 저자인지 추측해야 한다. JSON-LD 구조화 데이터는 그 추측을 없애는 크롤러 전용 명세다. schema.org BlogPosting을 Astro 블로그에 심는 실제 구현으로 형식과 필드를 뜯어보고, 그 보상인 리치 스니펫이 무엇이며 왜 자격이지 보장이 아닌지까지 정리한다.</description><pubDate>Sat, 15 Aug 2026 06:53:48 GMT</pubDate><category>json-ld</category><category>schema-org</category><category>seo</category><category>리치스니펫</category></item><item><title>SSG에서 &quot;3시간 전&quot;은 낡는다 — 상대 시각을 클라이언트에 맡기는 패턴</title><link>https://mmyonaa.github.io/blog/2026-08-15-ssg-relative-time-client/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-15-ssg-relative-time-client/</guid><description>정적 사이트에서 &quot;3시간 전&quot; 같은 상대 시각은 빌드 순간에 굳어 시간이 흐를수록 거짓이 된다. 원본 시각은 time 요소의 datetime 속성에 실어 보내고 표시는 보는 순간 클라이언트가 다시 계산하는 패턴 — 폴백을 남기는 progressive enhancement 방식과 트레이드오프까지, 이 블로그의 실제 구현으로 정리한다.</description><pubDate>Sat, 15 Aug 2026 06:51:36 GMT</pubDate><category>astro</category><category>ssg</category><category>progressive-enhancement</category><category>상대시각</category></item><item><title>React2Shell — CVSS 10.0이 흔들어놓은 React 생태계</title><link>https://mmyonaa.github.io/blog/2026-08-15-react2shell-rsc-rce/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-15-react2shell-rsc-rce/</guid><description>2025년 12월 CVSS 10.0으로 공개된 React Server Components의 원격 코드 실행 취약점 &quot;React2Shell&quot;(CVE-2025-55182/CVE-2025-66478)을 타임라인과 피해 규모, 개발자 체크리스트로 정리한다.</description><pubDate>Sat, 15 Aug 2026 06:18:05 GMT</pubDate><category>react</category><category>nextjs</category><category>rce</category><category>역직렬화</category><category>cisa-kev</category></item><item><title>MCP 도구가 URL을 받을 때 — SSRF는 왜 생기고 어떻게 막나</title><link>https://mmyonaa.github.io/blog/2026-08-15-mcp-tool-ssrf/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-15-mcp-tool-ssrf/</guid><description>MCP 도구가 URL을 인자로 받아 대신 요청을 보낼 때 생기는 SSRF 취약점을 다룬다. 문자열 패턴 매칭으로는 왜 못 막는지, 호스트명이 아니라 실제 연결되는 IP를 검사해야 하는 이유, DNS 리바인딩의 한계와 허용 목록이라는 더 단순한 대안까지 코드로 정리한다.</description><pubDate>Sat, 15 Aug 2026 05:33:00 GMT</pubDate><category>mcp</category><category>ssrf</category><category>dns-rebinding</category><category>node</category><category>url</category></item><item><title>키의 종류 — 기본키·후보키·슈퍼키·외래키</title><link>https://mmyonaa.github.io/blog/2026-08-14-db-keys/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-14-db-keys/</guid><description>관계형 데이터베이스에서 튜플을 유일하게 식별하는 키는 슈퍼키·후보키·기본키·대체키·외래키로 나뉜다. 슈퍼키 ⊇ 후보키라는 포함 관계, 후보키의 유일성·최소성 조건, 복합키와 자기참조 외래키의 예, 개체 무결성·참조 무결성 규칙까지 정처기 시험 관점에서 정리한다.</description><pubDate>Fri, 14 Aug 2026 06:21:28 GMT</pubDate><category>정처기</category><category>데이터베이스</category><category>기본키</category><category>외래키</category><category>후보키</category></item><item><title>MCP Sampling — 서버가 자기 LLM 없이 지능을 빌리는 법</title><link>https://mmyonaa.github.io/blog/2026-08-13-mcp-sampling/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-13-mcp-sampling/</guid><description>MCP의 세 primitive(Tools, Resources, Prompts)는 클라이언트가 서버에게 요청하는 방향이지만, Sampling은 그 반대다 — 서버가 클라이언트에게 LLM 완성을 요청한다. 서버가 API 키 없이도 지능을 빌리는 이 흐름의 동작 방식과, 이 블로그의 무인 발행 파이프라인이 대신 헤드리스 호출을 택한 이유를 코드로 정리한다.</description><pubDate>Thu, 13 Aug 2026 06:25:13 GMT</pubDate><category>mcp</category><category>sampling</category><category>llm</category><category>typescript</category></item><item><title>MCP 도구가 셸을 부를 때 — 커맨드 인젝션은 왜 생기고 어떻게 막나</title><link>https://mmyonaa.github.io/blog/2026-08-12-mcp-tool-command-injection/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-12-mcp-tool-command-injection/</guid><description>MCP 도구가 셸 명령을 실행할 때, 그 인자를 채우는 것은 사람이 아니라 LLM이다. 문자열을 조합해 exec에 넘기는 흔한 패턴이 왜 커맨드 인젝션으로 이어지는지, 간접 프롬프트 인젝션이 이 위험을 어떻게 키우는지, execFile로 셸을 아예 거치지 않는 해법까지 코드로 정리한다.</description><pubDate>Wed, 12 Aug 2026 06:20:50 GMT</pubDate><category>mcp</category><category>command-injection</category><category>child_process</category><category>prompt-injection</category><category>typescript</category></item><item><title>해시 함수와 전자서명</title><link>https://mmyonaa.github.io/blog/2026-08-11-hash-digital-signature/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-11-hash-digital-signature/</guid><description>해시 함수는 임의 길이 입력을 고정 길이 출력으로 압축하는 일방향 함수다. 이 성질이 왜 전자서명의 재료가 되는지, 개인키로 서명하고 공개키로 검증하는 절차와 그 절차가 인증·무결성·부인방지를 제공하는 이유를 정처기 시험 관점에서 정리한다.</description><pubDate>Tue, 11 Aug 2026 05:58:11 GMT</pubDate><category>정처기</category><category>정보보안</category><category>해시</category><category>전자서명</category><category>SHA-256</category></item><item><title>페이지 교체 알고리즘 — FIFO와 LRU</title><link>https://mmyonaa.github.io/blog/2026-08-10-page-replacement/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-10-page-replacement/</guid><description>페이지 폴트가 나면 어떤 페이지를 내보낼지 정하는 것이 페이지 교체 알고리즘이다. FIFO와 LRU의 교체 기준을 참조열 예제로 직접 비교하고, 프레임을 늘렸는데 폴트가 되레 느는 Belady&apos;s Anomaly가 왜 FIFO에서만 나타나는지 정처기 시험 관점에서 정리한다.</description><pubDate>Mon, 10 Aug 2026 05:29:44 GMT</pubDate><category>정처기</category><category>운영체제</category><category>페이지교체</category><category>FIFO</category><category>LRU</category></item><item><title>MCP 서버에 오케스트레이터 붙이기 — 뼈대는 스크립트가, 지능은 claude -p가</title><link>https://mmyonaa.github.io/blog/2026-08-10-agent-sdk-orchestrator/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-10-agent-sdk-orchestrator/</guid><description>MCP 서버와 cron 사이의 빈칸 — 에이전트를 깨우고 성공을 판정하는 오케스트레이터를 만들었다. Agent SDK 라이브러리 대신 셸 스크립트 + claude -p 헤드리스를 고른 이유, 성공 판정을 모델의 말이 아니라 파일시스템에 두는 설계, 슬래시 프롬프트가 헤드리스에서 발동되지 않아 프롬프트를 텍스트로 주입한 우회까지 실제 코드로 정리한다.</description><pubDate>Mon, 10 Aug 2026 05:14:27 GMT</pubDate><category>agent-sdk</category><category>claude code</category><category>오케스트레이터</category><category>자동발행</category><category>headless</category></item><item><title>AI 에이전트 빌더가 뚫리면 금고가 열린다 — Langflow 무인증 RCE (CVE-2026-9198)</title><link>https://mmyonaa.github.io/blog/2026-08-10-langflow-rce-cve-2026-9198/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-10-langflow-rce-cve-2026-9198/</guid><description>CISA가 8월 5일 KEV 카탈로그에 올린 Langflow 무인증 RCE(CVE-2026-9198, CVSS 9.8)는 인증 없는 기본 설정과 코드 실행 엔드포인트가 겹쳐 만든 구멍이다. 에이전트 오케스트레이션 도구는 모델 API 키·DB 자격증명·커넥터 토큰이 모이는 금고라 RCE의 피해가 배가된다. 취약점 구조와 지금 확인할 점검 목록을 정리한다.</description><pubDate>Mon, 10 Aug 2026 05:03:35 GMT</pubDate><category>langflow</category><category>rce</category><category>cisa-kev</category><category>에이전트</category><category>cve</category></item><item><title>동적 계획법 입문 — 메모이제이션과 점화식</title><link>https://mmyonaa.github.io/blog/2026-08-06-dp-intro/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-06-dp-intro/</guid><description>같은 부분 문제를 반복 계산하는 낭비를 없애는 것이 동적 계획법이다. 피보나치 재귀가 왜 느린지에서 출발해 메모이제이션(top-down)과 타뷸레이션(bottom-up)의 차이, 상태 정의→점화식→초기값이라는 점화식 세우기 3단계, 코딩테스트에서 DP 문제를 알아보는 신호까지 실행 가능한 코드로 정리한다.</description><pubDate>Thu, 06 Aug 2026 03:35:32 GMT</pubDate><category>알고리즘</category><category>dp</category><category>메모이제이션</category><category>점화식</category><category>코딩테스트</category></item><item><title>IP 주소와 서브넷팅 기초</title><link>https://mmyonaa.github.io/blog/2026-08-05-ip-subnetting/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-05-ip-subnetting/</guid><description>IPv4 주소는 네트워크부와 호스트부로 나뉘고, 그 경계를 정하는 것이 서브넷 마스크다. 클래스 A·B·C의 구분 기준, CIDR 표기, 하나의 네트워크를 여러 서브넷으로 쪼개는 계산 절차를 예제로 밟고, 호스트 수 2^n-2와 브로드캐스트 주소 찾기 등 정처기 단골 출제 포인트를 정리한다.</description><pubDate>Wed, 05 Aug 2026 03:42:41 GMT</pubDate><category>정처기</category><category>네트워크</category><category>ip</category><category>서브넷팅</category><category>cidr</category></item><item><title>BFS와 DFS — 그래프 탐색의 두 축</title><link>https://mmyonaa.github.io/blog/2026-08-02-bfs-dfs/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-02-bfs-dfs/</guid><description>그래프 탐색의 두 축 BFS와 DFS는 큐냐 스택이냐로 갈린다. 같은 그래프에 두 탐색을 돌려 순서 차이를 확인하고, BFS는 최단 거리·DFS는 백트래킹이라는 용도 구분, 방문 체크 시점과 재귀 깊이라는 코딩테스트 단골 함정까지 실행 가능한 코드로 정리한다.</description><pubDate>Sun, 02 Aug 2026 12:39:23 GMT</pubDate><category>알고리즘</category><category>그래프</category><category>bfs</category><category>dfs</category><category>코딩테스트</category></item><item><title>MCP vs A2A — 도구에 꽂는 연결과 에이전트끼리의 대화</title><link>https://mmyonaa.github.io/blog/2026-08-02-mcp-vs-a2a/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-02-mcp-vs-a2a/</guid><description>MCP가 에이전트 아래로 도구를 꽂는 수직 연결이라면, A2A는 에이전트끼리 옆으로 대화하는 수평 연결이다. 상대를 스키마가 정해진 함수로 보느냐, 속을 알 수 없는 행위자로 보느냐 — 두 프로토콜이 다른 문제를 푸는 이유를 Agent Card와 Task 개념으로 정리한다.</description><pubDate>Sun, 02 Aug 2026 12:39:07 GMT</pubDate><category>mcp</category><category>a2a</category><category>에이전트</category><category>개념</category></item><item><title>Claude Code에 내 MCP 서버 붙여 테스트하기 — 스펙이 아니라 클라이언트가 검증한다</title><link>https://mmyonaa.github.io/blog/2026-08-02-claude-code-testing/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-08-02-claude-code-testing/</guid><description>MCP 서버의 진짜 검증은 단위 테스트가 아니라 실전 클라이언트다. claude mcp add 한 줄로 Claude Code에 붙이고, 도구 선택·거부 메시지·경계 강제라는 상호작용 단위의 테스트법과 stdout 오염·재빌드 미스 같은 함정을 이 프로젝트의 Phase 2 경험으로 정리한다.</description><pubDate>Sun, 02 Aug 2026 12:37:49 GMT</pubDate><category>mcp</category><category>claude code</category><category>stdio</category><category>테스트</category></item><item><title>MCP와 function calling은 뭐가 다른가 — 표현 형식과 공급 규격</title><link>https://mmyonaa.github.io/blog/2026-07-31-mcp-vs-function-calling/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-31-mcp-vs-function-calling/</guid><description>MCP와 function calling은 경쟁 관계가 아니라 다른 층에 있다. function calling은 모델이 도구 호출 의사를 표현하는 출력 형식이고, MCP는 그 형식에 흘려 넣을 도구를 조달하는 공급 규격이다. 두 층이 한 번의 도구 호출에서 어떻게 맞물리는지 실제 요청 형태로 구분한다.</description><pubDate>Fri, 31 Jul 2026 02:53:12 GMT</pubDate><category>mcp</category><category>function-calling</category><category>llm</category><category>개념</category></item><item><title>블랙박스 테스트 vs 화이트박스 테스트</title><link>https://mmyonaa.github.io/blog/2026-07-29-blackbox-whitebox/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-29-blackbox-whitebox/</guid><description>테스트를 나누는 축은 &quot;코드 내부를 보느냐&quot;다. 블랙박스의 동등 분할·경계값 분석과 화이트박스의 구문·분기·조건·경로 커버리지를 예제 코드로 구분하고, 커버리지 강도 비교와 기법 분류라는 정처기 단골 출제 포인트를 정리한다.</description><pubDate>Wed, 29 Jul 2026 03:09:34 GMT</pubDate><category>정처기</category><category>소프트웨어공학</category><category>테스트</category><category>커버리지</category></item><item><title>인덱스는 어떻게 조회를 빠르게 하나</title><link>https://mmyonaa.github.io/blog/2026-07-29-db-index/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-29-db-index/</guid><description>인덱스는 정렬된 별도 구조(B-tree)로 조회를 O(log n)으로 줄이는 대신 쓰기와 공간을 비용으로 치른다. 범위 검색이 되는 B-tree와 등호 전용 해시의 차이, 선택도, 복합 인덱스의 컬럼 순서, 클러스터드 vs 넌클러스터드까지 정처기 시험 관점에서 정리한다.</description><pubDate>Wed, 29 Jul 2026 03:08:58 GMT</pubDate><category>정처기</category><category>데이터베이스</category><category>인덱스</category><category>b-tree</category></item><item><title>구독 vs API 키 — 자동 발행의 Claude 호출은 어느 지갑에 물릴 것인가</title><link>https://mmyonaa.github.io/blog/2026-07-29-subscription-vs-api-cost/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-29-subscription-vs-api-cost/</guid><description>매일 자동 발행의 Claude 호출 비용을 어디에 물릴 것인가. 구독(정액 한도제)과 API 키(종량제)의 구조 차이, CI에서 환경변수 하나로 갈리는 인증, 하루 1회 발행의 비용 어림, 그리고 이 프로젝트가 API 키를 고른 이유 — 격리 관점에서 정리한다.</description><pubDate>Wed, 29 Jul 2026 03:06:58 GMT</pubDate><category>claude code</category><category>anthropic</category><category>api</category><category>비용</category><category>github-actions</category></item><item><title>MCP 도구 에러를 LLM에게 잘 전달하기 — isError는 로그가 아니라 지시문이다</title><link>https://mmyonaa.github.io/blog/2026-07-28-mcp-error-handling/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-28-mcp-error-handling/</guid><description>MCP에서 도구 실패는 프로토콜 에러와 실행 에러 두 층으로 나뉘고, 실행 에러는 isError: true를 얹은 정상 결과로 돌아간다. 이 텍스트는 LLM이 읽고 행동을 바꾸는 입력이다 — 무엇이·왜 실패했고 다음에 뭘 하면 되는지를 담는 에러 메시지 설계법을 실제 코드로 정리한다.</description><pubDate>Tue, 28 Jul 2026 02:46:55 GMT</pubDate><category>mcp</category><category>tools</category><category>에러처리</category><category>typescript</category></item><item><title>GitHub Actions cron으로 매일 도는 자동화 짜기</title><link>https://mmyonaa.github.io/blog/2026-07-27-github-actions-cron/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-27-github-actions-cron/</guid><description>매일 글을 자동 발행하려면 스케줄러가 필요하다. 서버에 crontab을 거는 대신 GitHub Actions의 schedule 트리거로 매일 도는 워크플로를 만든다. UTC 시차, 정시 지연, 60일 비활성화 같은 함정과 workflow_dispatch를 함께 두는 이유까지, 그대로 쓸 수 있는 워크플로 파일로 정리한다.</description><pubDate>Mon, 27 Jul 2026 13:01:31 GMT</pubDate><category>github-actions</category><category>cron</category><category>workflow-dispatch</category><category>자동발행</category></item><item><title>Astro와 CSS의 궁합 — scoped가 기본값인 프레임워크</title><link>https://mmyonaa.github.io/blog/2026-07-26-astro-css-scoped-styles/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-26-astro-css-scoped-styles/</guid><description>Astro에서 CSS는 컴포넌트 안에 그냥 쓰면 자동으로 격리되고, 출력은 순수 CSS로 남는다. scoped가 기본값이라는 철학, 전역으로 나가는 문(is:global·:global), define:vars로 서버 값을 스타일에 넘기는 법, 런타임 CSS-in-JS와 상성이 나쁜 이유, 그리고 번들 순서라는 함정까지 — Astro의 스타일링이 React 계열과 어떻게 다른지 정리한다.</description><pubDate>Sun, 26 Jul 2026 05:19:30 GMT</pubDate><category>astro</category><category>css</category><category>scoped-style</category><category>css-in-js</category><category>define-vars</category></item><item><title>블로그를 직접 만들면 얻는 것과 잃는 것 — 내 블로그 vs velog</title><link>https://mmyonaa.github.io/blog/2026-07-26-self-built-blog-vs-velog/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-26-self-built-blog-vs-velog/</guid><description>GitHub Pages에 Astro로 직접 지은 블로그를 velog와 항목별로 비교했다. 직접 구축이 실제로 주는 것(디자인·읽기 경험·기능의 제어권)과 구조적으로 포기하는 것(독자 유입·통계·편의), 그리고 그 격차를 좁히는 현실적 보완책을 정리한다.</description><pubDate>Sun, 26 Jul 2026 04:46:48 GMT</pubDate><category>velog</category><category>github-pages</category><category>astro</category><category>ssg</category></item><item><title>개발자 블로그, 어디에 쓸까 — velog·Tistory·Medium·GitHub Pages 비교</title><link>https://mmyonaa.github.io/blog/2026-07-26-dev-blog-platform-comparison/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-26-dev-blog-platform-comparison/</guid><description>개발 블로그를 시작할 때 첫 결정은 글감이 아니라 플랫폼이다. velog·Tistory·Medium·GitHub Pages 네 갈래를 &apos;제어권 vs 독자 유입&apos;이라는 하나의 트레이드오프 축으로 놓고, 목적별로 무엇을 골라야 하는지 비교한다.</description><pubDate>Sun, 26 Jul 2026 04:45:57 GMT</pubDate><category>velog</category><category>tistory</category><category>medium</category><category>github-pages</category><category>블로그</category></item><item><title>Claude Code Skill은 어떻게 로딩되나 — 이름만 넣고 본문은 필요할 때</title><link>https://mmyonaa.github.io/blog/2026-07-26-claude-code-skills-progressive-disclosure/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-26-claude-code-skills-progressive-disclosure/</guid><description>Claude Code의 Skill은 반복 워크플로를 파일 하나로 패키징한다. 세션에는 이름·설명만 올라가고 본문은 발동될 때만 펼쳐지는 progressive disclosure 구조, 자동·수동 두 발동 경로, 그리고 &apos;코드 실행이 아니라 지시문 주입&apos;이라는 정체를 정리한다.</description><pubDate>Sun, 26 Jul 2026 04:31:51 GMT</pubDate><category>claude code</category><category>스킬</category><category>progressive-disclosure</category><category>slash-command</category><category>SKILL.md</category></item><item><title>LLM이 도구를 잘 고르게 하는 description 쓰기</title><link>https://mmyonaa.github.io/blog/2026-07-26-tool-description-design/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-26-tool-description-design/</guid><description>MCP 도구는 LLM이 스스로 고른다. 이때 모델이 보는 건 구현 코드가 아니라 이름·description·입력 스키마뿐이다. 설명문이 곧 도구의 인터페이스인 이유와, 무엇을·언제·경계를 담아 선택률을 높이는 실무 규칙을 예제로 정리한다.</description><pubDate>Sun, 26 Jul 2026 04:22:00 GMT</pubDate><category>mcp</category><category>tools</category><category>llm</category><category>도구설명</category><category>zod</category></item><item><title>이진 탐색 — 정렬된 배열에서 O(log n)</title><link>https://mmyonaa.github.io/blog/2026-07-23-binary-search/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-23-binary-search/</guid><description>정렬된 배열에서 후보를 매번 절반씩 지워 O(log n)에 찾는 이진 탐색. 동작 원리와 자주 틀리는 경계·오버플로 함정, 값이 없어도 위치를 찾는 lower/upper bound, 그리고 답을 직접 못 세는 문제를 이진 탐색으로 바꾸는 매개변수 탐색까지 정리한다.</description><pubDate>Thu, 23 Jul 2026 07:55:27 GMT</pubDate><category>알고리즘</category><category>이진탐색</category><category>매개변수탐색</category><category>코딩테스트</category></item><item><title>ponytail 뜯어보기 — LLM 호출 없이 룰셋만 주입해 에이전트를 게으르게 만드는 스킬</title><link>https://mmyonaa.github.io/blog/2026-07-23-ponytail-lazy-agent-ruleset/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-23-ponytail-lazy-agent-ruleset/</guid><description>ponytail은 AI 에이전트의 과잉엔지니어링을 막는 오픈소스 스킬이다. 흥미로운 건 LLM을 전혀 호출하지 않고 룰셋 텍스트만 주입한다는 점 — 이 블로그가 지향하는 &apos;무료 MCP&apos; 원칙과 정확히 같은 구조다. 결정 사다리라는 룰의 정체, skill·hook·MCP 세 배포 형태, 그리고 MCP가 왜 같은 룰을 prompt와 tool 양쪽으로 노출하는지 뜯어본다.</description><pubDate>Thu, 23 Jul 2026 07:45:30 GMT</pubDate><category>ponytail</category><category>mcp</category><category>claude code</category><category>스킬</category><category>yagni</category></item><item><title>시간복잡도와 Big-O 표기법</title><link>https://mmyonaa.github.io/blog/2026-07-23-big-o-notation/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-23-big-o-notation/</guid><description>프로그램의 빠르기는 실행 시간이 아니라 입력이 커질 때 연산이 늘어나는 속도로 잰다. Big-O가 무엇을 버리고 무엇을 남기는지, 대표 복잡도의 감, 같은 문제를 O(n²)에서 O(n)으로 줄이는 예제, 그리고 코딩테스트에서 입력 크기로 허용 복잡도를 어림하는 법까지 정리한다.</description><pubDate>Thu, 23 Jul 2026 07:40:08 GMT</pubDate><category>알고리즘</category><category>시간복잡도</category><category>Big-O</category><category>코딩테스트</category></item><item><title>pm2로 무중단 배포하기 — restart 말고 reload</title><link>https://mmyonaa.github.io/blog/2026-07-23-pm2-zero-downtime-reload/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-23-pm2-zero-downtime-reload/</guid><description>pm2 restart는 프로세스를 한꺼번에 죽였다 살려 그 사이 요청이 끊긴다. 클러스터 모드에서 reload는 프로세스를 하나씩 교체해 다운타임 없이 배포한다. restart와 reload의 차이, graceful shutdown 처리, 배포 흐름을 정리한다.</description><pubDate>Thu, 23 Jul 2026 07:06:56 GMT</pubDate><category>pm2</category><category>무중단배포</category><category>reload</category><category>클러스터</category><category>graceful-shutdown</category></item><item><title>nginx에 HTTPS 붙이기 — Let&apos;s Encrypt로 무료 인증서와 SSL 종료</title><link>https://mmyonaa.github.io/blog/2026-07-23-nginx-https-lets-encrypt/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-23-nginx-https-lets-encrypt/</guid><description>nginx를 앞단에 두면 HTTPS 처리를 거기서 끝낼 수 있다(SSL 종료). Let&apos;s Encrypt와 certbot으로 무료 인증서를 발급·자동 갱신하고, 80→443 리다이렉트까지 실제 설정으로 붙여본다.</description><pubDate>Thu, 23 Jul 2026 07:06:19 GMT</pubDate><category>nginx</category><category>https</category><category>lets-encrypt</category><category>certbot</category><category>ssl</category></item><item><title>pm2가 뭔지 — Node 앱을 죽지 않게 지켜 굴리는 도구</title><link>https://mmyonaa.github.io/blog/2026-07-23-what-is-pm2/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-23-what-is-pm2/</guid><description>pm2는 Node 앱을 백그라운드에서 죽지 않게 굴려주는 프로세스 매니저다. 크래시 자동 재시작, 부팅 시 자동 실행, 클러스터 모드로 CPU 코어 전부 쓰기, 로그 관리까지 — node app.js 한 줄로는 안 되는 운영을 실제 명령으로 정리한다.</description><pubDate>Thu, 23 Jul 2026 07:01:16 GMT</pubDate><category>pm2</category><category>node</category><category>프로세스매니저</category><category>클러스터</category></item><item><title>nginx가 뭔지 — 요청을 받아 나눠주는 웹 서버</title><link>https://mmyonaa.github.io/blog/2026-07-23-what-is-nginx/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-23-what-is-nginx/</guid><description>nginx는 들어오는 HTTP 요청을 가장 먼저 받아 정적 파일을 내주거나 뒤쪽 앱으로 넘기는 웹 서버다. 정적 서빙·리버스 프록시·로드 밸런싱이라는 세 가지 역할과, 왜 이벤트 기반 구조로 많은 연결을 견디는지 실제 설정으로 정리한다.</description><pubDate>Thu, 23 Jul 2026 07:00:36 GMT</pubDate><category>nginx</category><category>reverse-proxy</category><category>웹서버</category><category>로드밸런싱</category></item><item><title>대시보드엔 0원, 카드엔 226억 — Claude 요금 청구 오류가 드러낸 것</title><link>https://mmyonaa.github.io/blog/2026-07-23-claude-billing-error/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-23-claude-billing-error/</guid><description>2026년 여름 Anthropic의 요금 청구 오류가 잇따랐다. 무료 사용자에게 날아온 $16.6M 유령 청구, 파일 이름 하나가 요금제를 바꾼 HERMES.md 버그, 기업 과다청구 감사까지 — 세 사건을 결제 시스템 설계 관점에서 뜯어본다.</description><pubDate>Thu, 23 Jul 2026 06:40:14 GMT</pubDate><category>anthropic</category><category>claude code</category><category>청구오류</category><category>auto-reload</category><category>hermes.md</category></item><item><title>slug이란 무엇인가 — URL 끝의 사람이 읽는 이름</title><link>https://mmyonaa.github.io/blog/2026-07-23-url-slug/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-23-url-slug/</guid><description>slug은 URL 끝에 붙는 사람이 읽을 수 있는 식별자다. 신문 은어에서 온 이 말이 왜 웹 주소에 쓰이는지, 좋은 slug의 규칙과 한글 slug가 URL을 깨뜨리는 이유, 그리고 이 블로그가 slug를 다루는 방식까지 정리한다.</description><pubDate>Thu, 23 Jul 2026 00:31:47 GMT</pubDate><category>slug</category><category>url</category><category>seo</category><category>퍼머링크</category><category>kebab-case</category></item><item><title>대칭키 vs 비대칭키 암호화</title><link>https://mmyonaa.github.io/blog/2026-07-23-symmetric-asymmetric/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-23-symmetric-asymmetric/</guid><description>암호화는 키를 어떻게 쓰느냐로 대칭키와 비대칭키로 갈린다. 두 방식의 원리와 장단점, 대표 알고리즘, 그리고 둘을 함께 쓰는 하이브리드 방식까지 정처기 시험 관점에서 정리한다.</description><pubDate>Thu, 23 Jul 2026 00:21:11 GMT</pubDate><category>정처기</category><category>정보보안</category><category>암호화</category><category>대칭키</category><category>비대칭키</category></item><item><title>TCP vs UDP — 무엇이 다른가</title><link>https://mmyonaa.github.io/blog/2026-07-22-tcp-vs-udp/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-22-tcp-vs-udp/</guid><description>전송 계층의 두 대표 프로토콜 TCP와 UDP를, 연결 방식·신뢰성·헤더 구조·속도의 차이로 나눠 정리한다. 3-way handshake와 흐름·혼잡 제어, 그리고 각각이 언제 쓰이는지까지 정처기 시험 관점에서 짚는다.</description><pubDate>Wed, 22 Jul 2026 08:36:04 GMT</pubDate><category>정처기</category><category>네트워크</category><category>전송계층</category><category>TCP</category><category>UDP</category></item><item><title>교착상태(데드락)의 4가지 조건</title><link>https://mmyonaa.github.io/blog/2026-07-22-deadlock-conditions/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-22-deadlock-conditions/</guid><description>교착상태는 여러 프로세스가 서로의 자원을 기다리며 아무도 진행하지 못하는 상태다. 데드락이 성립하는 4가지 필요조건과 예방·회피·탐지·회복이라는 네 갈래 처리 방법을 정처기 시험 관점에서 정리한다.</description><pubDate>Wed, 22 Jul 2026 04:39:25 GMT</pubDate><category>정처기</category><category>운영체제</category><category>데드락</category><category>은행원알고리즘</category></item><item><title>프리렌더링이란 — vite-ssg가 빌드 때 HTML을 미리 찍어두는 법</title><link>https://mmyonaa.github.io/blog/2026-07-21-vite-ssg-prerendering/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-21-vite-ssg-prerendering/</guid><description>프리렌더링은 빌드 시점에 각 페이지를 완성된 HTML로 미리 만들어 두는 것이다. vite-ssg가 Node 안에서 Vue 앱을 실행해 라우트를 돌고, 동적 경로까지 HTML로 뽑아 파일로 저장하는 과정을 단계별로 짚는다.</description><pubDate>Tue, 21 Jul 2026 02:20:02 GMT</pubDate><category>vite-ssg</category><category>ssg</category><category>vue</category><category>프리렌더</category><category>하이드레이션</category></item><item><title>정처기 실기 C언어 코딩 문제 — 포인터와 배열 추적하기</title><link>https://mmyonaa.github.io/blog/2026-07-20-c-pointer-array-problems/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-20-c-pointer-array-problems/</guid><description>정처기 실기의 C언어 코딩 문제는 대부분 포인터와 배열을 손으로 추적하면 풀린다. 주소 연산의 규칙, *(p+n)과 배열 첨자의 관계, 포인터로 값을 바꾸는 함수까지 대표 유형을 실제 코드로 짚는다.</description><pubDate>Mon, 20 Jul 2026 07:06:16 GMT</pubDate><category>정처기</category><category>C언어</category><category>포인터</category><category>배열</category><category>실기</category></item><item><title>정처기 실기 Python 코딩 문제 — 슬라이싱과 자료구조 추적</title><link>https://mmyonaa.github.io/blog/2026-07-20-python-slicing-datastructure-problems/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-20-python-slicing-datastructure-problems/</guid><description>정처기 실기 Python 문제는 리스트 슬라이싱, 딕셔너리, 얕은 복사 함정을 코드 추적으로 낸다. a[start:stop:step]의 규칙과 참조 복사, 컴프리헨션까지 대표 유형을 실제 출력과 함께 정리한다.</description><pubDate>Mon, 20 Jul 2026 07:05:40 GMT</pubDate><category>정처기</category><category>Python</category><category>슬라이싱</category><category>자료구조</category><category>실기</category></item><item><title>정처기 실기 Java 코딩 문제 — 상속과 오버라이딩 출력의 함정</title><link>https://mmyonaa.github.io/blog/2026-07-20-java-inheritance-overriding-problems/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-20-java-inheritance-overriding-problems/</guid><description>정처기 실기 Java 문제는 상속·오버라이딩·다형성으로 출력을 헷갈리게 만든다. 필드는 정적 바인딩, 메서드는 동적 바인딩이라는 한 가지 규칙과 super·생성자 호출 순서를 대표 코드로 추적한다.</description><pubDate>Mon, 20 Jul 2026 07:05:14 GMT</pubDate><category>정처기</category><category>Java</category><category>상속</category><category>오버라이딩</category><category>실기</category></item><item><title>SSR vs CSR vs SSG — 완성된 HTML은 누가, 언제 만드는가</title><link>https://mmyonaa.github.io/blog/2026-07-20-ssr-vs-csr-vs-ssg/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-20-ssr-vs-csr-vs-ssg/</guid><description>SSR·CSR·SSG는 결국 &quot;완성된 HTML을 누가, 언제 만드는가&quot;라는 한 질문에 대한 세 가지 대답이다. 브라우저에 도착하는 것의 차이부터 트레이드오프, 하이드레이션, 페이지 단위 선택 기준까지 비교해 정리한다.</description><pubDate>Mon, 20 Jul 2026 06:09:06 GMT</pubDate><category>ssr</category><category>csr</category><category>ssg</category><category>렌더링</category><category>seo</category></item><item><title>Astro 블로그에 RSS 피드 달기 — 정적 사이트와 RSS는 찰떡이다</title><link>https://mmyonaa.github.io/blog/2026-07-20-astro-rss-feed/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-20-astro-rss-feed/</guid><description>뉴스레터도 알고리즘도 없이 새 글을 독자에게 알리는 가장 오래된 방법, RSS. 정적 블로그와 RSS가 왜 잘 맞는지 짚고, @astrojs/rss로 피드 엔드포인트를 실제 코드로 만들어본다.</description><pubDate>Mon, 20 Jul 2026 05:01:17 GMT</pubDate><category>rss</category><category>astro</category><category>ssg</category><category>피드</category></item><item><title>Claude Code는 MCP 클라이언트이자 에이전트다 — 한 프로그램의 두 역할</title><link>https://mmyonaa.github.io/blog/2026-07-20-claude-code-client-and-agent/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-20-claude-code-client-and-agent/</guid><description>Claude Code는 MCP 클라이언트인가, 에이전트인가? 둘 다다. 층위가 다른 두 역할이 우연히 같은 소프트웨어에 담겨 있을 뿐이다. 프로토콜 역할과 런타임 역할을 분리해 본다.</description><pubDate>Mon, 20 Jul 2026 01:35:33 GMT</pubDate><category>mcp</category><category>에이전트</category><category>claude code</category><category>개념</category></item><item><title>MCP·에이전트·오케스트레이터는 각각 무엇인가 — 세 층위 구분하기</title><link>https://mmyonaa.github.io/blog/2026-07-20-mcp-vs-agent-vs-orchestrator/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-20-mcp-vs-agent-vs-orchestrator/</guid><description>MCP, 에이전트, 오케스트레이터는 자주 뒤섞여 쓰이지만 서로 다른 층에 있다. 도구를 공급하는 규격, 스스로 도구를 고르는 행위자, 그리고 여러 행위자를 지휘하는 조정자로 나눠 정리한다.</description><pubDate>Mon, 20 Jul 2026 01:34:48 GMT</pubDate><category>mcp</category><category>에이전트</category><category>llm</category><category>개념</category></item><item><title>AI 하네스란 무엇인가 — 모델과 에이전트 사이의 껍데기</title><link>https://mmyonaa.github.io/blog/2026-07-20-what-is-ai-harness/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-20-what-is-ai-harness/</guid><description>LLM은 텍스트를 뱉을 뿐 스스로 파일을 읽거나 도구를 부르지 못한다. 그 모델을 감싸 실제로 일을 시키는 바깥 루프가 &apos;하네스&apos;다. 하네스가 무엇을 맡는지, MCP는 그 안에서 어디에 끼는지 정리한다.</description><pubDate>Mon, 20 Jul 2026 01:27:41 GMT</pubDate><category>llm</category><category>에이전트</category><category>mcp</category><category>개념</category></item><item><title>SSG란 무엇인가 — 그리고 Astro는 왜 SSG로 시작하나</title><link>https://mmyonaa.github.io/blog/2026-07-20-what-is-ssg-astro/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-20-what-is-ssg-astro/</guid><description>SSG는 요청이 올 때마다 페이지를 만드는 대신, 빌드 때 HTML을 미리 다 찍어두는 방식이다. SSR·CSR과 뭐가 다른지 정리하고, Astro가 왜 기본을 SSG로 잡는지까지 짚는다.</description><pubDate>Mon, 20 Jul 2026 01:24:26 GMT</pubDate><category>ssg</category><category>astro</category><category>performance</category><category>아키텍처</category></item><item><title>MCP Prompt로 반복 워크플로 패키징하기</title><link>https://mmyonaa.github.io/blog/2026-07-20-prompts-workflow/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-20-prompts-workflow/</guid><description>MCP의 세 번째 primitive인 Prompt는 도구가 아니라 &apos;재사용 가능한 대화 템플릿&apos;이다. 매번 길게 풀어 쓰던 지시를 슬래시 명령 하나로 바꾸는 법을 실제 서버 코드로 정리한다.</description><pubDate>Mon, 20 Jul 2026 01:20:00 GMT</pubDate><category>mcp</category><category>prompts</category><category>typescript</category></item><item><title>보안 다이제스트 — 2026-07-19</title><link>https://mmyonaa.github.io/blog/2026-07-19-security-digest-2026-07-19/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-19-security-digest-2026-07-19/</guid><description>최근 보안 소식을 짧게 훑는다. 사상 최대 규모의 7월 패치 튜즈데이, SAP 치명 취약점 3건, 그리고 MCP를 쓰는 개발자가 지금 확인해야 할 SDK 버전까지.</description><pubDate>Sun, 19 Jul 2026 14:00:00 GMT</pubDate><category>패치튜즈데이</category><category>제로데이</category><category>sap</category><category>mcp</category><category>요청스머글링</category></item><item><title>MCP는 지금 보안 시험대에 올라 있다 — 2026년 사고들과 내 서버 점검법</title><link>https://mmyonaa.github.io/blog/2026-07-19-mcp-security-incidents-2026/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-19-mcp-security-incidents-2026/</guid><description>2026년 들어 MCP 생태계에서 굵직한 보안 사고가 이어졌다. SDK 설계 결함과 CVE-2026-25536을 정리하고, 내가 만든 서버가 영향받는지 직접 확인하는 법까지 짚는다.</description><pubDate>Sun, 19 Jul 2026 10:00:00 GMT</pubDate><category>보안</category><category>mcp</category><category>취약점</category></item><item><title>zod는 검증기가 아니라 파서다</title><link>https://mmyonaa.github.io/blog/2026-07-18-zod-parse-dont-validate/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-18-zod-parse-dont-validate/</guid><description>zod를 &apos;값이 맞는지 확인하는 도구&apos;로만 쓰면 절반만 쓰는 것이다. coerce·transform·refine으로 입력을 원하는 모양으로 바꿔 내보내고, safeParse로 에러를 값처럼 다루고, 스키마를 조합해 재사용하는 법을 정리한다.</description><pubDate>Sat, 18 Jul 2026 15:04:01 GMT</pubDate><category>zod</category><category>typescript</category><category>validation</category></item><item><title>Astro 아일랜드 아키텍처 — 필요한 곳에만 자바스크립트를 보내기</title><link>https://mmyonaa.github.io/blog/2026-07-18-astro-island-architecture/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-18-astro-island-architecture/</guid><description>페이지 전체를 자바스크립트로 되살리는 대신, 상호작용이 필요한 조각만 섬처럼 띄우는 Astro의 아일랜드 아키텍처. client:* 지시어의 의미부터 섬 사이 상태 공유까지 정리한다.</description><pubDate>Sat, 18 Jul 2026 15:01:16 GMT</pubDate><category>astro</category><category>island</category><category>performance</category><category>ssg</category></item><item><title>정보보안 3요소 — 기밀성·무결성·가용성</title><link>https://mmyonaa.github.io/blog/2026-07-18-security-cia/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-18-security-cia/</guid><description>정보보안의 기본 목표인 CIA 삼각형을 기밀성·무결성·가용성으로 나눠 정리하고, 위협 유형과 대응 기술, 확장 요소까지 정처기 시험 관점에서 짚는다.</description><pubDate>Sat, 18 Jul 2026 14:45:26 GMT</pubDate><category>정처기</category><category>정보보안</category><category>CIA</category><category>보안요소</category></item><item><title>트랜잭션과 ACID 원칙</title><link>https://mmyonaa.github.io/blog/2026-07-18-transaction-acid/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-18-transaction-acid/</guid><description>트랜잭션의 정의와 상태 변화, ACID 4원칙, 격리 수준과 그에 따른 이상 현상까지 정처기 시험 관점에서 정리한다.</description><pubDate>Sat, 18 Jul 2026 14:39:52 GMT</pubDate><category>정처기</category><category>데이터베이스</category><category>트랜잭션</category><category>ACID</category></item><item><title>프로세스 vs 스레드</title><link>https://mmyonaa.github.io/blog/2026-07-17-process-vs-thread/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-17-process-vs-thread/</guid><description>운영체제 단골 비교인 프로세스와 스레드를, 무엇을 공유하고 무엇을 따로 갖는지 중심으로 정리한다.</description><pubDate>Fri, 17 Jul 2026 09:00:00 GMT</pubDate><category>정처기</category><category>운영체제</category><category>프로세스</category></item><item><title>결합도와 응집도 — 좋은 모듈의 두 잣대</title><link>https://mmyonaa.github.io/blog/2026-07-17-coupling-cohesion/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-17-coupling-cohesion/</guid><description>좋은 설계는 모듈을 어떻게 나누느냐로 갈린다. 결합도는 모듈 사이의 의존을, 응집도는 모듈 안의 뭉침을 잰다. 각각의 단계와 &quot;낮은 결합·높은 응집&quot;이 왜 목표인지 정리한다.</description><pubDate>Fri, 17 Jul 2026 06:06:47 GMT</pubDate><category>정처기</category><category>소프트웨어공학</category><category>설계</category></item><item><title>zod로 MCP 도구 입력 스키마 정의하기</title><link>https://mmyonaa.github.io/blog/2026-07-17-zod-input-schema/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-17-zod-input-schema/</guid><description>MCP 도구는 LLM이 채워 보내는 인자를 받는다. zod로 입력 스키마를 선언하면 JSON Schema 생성·런타임 검증·타입 추론을 한 번에 얻는다. 왜 필요한지와 실제 정의 방법을 정리한다.</description><pubDate>Fri, 17 Jul 2026 06:05:59 GMT</pubDate><category>mcp</category><category>zod</category><category>typescript</category></item><item><title>OSI 7계층 한눈에 정리</title><link>https://mmyonaa.github.io/blog/2026-07-17-osi-7-layers/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-17-osi-7-layers/</guid><description>OSI 7계층은 네트워크 통신을 7개의 역할로 나눈 참조 모델이다. 각 계층이 무엇을 책임지는지, 대표 프로토콜과 장비는 무엇인지, 왜 계층으로 나누는지를 정리한다.</description><pubDate>Fri, 17 Jul 2026 06:01:43 GMT</pubDate><category>정처기</category><category>네트워크</category><category>osi</category></item><item><title>데이터베이스 정규화 — 1NF부터 BCNF까지</title><link>https://mmyonaa.github.io/blog/2026-07-17-db-normalization/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-17-db-normalization/</guid><description>정규화는 데이터 중복과 이상현상을 없애기 위해 테이블을 단계적으로 쪼개는 과정이다. 이상현상이 왜 생기는지부터 1NF·2NF·3NF·BCNF를 예제로 하나씩 밟아본다.</description><pubDate>Fri, 17 Jul 2026 05:37:12 GMT</pubDate><category>정처기</category><category>데이터베이스</category><category>정규화</category></item><item><title>MCP Resource로 LLM에게 컨텍스트 읽히기</title><link>https://mmyonaa.github.io/blog/2026-07-17-resources-context/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-17-resources-context/</guid><description>MCP Resource는 도구가 아니라 LLM이 읽어들이는 데이터다. 도구와 무엇이 다른지, URI로 무엇을 노출하는지, 그리고 실제 서버에서 어떻게 구현하는지 살펴본다.</description><pubDate>Fri, 17 Jul 2026 05:35:41 GMT</pubDate><category>mcp</category><category>resources</category><category>개념</category></item><item><title>Astro Content Collection으로 마크다운 블로그 만들기</title><link>https://mmyonaa.github.io/blog/2026-07-16-astro-content-collection/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-16-astro-content-collection/</guid><description>마크다운 폴더를 스키마가 붙은 타입 안전한 데이터로 바꾸는 Astro Content Collection. 컬렉션 정의부터 목록·상세 페이지 렌더링까지 블로그 한 채를 통째로 만들어본다.</description><pubDate>Thu, 16 Jul 2026 12:00:00 GMT</pubDate><category>astro</category><category>ssg</category><category>typescript</category></item><item><title>TypeScript로 첫 stdio MCP 서버 만들기</title><link>https://mmyonaa.github.io/blog/2026-07-16-first-stdio-mcp-server/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-16-first-stdio-mcp-server/</guid><description>도구 하나를 가진 가장 작은 MCP 서버를 TypeScript로 처음부터 만든다. 패키지 준비부터 Claude Code에 붙여 굴리기까지 단계별로 따라간다.</description><pubDate>Thu, 16 Jul 2026 11:15:00 GMT</pubDate><category>mcp</category><category>typescript</category><category>stdio</category></item><item><title>MCP 서버는 왜 stdout에 로그를 찍으면 안 되나 — stdout vs stderr</title><link>https://mmyonaa.github.io/blog/2026-07-16-mcp-stdout-stderr/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-16-mcp-stdout-stderr/</guid><description>stdio MCP 서버에서 console.log 한 줄이 연결을 통째로 깨뜨릴 수 있다. stdout이 통신 채널인 이유와, 로그를 stderr로 보내야 하는 까닭을 짚는다.</description><pubDate>Thu, 16 Jul 2026 10:30:00 GMT</pubDate><category>mcp</category><category>node</category><category>stdio</category></item><item><title>왜 블로그에 DB 대신 파일 + git을 쓰나</title><link>https://mmyonaa.github.io/blog/2026-07-16-files-git-vs-db/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-16-files-git-vs-db/</guid><description>개인 블로그의 글을 데이터베이스가 아니라 마크다운 파일과 git으로 관리하면 무엇이 좋은가. 저장소 선택이 프로젝트의 성격을 어떻게 바꾸는지 짚는다.</description><pubDate>Thu, 16 Jul 2026 00:59:07 GMT</pubDate><category>아키텍처</category><category>ssg</category><category>git</category></item><item><title>TypeScript에서 import 경로에 왜 .js를 붙일까 — NodeNext 모듈 해석</title><link>https://mmyonaa.github.io/blog/2026-07-15-typescript-nodenext-js-extension/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-15-typescript-nodenext-js-extension/</guid><description>TS 파일인데 import에는 .js를 쓴다. 어색해 보이는 이 규칙이 사실 Node ESM과 tsc 동작의 필연적 결과임을 짚는다.</description><pubDate>Wed, 15 Jul 2026 09:12:00 GMT</pubDate><category>typescript</category><category>esm</category><category>tsconfig</category></item><item><title>stdio vs HTTP — MCP transport 고르기</title><link>https://mmyonaa.github.io/blog/2026-07-15-mcp-transport-stdio-vs-http/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-15-mcp-transport-stdio-vs-http/</guid><description>MCP 클라이언트와 서버는 stdio 또는 HTTP로 연결된다. 두 transport의 동작 방식과 언제 무엇을 골라야 하는지 정리한다.</description><pubDate>Wed, 15 Jul 2026 08:02:23 GMT</pubDate><category>mcp</category><category>transport</category></item><item><title>MCP의 3대 primitive — Tools, Resources, Prompts</title><link>https://mmyonaa.github.io/blog/2026-07-15-mcp-3-primitives/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-15-mcp-3-primitives/</guid><description>MCP 서버가 LLM에게 노출하는 세 가지 기본 요소 Tools·Resources·Prompts를 각각 언제 쓰는지 구분한다.</description><pubDate>Wed, 15 Jul 2026 03:48:33 GMT</pubDate><category>mcp</category><category>개념</category></item><item><title>MCP란 무엇인가 — LLM에게 도구를 쥐여주는 프로토콜</title><link>https://mmyonaa.github.io/blog/2026-07-15-what-is-mcp/</link><guid isPermaLink="true">https://mmyonaa.github.io/blog/2026-07-15-what-is-mcp/</guid><description>LLM은 혼자 외부 세계를 만지지 못한다. MCP가 그 연결을 어떻게 표준화하는지, 클라이언트·서버 구조와 도구 정의를 통해 살펴본다.</description><pubDate>Wed, 15 Jul 2026 03:43:32 GMT</pubDate><category>mcp</category><category>개념</category></item></channel></rss>