{
  "updated_at": "2026-10-19T21:47:54+09:00",
  "lang": "ko",
  "count": 12,
  "docs": [
    {
      "slug": "react",
      "title": "React — 사용자 인터페이스 라이브러리",
      "summary": "웹과 네이티브 화면을 컴포넌트 단위로 만드는 자바스크립트 라이브러리입니다. 무엇을 해결하는지와 공식 시작점을 정리했습니다.",
      "type": "catalog",
      "group": "webfw",
      "env": "React 19.x (2026-10 기준 19.2.x), JavaScript/TypeScript",
      "verified": "2026-10-19",
      "updated_at": "2026-10-19T19:40:00+09:00",
      "related": [],
      "sources": [
        {
          "kind": "github",
          "url": "https://github.com/facebook/react",
          "title": "facebook/react",
          "note": "공식 저장소"
        },
        {
          "kind": "official",
          "url": "https://react.dev/",
          "title": "react.dev",
          "note": "공식 문서"
        },
        {
          "kind": "official",
          "url": "https://react.dev/blog/2024/12/05/react-19",
          "title": "React v19 소개",
          "note": "현재 메이저 버전"
        }
      ]
    },
    {
      "slug": "fastapi-quickstart",
      "title": "FastAPI 시작하기 — Python으로 API 만들기",
      "summary": "Python으로 자동 문서가 붙는 REST API를 빠르게 만드는 방법을 설치부터 최소 예제까지 정리했습니다.",
      "type": "guides",
      "group": "webfw",
      "env": "Python 3.9+, FastAPI 0.142.x, uv 또는 pip",
      "verified": "2026-10-19",
      "updated_at": "2026-10-19T19:40:00+09:00",
      "related": [
        "module-not-found-error"
      ],
      "sources": [
        {
          "kind": "github",
          "url": "https://github.com/fastapi/fastapi",
          "title": "fastapi/fastapi",
          "note": "공식 저장소"
        },
        {
          "kind": "official",
          "url": "https://fastapi.tiangolo.com/tutorial/",
          "title": "공식 튜토리얼",
          "note": "단계별 학습"
        },
        {
          "kind": "official",
          "url": "https://fastapi.tiangolo.com/release-notes/",
          "title": "릴리스 노트",
          "note": "버전 확인"
        }
      ]
    },
    {
      "slug": "docker-webapp-db",
      "title": "Docker Compose로 웹앱과 데이터베이스 함께 실행",
      "summary": "애플리케이션과 PostgreSQL를 한 번에 띄우고 서로 연결하는 절차입니다. 자주 막히는 연결·준비 문제까지 다룹니다.",
      "type": "procedures",
      "group": "infra",
      "env": "Docker 24+, Docker Compose v2, PostgreSQL 16",
      "verified": "2026-10-19",
      "updated_at": "2026-10-19T19:40:00+09:00",
      "related": [
        "module-not-found-error"
      ],
      "sources": [
        {
          "kind": "official",
          "url": "https://docs.docker.com/compose/",
          "title": "Docker Compose 공식 문서",
          "note": "Compose v2"
        },
        {
          "kind": "github",
          "url": "https://github.com/docker-library/postgres/issues/537",
          "title": "postgres 이미지 환경변수 이슈",
          "note": "POSTGRES_USER/DB 확인"
        },
        {
          "kind": "stackoverflow",
          "url": "https://forums.docker.com/t/problem-connecting-to-a-postgresql-database-in-a-docker-stack/150634",
          "title": "Compose 안에서 DB 연결 문제",
          "note": "localhost가 아닌 서비스 이름 사용"
        }
      ]
    },
    {
      "slug": "module-not-found-error",
      "title": "ModuleNotFoundError: No module named 해결",
      "summary": "Python에서 가장 자주 만나는 import 오류의 원인과 진단·해결 절차를 정리했습니다. 대부분은 실행 중인 파이썬 환경 불일치입니다.",
      "type": "troubleshooting",
      "group": "lang",
      "env": "Python 3.x, pip, 가상환경(venv)",
      "verified": "2026-10-19",
      "updated_at": "2026-10-19T19:40:00+09:00",
      "related": [
        "fastapi-quickstart"
      ],
      "sources": [
        {
          "kind": "stackoverflow",
          "url": "https://stackoverflow.com/questions/338768/python-error-importerror-no-module-named",
          "title": "ImportError: No module named",
          "note": "오래됐지만 원인이 여전히 동일한 고전 질문"
        },
        {
          "kind": "stackoverflow",
          "url": "https://stackoverflow.com/questions/43728431/relative-imports-modulenotfounderror-no-module-named-x",
          "title": "상대 import와 ModuleNotFoundError",
          "note": "패키지 구조 관련"
        },
        {
          "kind": "official",
          "url": "https://docs.python.org/3/library/venv.html",
          "title": "공식 venv 문서",
          "note": "가상환경 개념"
        }
      ]
    },
    {
      "slug": "vue",
      "title": "Vue — 점진적 자바스크립트 프레임워크",
      "summary": "화면을 컴포넌트 단위로 만들고 필요할 때만 기능을 붙여 나가는 프레임워크입니다. 진입 장벽이 낮아 처음 프레임워크를 배울 때 자주 선택됩니다.",
      "type": "catalog",
      "group": "webfw",
      "env": "Vue 3.x (2026-10 기준 3.5.x), JavaScript/TypeScript",
      "verified": "2026-10-19",
      "updated_at": "2026-10-19T20:10:00+09:00",
      "related": [
        "react"
      ],
      "sources": [
        {
          "kind": "github",
          "url": "https://github.com/vuejs/core",
          "title": "vuejs/core",
          "note": "공식 저장소"
        },
        {
          "kind": "official",
          "url": "https://vuejs.org/",
          "title": "vuejs.org",
          "note": "공식 문서"
        },
        {
          "kind": "official",
          "url": "https://vuejs.org/guide/introduction.html",
          "title": "Introduction",
          "note": "개념 안내"
        }
      ]
    },
    {
      "slug": "tailwindcss",
      "title": "Tailwind CSS — 유틸리티 우선 CSS",
      "summary": "미리 만들어 둔 작은 클래스 이름을 조합해 스타일을 만드는 방식입니다. 별도 CSS 파일을 크게 늘리지 않고 화면을 구성할 수 있습니다.",
      "type": "catalog",
      "group": "webfw",
      "env": "Tailwind CSS 4.x (2026-10 기준), 빌드 도구와 함께 사용",
      "verified": "2026-10-19",
      "updated_at": "2026-10-19T20:10:00+09:00",
      "related": [
        "react",
        "vue"
      ],
      "sources": [
        {
          "kind": "github",
          "url": "https://github.com/tailwindlabs/tailwindcss",
          "title": "tailwindlabs/tailwindcss",
          "note": "공식 저장소"
        },
        {
          "kind": "official",
          "url": "https://tailwindcss.com/docs/installation",
          "title": "Installation",
          "note": "설치 문서"
        }
      ]
    },
    {
      "slug": "git-branching",
      "title": "Git 브랜치 작업 흐름",
      "summary": "기능 단위로 브랜치를 만들어 작업하고, 검토 후 병합하는 기본 흐름을 단계별로 정리했습니다.",
      "type": "guides",
      "group": "tools",
      "env": "Git 2.40+ (모든 OS)",
      "verified": "2026-10-19",
      "updated_at": "2026-10-19T20:10:00+09:00",
      "related": [
        "github-actions-ci"
      ],
      "sources": [
        {
          "kind": "official",
          "url": "https://git-scm.com/doc",
          "title": "git-scm.com/doc",
          "note": "공식 문서"
        },
        {
          "kind": "official",
          "url": "https://git-scm.com/book/ko/v2",
          "title": "Pro Git (한국어)",
          "note": "무료 전자책"
        }
      ]
    },
    {
      "slug": "python-venv",
      "title": "Python 가상환경(venv) 사용법",
      "summary": "프로젝트마다 독립된 패키지 공간을 만들어, 버전 충돌과 전역 설치 문제를 줄이는 방법입니다.",
      "type": "guides",
      "group": "lang",
      "env": "Python 3.9+ (표준 라이브러리 포함)",
      "verified": "2026-10-19",
      "updated_at": "2026-10-19T20:10:00+09:00",
      "related": [
        "module-not-found-error",
        "fastapi-quickstart"
      ],
      "sources": [
        {
          "kind": "official",
          "url": "https://docs.python.org/3/library/venv.html",
          "title": "venv — Python docs",
          "note": "공식 문서"
        },
        {
          "kind": "official",
          "url": "https://packaging.python.org/en/latest/tutorials/installing-packages/",
          "title": "Installing Packages",
          "note": "패키징 가이드"
        }
      ]
    },
    {
      "slug": "github-actions-ci",
      "title": "GitHub Actions로 CI 자동화하기",
      "summary": "push할 때마다 자동으로 테스트를 돌리는 기본 CI 워크플로를 만드는 절차입니다.",
      "type": "procedures",
      "group": "tools",
      "env": "GitHub 저장소, Node 또는 Python 프로젝트",
      "verified": "2026-10-19",
      "updated_at": "2026-10-19T20:10:00+09:00",
      "related": [
        "git-branching",
        "docker-multistage"
      ],
      "sources": [
        {
          "kind": "official",
          "url": "https://docs.github.com/actions",
          "title": "GitHub Actions docs",
          "note": "공식 문서"
        },
        {
          "kind": "github",
          "url": "https://github.com/actions/checkout",
          "title": "actions/checkout",
          "note": "공식 액션"
        }
      ]
    },
    {
      "slug": "docker-multistage",
      "title": "Docker 멀티스테이지 빌드로 이미지 줄이기",
      "summary": "빌드 도구와 실행에 필요한 것만 남겨 이미지 크기를 크게 줄이는 절차입니다.",
      "type": "procedures",
      "group": "infra",
      "env": "Docker 24+",
      "verified": "2026-10-19",
      "updated_at": "2026-10-19T20:10:00+09:00",
      "related": [
        "docker-webapp-db",
        "github-actions-ci"
      ],
      "sources": [
        {
          "kind": "official",
          "url": "https://docs.docker.com/build/building/multi-stage/",
          "title": "Multi-stage builds",
          "note": "공식 문서"
        },
        {
          "kind": "github",
          "url": "https://github.com/nodejs/docker-node",
          "title": "nodejs/docker-node",
          "note": "공식 Node 이미지"
        }
      ]
    },
    {
      "slug": "cors-error",
      "title": "CORS 오류 — 브라우저가 요청을 막을 때",
      "summary": "프론트엔드에서 API를 호출했는데 'blocked by CORS policy'가 뜨는 상황의 원인과 해결 방법입니다.",
      "type": "troubleshooting",
      "group": "webfw",
      "env": "브라우저 + 별도 도메인의 API 서버",
      "verified": "2026-10-19",
      "updated_at": "2026-10-19T20:10:00+09:00",
      "related": [
        "fastapi-quickstart"
      ],
      "sources": [
        {
          "kind": "official",
          "url": "https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS",
          "title": "MDN — CORS",
          "note": "공식 문서"
        },
        {
          "kind": "stackoverflow",
          "url": "https://stackoverflow.com/questions/20035101/why-does-my-javascript-get-a-no-access-control-allow-origin-header-error",
          "title": "SO 20035101",
          "note": "대표 질문"
        }
      ]
    },
    {
      "slug": "port-already-in-use",
      "title": "포트가 이미 사용 중 — EADDRINUSE 해결",
      "summary": "서버를 켰는데 'address already in use'로 죽는 상황의 원인과, 점유 프로세스를 찾아 정리하는 방법입니다.",
      "type": "troubleshooting",
      "group": "infra",
      "env": "macOS / Linux / Windows",
      "verified": "2026-10-19",
      "updated_at": "2026-10-19T20:10:00+09:00",
      "related": [
        "fastapi-quickstart",
        "docker-multistage"
      ],
      "sources": [
        {
          "kind": "stackoverflow",
          "url": "https://stackoverflow.com/questions/9893645/node-js-eaddrinuse-error",
          "title": "SO 9893645",
          "note": "대표 질문"
        },
        {
          "kind": "official",
          "url": "https://nodejs.org/api/errors.html",
          "title": "Node.js errors",
          "note": "공식 문서"
        }
      ]
    }
  ]
}