{
  "$comment": "공개본. visibility=private 항목과 그 이름의 모든 언급이 제거됐다. /api/catalog.json 으로 공개해도 안전한 것은 이 파일이다.",
  "version": 1,
  "generatedAt": "2026-08-16T11:10:39Z",
  "person": {
    "name": "서효다",
    "alternateName": [
      "Seo Hyoda",
      "hyoda"
    ],
    "email": "seohyoda@gmail.com",
    "url": "https://hyoda.kr/",
    "github": "https://github.com/hyoda",
    "jobTitle": "소프트웨어 개발자 · 데이터 모델러",
    "summary": "19년차 개발자. 데이터를 지식으로 구조화한다. 만드는 사람이 개발자를 거치지 않고 만들 수 있도록 지식 영속성·배포·AI 활용·발견의 바닥을 깐다.",
    "mission": "나는 인프라와 환경을 잡아주고, 그들은 디테일을 심는다.",
    "disambiguation": "동명이인 주의 — 이 엔터티는 개발자이며 GitHub @hyoda 로 식별된다. 작가·공예가 등 다른 '서효' 인물과 무관하다.",
    "catchphrase": "나는 인프라와 환경을 잡아주고, 그들은 디테일을 심는다.",
    "catchphraseAddressed": "나는 인프라와 환경을 잡고, 당신은 디테일을 심는다.",
    "catchphraseNote": "두 형태가 있고 둘 다 맞다. 정본(catchphrase)은 본인이 쓴 3인칭 문장이고, 사이트 표기(catchphraseAddressed)는 방문자에게 직접 말하기 위한 2인칭 각색이다. 허브에서 '그들' 이라고 하면 읽는 사람이 자기 얘기로 받지 않는다. **세 번째 형태가 생기면 그때는 표류다** — ops/verify.sh 가 막는다."
  },
  "roles": [
    {
      "org": "한 핀테크 스타트업",
      "title": "데이터 전문가(모델러) · 백엔드 개발자",
      "form": "프리랜서",
      "since": "2026",
      "current": true,
      "note": "해당 서비스 앱 — 고도화 및 오픈 준비 (내부 기록용)",
      "source": "본인 확인 2026-08",
      "publicOrg": "한 핀테크 스타트업",
      "publicNote": "데이터 모델링·백엔드. 오픈 준비 중인 서비스",
      "disclose": false,
      "redactAliases": [
        "한 핀테크 스타트업",
        "해당 서비스",
        "해당 서비스",
        "해당 서비스",
        "해당 서비스",
        "해당 서비스"
      ]
    },
    {
      "org": "미라클쿠지",
      "title": "파트너",
      "form": "파트너",
      "since": "2026-08",
      "current": true,
      "note": "前 CTO 겸 유일 개발자. 미라클타임 앱",
      "source": "본인 확인 2026-08",
      "publicOrg": "미라클쿠지",
      "disclose": true
    },
    {
      "org": "데브마인랩",
      "title": "대표",
      "form": "개인사업자",
      "since": "2022-10",
      "current": true,
      "note": "응용 소프트웨어 개발 및 공급",
      "source": "본인 확인",
      "publicOrg": "데브마인랩",
      "disclose": true
    }
  ],
  "claims": [
    {
      "id": "career-years",
      "statement": "개발 경력",
      "value": "19년 3개월",
      "method": "위시켓 이력서 집계 (2026-03 기준)",
      "source": "위시켓 이력서",
      "verifiedAt": "2026-03"
    },
    {
      "id": "wishket-rating",
      "statement": "위시켓 평점",
      "value": "5.00 / 5.00",
      "method": "플랫폼 인증 평점, 상위 1% 프리랜서",
      "source": "위시켓 인증",
      "verifiedAt": "2026-03"
    },
    {
      "id": "copyright",
      "statement": "한국저작권위원회 프로그램 등록",
      "value": "C-2026-005914",
      "method": "등록번호 공개",
      "source": "AI 기반 쇼핑몰 데이터 수집 및 등록 자동화 시스템",
      "verifiedAt": "2026"
    },
    {
      "id": "pirs",
      "statement": "PIRS — 개인정보 유출 대응 모의훈련 플랫폼 구축",
      "value": "49일 · 커밋 441 · 배포 281회 · 이슈 150/151 종료(99.3%) · 51,001 LOC",
      "method": "저장소 실측 집계. 개발기간 2026-01-07~02-25, 배포 v0.1.1~v0.1.281, GitHub 이슈 151개 생성/150개 종료, TS·TSX 260개 파일 51,001 LOC, DB 마이그레이션 46개.",
      "source": "내부 1차 문서",
      "verifiedAt": "2026-02-25",
      "note": "계약 금액은 싣지 않는다 — 클라이언트 계약 정보이고 상대 동의 없이 공개할 사안이 아니다. 이전 버전에 금액이 적혀 있었으나 근거 문서에 없어 제거했다."
    },
    {
      "id": "legacy-refactor",
      "statement": "레거시 저장 프로시저 재작성",
      "value": "8만 줄 → 2만 줄",
      "method": "리팩토링 전후 라인 수",
      "source": "위시켓 이력서 (2020)",
      "verifiedAt": "2020"
    },
    {
      "id": "booking-rate",
      "statement": "리조트 레벨 요금 시스템 — 예약율 개선",
      "value": "30~60% → 80~95%",
      "method": "도입 전후 예약율",
      "source": "위시켓 이력서 (2020)",
      "verifiedAt": "2020"
    },
    {
      "id": "hansol-ref",
      "statement": "한솔인티큐브 레퍼런스 체크",
      "value": "통과",
      "method": "위시켓 인증 레퍼런스",
      "source": "\"연차 대비 전문성이 매우 탁월하신 분입니다.\"",
      "verifiedAt": "2021"
    },
    {
      "id": "pirs-scope",
      "statement": "PIRS — MVP 요구사항 달성",
      "value": "14/14 (100%) + 추가 구현 15건",
      "method": "MVP 계획 대비 달성 현황표. 5단계 훈련 시뮬레이션·7가지 질문유형·자동채점·기업포탈·관리자콘솔 등 14개 전부 완료, 계획 외 15개 추가 구현.",
      "source": "내부 1차 문서",
      "verifiedAt": "2026-02-25"
    },
    {
      "id": "census",
      "statement": "전국 매장 census 수집 가능성 실측",
      "value": "17개 시도 완주 · distinct 2,167 · 외부 오라클 대비 갭 14%(within) · 삼각측량 종합 PASS",
      "method": "삼각측량 3축 동시 판정 — A 내부일관성(무절단·무손실·소진, leaf 71개 전량 소진·캡도달 0), B 엔드포인트 수렴(union 2,167 · new_id_rate 0.0 · converged), C 외부 오라클 대조(공식 1,900 vs 관측 2,166 · 갭 +14% · 허용 15% 이내). 폴라이트 1.5 req/s · 90콜 · throttle 0건. 시도별 합 2,575와 distinct 2,167의 차이 408은 인접 시군구 경계 중복으로 id 중복제거 흡수.",
      "source": "내부 1차 문서",
      "verifiedAt": "2026-06-21",
      "note": "발주 맥락과 대상 브랜드명은 싣지 않는다 — 배제 원칙(클라이언트 실명) 적용. 방법론과 수치만 싣는다."
    },
    {
      "id": "unstructured",
      "statement": "비정형 → 정형 데이터 실적",
      "value": "상품 카테고리 매칭·자동등록 100만 건 · 오프라인 매장 정형화 38만 매장 · 인허가 데이터 190개 업종",
      "method": "각 프로젝트의 처리 건수 집계. 핵심 역량(비정형을 정형으로)의 규모 증거.",
      "source": "내부 1차 문서",
      "verifiedAt": "2026-06"
    },
    {
      "id": "api-integrity",
      "statement": "카드혜택 API 정합성 회복",
      "value": "55.8% → 97.2%",
      "method": "운영 로그 실측 기반 회복안 적용 전후 정합성.",
      "source": "내부 1차 문서",
      "verifiedAt": "2026",
      "note": "고객사·벤더·내부 식별자 비공개. 패턴과 수치만 싣는다."
    },
    {
      "id": "crawlcat",
      "statement": "CrawlCat — 이커머스 상품등록 자동화",
      "value": "326 릴리즈 · 등록시간 90%↓ · 오류 95%↓",
      "method": "릴리즈 카운트 및 도입 전후 비교.",
      "source": "내부 1차 문서",
      "verifiedAt": "2026"
    },
    {
      "id": "releases",
      "statement": "누적 산출",
      "value": "40+ 프로젝트 · 자사 제품 6종 · 600+ 릴리즈",
      "method": "프로젝트·제품·릴리즈 누적 집계.",
      "source": "내부 1차 문서",
      "verifiedAt": "2026"
    },
    {
      "id": "collab-workation",
      "statement": "협업형 워케이션 실증 — 15일 합숙 협업",
      "value": "브랜드(BI) 설계를 반나절에 · 거의 무비용",
      "method": "마음 맞는 참여자들과 15일 장기 합숙하며 일하는 구조. 각자 다른 역량을 가진 소집단이 한 자리에 모이자 아침 식사 전후 짧은 시간에 브랜드 아이덴티티가 나왔다. 협업형(공유형이 아닌) 구조의 효과를 보여주는 사례.",
      "source": "내부 1차 문서",
      "verifiedAt": "2023",
      "note": "과거 에이전시 견적과의 비교 금액은 싣지 않는다 — 근거가 견적 기억이고 비교 조건이 다르다."
    },
    {
      "id": "capex-zero",
      "statement": "공공 제안 설계 — 신축 0(CAPEX 0) 원칙",
      "value": "기존 유휴 공간 재활용 · 3년 한정 위탁(BTO형) + 인수인계 내장",
      "method": "‘센터’를 건물이 아니라 운영 역량(데이터팀+SOP+멤버십 엔진)으로 정의하고, 이미 있는 유휴 그릇에 프로그램·데이터·사람을 넣는 설계. 자생력을 형용사가 아니라 연도별 보조금 의존도 하락 곡선으로 규정.",
      "source": "내부 1차 문서",
      "verifiedAt": "2026-06"
    },
    {
      "id": "namhae-diagnosis",
      "statement": "공공 데이터 진단 — 지자체 관광 통계 정합성",
      "value": "두 출처 간 163만(23%) 불일치 규명 · ‘판정 기준 부재’로 재정의",
      "method": "무인계수기(물리 통과 카운트)와 통신신호 기반 추정 모델을 대조해 같은 기간 23% 격차를 확인하고, 원인을 ‘어느 쪽의 오류’가 아니라 ‘정의·관측단위 상이’로 규명. 이어 실제 인구통계 데이터가 월 300명 QR 설문(자기선택 표본)뿐임을 확인해 ‘방문객이 누구인지 판정할 기준 데이터가 없다’로 진단을 재정의.",
      "source": "내부 1차 문서",
      "verifiedAt": "2026-06",
      "note": "지자체명·구체 시설명은 싣지 않는다 — 진단 대상 기관의 정보다. 방법론과 격차 규모만 싣는다."
    },
    {
      "id": "namhae-chatbot",
      "statement": "남해 워케이션 지역정보 챗봇 — 협업형 실물",
      "value": "수집 데이터 505건 (펜션 202 · 음식점 145 · 카페 112 · 서핑·액티비티 등)",
      "method": "2023년 8월 남해군 워케이션 기간에 제작. Streamlit + OpenAI 기반 RAG 챗봇으로 현지 숙박·음식·카페·액티비티 정보를 수집해 질의응답. 수집 원문에 ‘남해군 워케이션 일정 중’ 기록이 남아 제작 시기·장소가 확인된다.",
      "source": "sida-chat-serve 저장소 (data/ 505건 · README)",
      "verifiedAt": "2023-08"
    },
    {
      "id": "vision-predates",
      "statement": "미션 선언은 2025년 4월에 본인이 이미 작성했다",
      "value": "2025-04-08",
      "method": "devmine.co.kr 블로그 원문 GET, datePublished 메타 확인",
      "source": "https://devmine.co.kr/blog/tech-people",
      "verifiedAt": "2026-08-15"
    },
    {
      "id": "blog-posts",
      "statement": "블로그 글",
      "value": "30",
      "method": "sitemap.xml 의 /blog/ URL 에서 tag·category 제외 후 전수 GET",
      "source": "https://devmine.co.kr/sitemap.xml",
      "verifiedAt": "2026-08-15"
    },
    {
      "id": "blog-volume",
      "statement": "블로그 본문 총량",
      "value": "411,546자",
      "method": "글 30건의 <article> 텍스트를 전수 수집해 합산",
      "source": "https://devmine.co.kr/sitemap.xml",
      "verifiedAt": "2026-08-15"
    },
    {
      "id": "blog-reports",
      "statement": "8,000자 이상 전략 보고서",
      "value": "17",
      "method": "같은 수집분에서 본문 8,000자 이상을 계수",
      "source": "https://devmine.co.kr/sitemap.xml",
      "verifiedAt": "2026-08-15"
    },
    {
      "id": "sida-chat",
      "statement": "남해 워케이션 중 만든 RAG 챗봇 「시다 챗」",
      "value": "2023-08 · 문서 506건",
      "method": "공개 저장소 트리 전수 조회 후 소스의 st.title 문자열과 data/ 하위 분류를 확인",
      "source": "https://github.com/hyoda/sida-chat-serve",
      "verifiedAt": "2026-08-15"
    },
    {
      "id": "linkedgram-scale",
      "statement": "링크드그램 등재 매장",
      "value": "111곳 · 24개 시군구",
      "method": "sitemap.xml 전수 파싱 후 /stores 상세와 /stores/region 을 분리 계수",
      "source": "https://linkedgram.kr/sitemap.xml",
      "verifiedAt": "2026-08-15"
    }
  ],
  "timeline": [
    {
      "year": 2006,
      "what": "유솔비넷 — 호텔 월패드 · 알펜시아 예약 · Opera PMS 국내 최초 인증",
      "key": false
    },
    {
      "year": 2011,
      "what": "농협정보통신 기업형 메시징 · 인포뱅크 위치기반 SNS 프레임워크",
      "key": false
    },
    {
      "year": 2012,
      "what": "런던 올림픽 2012 공식 소셜게임 플랫폼 — 네오위즈",
      "key": false
    },
    {
      "year": 2013,
      "what": "대명레저 통합 CRM · 동원산업 CMS",
      "key": false
    },
    {
      "year": 2017,
      "what": "HDC 호텔 PMS · 인천국제공항 T2 항공기 AI 이미지 인식",
      "key": false
    },
    {
      "year": 2019,
      "what": "파르나스 호텔 PMS — 백엔드 프레임워크 자체 개발 · SAP 연동",
      "key": false
    },
    {
      "year": 2020,
      "what": "한솔인티큐브 AI 자동화 PL — AutoML · ELK · Prometheus/Grafana",
      "key": true
    },
    {
      "year": 2022,
      "what": "데브마인랩 설립",
      "key": true
    },
    {
      "year": 2024,
      "what": "삼성 KNOX 자산관리 · 자체 제품군 확장",
      "key": false
    },
    {
      "year": 2022,
      "what": "남해 워케이션 밋업 첫 접점 — 이후 3일~3주 단위 반복 방문(관계인구)",
      "key": false
    },
    {
      "year": 2025,
      "what": "남해 워케이션 — 일의 구조를 다시 짜다",
      "key": true
    },
    {
      "year": 2026,
      "what": "남해군 인수위 포럼 단독 발제 · 링크드그램 발견 OS 가동 · 협업형 오피스",
      "key": true
    }
  ],
  "clients": [
    "유솔비넷",
    "KT하이텔",
    "대명레저(비발디파크·오션월드·소노팰리체)",
    "알펜시아",
    "농협정보통신",
    "인포뱅크",
    "네오위즈",
    "동원산업",
    "LG CNS",
    "HDC 현대산업개발",
    "인천국제공항 T2",
    "파르나스 호텔",
    "한솔인티큐브",
    "삼성전자 북미법인",
    "삼성 KNOX",
    "KICC",
    "호반건설",
    "베이직나인",
    "별소프트",
    "코아소프트",
    "로켓오즈(후 선데이토즈 인수)"
  ],
  "products": [
    {
      "slug": "linkedgram",
      "name": "링크드그램",
      "what": "소상공인 발견 플랫폼. 세 면으로 구성된다 — 소비자용 `/`(우리 동네 단골 매장 발견), 매장용 `/business`(적립을 넘어 단골을 커뮤니티로 · 피드·채팅·출석·랭킹), 그리고 `/apps` 앱 레지스트리(‘AI가 인용·호출하는 1st-party 표면’). 가게 111곳 · 지역 24 · 태그 49 · 사이트맵 191 URL.",
      "url": "https://linkedgram.kr",
      "status": "운영 중",
      "verified": true,
      "verifiedAt": "2026-08-15"
    },
    {
      "slug": "miracletime",
      "name": "미라클타임",
      "what": "포인트 적립 · 커뮤니티 모바일 앱",
      "url": "https://www.miraclekuji.com",
      "appStore": "id6751158010",
      "playStore": "com.miraclepointapp",
      "status": "운영 중",
      "verified": true
    },
    {
      "slug": "crawlcat",
      "name": "CrawlCat",
      "what": "이커머스 셀러 자동화 데스크탑 앱 (Electron)",
      "status": "운영 중",
      "verified": true
    },
    {
      "slug": "pirs",
      "name": "PIRS",
      "what": "개인정보 유출 대응 훈련 B2B SaaS",
      "status": "운영 중",
      "verified": true
    },
    {
      "slug": "wing-studio",
      "name": "Wing Studio",
      "what": "쿠팡 Wing 상세페이지 AI 재생성 SaaS",
      "status": "개발 중",
      "verified": true
    },
    {
      "slug": "handoff",
      "name": "handoff",
      "what": "Claude Code용 세션 인계 스킬",
      "license": "MIT",
      "status": "오픈소스",
      "verified": true
    },
    {
      "slug": "opraseno",
      "name": "opraseno",
      "what": "DISC/MBTI 성향 분석 서비스",
      "url": "https://opraseno.com",
      "status": "운영 중",
      "note": "인프라·환경 지원으로 운영자가 만든 결과물",
      "verified": true
    },
    {
      "slug": "irx",
      "name": "IRX",
      "what": "개인정보 유출 대응 서비스",
      "status": "운영 중",
      "note": "인프라·환경 지원으로 운영자가 만든 결과물",
      "verified": true
    },
    {
      "slug": "mileshop-rc",
      "name": "마일샵 RC",
      "what": "RC 완구 자사몰 · 명판 제작 쇼룸",
      "status": "운영 중",
      "note": "인프라·환경 지원으로 운영자가 만든 결과물",
      "verified": true
    },
    {
      "slug": "sida-chat",
      "name": "시다 챗",
      "status": "보관",
      "what": "남해 워케이션 중 만든 남해 지역정보 RAG 챗봇. Streamlit + OpenAI + Chroma, 한국어 임베딩(ko-sbert-sts). 펜션 202 · 음식점 145 · 카페 112 · 서핑 6 · 달리기 11 · 남해 향토자료 8건 등 506개 문서를 색인했다.",
      "url": "https://github.com/hyoda/sida-chat-serve",
      "verified": true,
      "year": "2023",
      "note": "앱 제목이 소스에 그대로 있다 — \"시다 챗: 남해워케이션에서 만든 인공지능 챗봇\"."
    }
  ],
  "methodology": {
    "name": "스튜디오",
    "order": [
      "Data",
      "Knowledge Graph",
      "Studio",
      "Agent",
      "Company"
    ],
    "principles": [
      "바닥은 AI가 아니라 데이터다. 구조가 엉성하면 그 위에 AI를 얹어도 무너진다.",
      "지식그래프는 AI Native Company의 운영체제다.",
      "'AI가 못하는 일'을 지키는 게 아니라, AI에게 넘길 수 있는 일을 끝없이 늘린다 — 어제 사람이 하던 일이 오늘 AI 몫이 되도록.",
      "발견은 출시 후 마케팅이 아니라, 태어날 때의 속성이다.",
      "매칭을 더 정교화하는 게 아니라, 버려진 신뢰키를 복원한다.",
      "루프 위에서 조정하고, 루프 안에 개입하지 않는다."
    ],
    "components": [
      {
        "path": "manifesto/",
        "role": "기준본 — 재논의하지 않는 결정을 동결"
      },
      {
        "path": "experiments/",
        "role": "실험 장부 — 가설 → 적용 → 결과 → 판정"
      },
      {
        "path": "playbooks/",
        "role": "판정을 통과한 실험의 승급 결과물"
      },
      {
        "path": "wiki/",
        "role": "재생성되는 지식그래프 볼트"
      },
      {
        "path": "_catalog/index.json",
        "role": "기계가 소비하는 계약"
      },
      {
        "path": "CLAUDE.md",
        "role": "정문 — 에이전트 진입점·가드레일"
      },
      {
        "path": "HANDOFF.md",
        "role": "세션 인계 — 다음 세션이 문서 하나로 재개"
      }
    ],
    "canon": [
      {
        "id": "trust-key",
        "title": "버려진 신뢰키를 복원한다",
        "thesis": "데이터는 많다고 쓸 수 있는 게 아니다. 핵심은 서로 무관해 보이는 데이터에서 연결고리(정합성의 키)를 찾는 것이다. 그 키가 없으면 수집은 됐는데 잘못 묶이고 잘못 연결되고 조용히 틀린다.",
        "goal": "‘매칭을 더 정교화’가 아니라 ‘버려진 신뢰키를 복원’하는 것. 실제 사례 — 한 카드혜택 API 가 결제 응답의 자유문자열을 정형 카탈로그에 매핑하지 못해 조용히 실패하고 있었는데, 신뢰 가능한 정형 식별코드가 이미 있었으나 안 쓰이고 있었다. 그 키를 복원해 정합성 55.8% → 97.2%.",
        "order": "결정키 → 정규화 → 레코드 링킹 → (꼬리)AI. 전면 AI/모델이 아니다.",
        "cases": "함의·동음 — ‘카페’를 수집하면 애견카페·스터디카페가 섞인다. 키워드는 같아도 업종의 실체가 다르고, 분리하지 않으면 ‘카페 N개’라는 숫자 자체가 거짓이 된다. 지역명 오인 — 상호에 지역명이 들어간 프랜차이즈가 그 지역의 개별 맛집으로 오인 수집된다. 이름 한 줄에 브랜드·지역·업종이 엉켜 있고, 그걸 푸는 것이 정형화다.",
        "layer": "데이터",
        "layerWhat": "무엇을 기준으로 묶을 것인가",
        "whereKind": "내부 설계 문서"
      },
      {
        "id": "ontology",
        "title": "온톨로지 기반 멀티에이전트 사상 및 아키텍처 방향성",
        "thesis": "데이터 파편화를 막고 단일 온톨로지(Single Entity)를 진실의 원천으로 세운다. 로우 데이터를 즉시 '원석(Ontology Object)'으로 가공하고, 모든 에이전트가 그 하나만 바라보게 해 완벽히 동일한 컨텍스트를 공유한다. One Source Multi Use.",
        "goal": "구성원(인간과 AI 에이전트 모두)이 '데이터 정합성'이나 '파편화로 인한 에러 복구' 같은 가짜 노동에서 벗어나 본질적 문제 해결에 집중하게 하는 것.",
        "arch": "A(중앙 상태 머신) + B(이벤트 드리븐) 하이브리드. C(관계형 지식 그래프)는 2차 고도화.",
        "layer": "시스템",
        "layerWhat": "데이터가 흩어지지 않게 하는 층",
        "whereKind": "내부 설계 문서"
      },
      {
        "id": "studio",
        "title": "미라클 스튜디오 매니페스토",
        "thesis": "Data → Knowledge Graph → Studio → Agent → Company. AI가 아니라 데이터가 기반이다.",
        "goal": "사람 한 명이 AI 에이전트 팀과 함께 100명 규모 조직의 생산성을 낼 수 있게 만드는 운영체제.",
        "layer": "조직",
        "layerWhat": "한 사람이 조직처럼 일하는 층",
        "whereKind": "내부 설계 문서"
      },
      {
        "id": "factory",
        "title": "discoverable-app-factory 플레이북",
        "thesis": "발견은 출시 후 마케팅이 아니라 태어날 때의 속성이다. 축1 표면발견성 · 축2 콘텐츠자동발행 · 축3 오픈API/MCP · 축4 레지스트리.",
        "goal": "앱=생산 · 링크드그램=발견 OS. 가치를 한 곳에 가두지 않는다.",
        "layer": "발견",
        "layerWhat": "만든 것이 묻히지 않게 하는 층",
        "whereKind": "내부 설계 문서"
      },
      {
        "id": "triangulation",
        "title": "삼각측량 수집 검증",
        "thesis": "‘전수를 수집했는가’를 한 축으로 판정하지 않는다. 내부일관성·엔드포인트 수렴·외부 오라클 대조 세 축을 동시에 세우고, 하나라도 어긋나면 미완으로 본다.",
        "goal": "시스템이 자기 불완전성을 스스로 드러내게 하는 것. 실제로 서울만 수집했을 때 ‘under(갭 61%)’를 스스로 신고했고, 전국 완주로 within 으로 바뀌었다. 관측이 오라클보다 많은 것도 숨기지 않고 표면화한다.",
        "layer": "데이터",
        "layerWhat": "무엇을 기준으로 묶을 것인가",
        "whereKind": "내부 설계 문서"
      },
      {
        "id": "scope-of-warrant",
        "title": "자격의 범위를 스스로 규정한다",
        "thesis": "실적은 닫힌 도메인의 데이터 정형화에서 강력하다 → '발견'(데이터) 실행은 보증한다. 그러나 '사람이 왜 머무는가'(관계·정주)는 데이터 엔지니어링 실적이 보증하지 못한다.",
        "goal": "자격을 인과 보증으로 전용하지 않는 것. 트랙레코드는 '이 사람은 데이터를 진짜 다룬다'까지고, 그 다음은 증명이 아니라 검증이다 — 보증하지 못하는 영역은 파일럿으로 검정한다.",
        "layer": "태도",
        "layerWhat": "무엇을 하지 않을 것인가",
        "whereKind": "내부 설계 문서"
      },
      {
        "id": "risk-first",
        "title": "리스크를 내가 먼저 진다",
        "thesis": "‘검증된 해법’이 아니라 ‘날카로운 진단 + 정직한 검증 설계’를 판다. 검증되지 않은 모델에 상대 예산을 먼저 태우라고 하지 않는다.",
        "goal": "‘맡겨달라’가 아니라 ‘측정부터 맡겨달라, 위험은 내가 진다’. 1단계는 자비 또는 최소 비용으로 소수 실측 파일럿을 먼저 돌리고, 그 숫자가 재현되면 그때 주체·예산·이관을 논의한다.",
        "order": "진단(강함) → 검증 설계(정직) → 작은 실측(리스크 선부담) → 자생 모델(P&L) → 이관(exit)",
        "layer": "사업",
        "layerWhat": "무엇을 어떻게 파는가",
        "whereKind": "내부 설계 문서"
      },
      {
        "id": "honest-verification",
        "title": "정직한 검증 설계",
        "thesis": "단일군 전후 비교로는 인과를 말할 수 없다. 대조군 매칭 + 차이의차이(DiD), 투입 전 사전측정, 사전등록된 1차 종결점 1개, 90일 내 관측 가능한 선행지표.",
        "goal": "결과를 ‘검증됐다’가 아니라 ‘신호 탐색’으로 표현하고 표본 한계를 인정하는 것. 종결점을 여러 개 두고 나중에 고르는 체리피킹을 구조로 막는다.",
        "layer": "사업",
        "layerWhat": "무엇을 어떻게 파는가",
        "whereKind": "내부 설계 문서"
      },
      {
        "id": "moat-without-me",
        "title": "moat 은 ‘나 없이 돌아가는 구조’다",
        "thesis": "SEO·워케이션 같은 것은 진입장벽 0이다 — 입장권이지 우위가 아니다. 진짜 방어선은 셋 — 누적 정합 데이터셋의 복리, 선점 락인, 그리고 이전 가능한 SOP·큐레이터 직군.",
        "goal": "moat 이 ‘풍경’이나 ‘개인’이면 정책이 아니다. 방어선은 데이터 복리이고, 운영은 사람 이름 없이 이전 가능해야 한다 — 미션이 경쟁 우위의 정의가 되는 지점.",
        "layer": "사업",
        "layerWhat": "무엇을 어떻게 파는가",
        "whereKind": "내부 설계 문서"
      },
      {
        "id": "diagnosis-ethics",
        "title": "진단은 비판이 아니라 출발점이다",
        "thesis": "불일치를 발견해도 ‘어느 쪽이 가짜’라고 하지 않는다. 두 수치가 다르면 정의·관측단위가 다른 두 추정치일 뿐이고, 정확한 진단은 ‘판정할 기준 데이터가 없다’이다.",
        "goal": "상대를 깎지 않고 함께 풀 출발점을 만드는 것. 지적의 근거를 상대의 자기 진단에서 가져오고, 자기가 쓰는 데이터의 한계에도 같은 잣대를 적용하며(자기선택 표본이면 그렇다고 밝힌다), 포부와 실적을 구분해 아직 실적이 아닌 것은 ‘착수할 PoC’라고 쓴다.",
        "order": "무대 인용 전 원문 재확인 → 상대의 자기 진단 인용 → 같은 잣대 자기 적용 → 포부/실적 구분",
        "layer": "태도",
        "layerWhat": "무엇을 하지 않을 것인가",
        "whereKind": "내부 설계 문서"
      },
      {
        "id": "hat-agents",
        "title": "Hat 기반 이벤트 드리븐 에이전트 시스템",
        "thesis": "역할을 ‘모자(Hat)’로 나누고 이벤트로 연결한다 — issue.assigned → build.task → build.done → review.passed → confession.clean → COMMIT. 각 에이전트는 자기 이벤트만 듣고 자기 이벤트만 발행한다.",
        "goal": "6원칙 — ① Fresh Context Is Reliability(매 반복 컨텍스트 초기화) ② Backpressure Over Prescription(상세 지시 대신 품질 게이트로 제어) ③ The Plan Is Disposable ④ Disk Is State, Git Is Memory(파일이 핸드오프 메커니즘) ⑤ Steer With Signals, Not Scripts ⑥ **Let Ralph Ralph — 루프 위에서 조정하고 루프 안에 개입하지 않는다.**",
        "order": "⑥이 미션 그 자체다 — ‘개발자가 개입하면 병목’을 AI 에이전트를 대상으로 쓴 것.",
        "layer": "조직",
        "layerWhat": "한 사람이 조직처럼 일하는 층",
        "publishReady": true,
        "publishPath": "skills/claude-hat-agents/",
        "publishNote": "자동 심사(자격증명·IP·개인정보·로컬경로·비공개 저장소명) 0건, 5개 파일 전문 확인. 제품 특정 표현 3곳만 일반화했고 구조와 임계값은 원본 그대로다. **푸시는 승인 대기.**",
        "whereKind": "내부 설계 문서"
      },
      {
        "id": "confessor",
        "title": "confessor — 커밋 전 자기 감사",
        "thesis": "리뷰를 통과한 뒤에도 한 번 더 의심하는 감사 에이전트. ‘이 코드가 하는 가정이 무엇인가, 문서화됐나, 엣지케이스에서 깨지나’를 묻는다.",
        "goal": "신뢰도를 감점 방식으로 계산한다 — 에러 처리 누락 −10%, 미문서화 가정 −5%, 통합 리스크 −15%, 보안 우려 −20%. 결과는 APPROVE / FIX / ESCALATE 셋 중 하나이고, 80% 미만이면 통과시키지 않는다. **자기 확신을 숫자로 낮추는 장치.**",
        "layer": "조직",
        "layerWhat": "한 사람이 조직처럼 일하는 층",
        "publishReady": true,
        "publishPath": "skills/claude-hat-agents/",
        "publishNote": "자동 심사(자격증명·IP·개인정보·로컬경로·비공개 저장소명) 0건, 5개 파일 전문 확인. 제품 특정 표현 3곳만 일반화했고 구조와 임계값은 원본 그대로다. **푸시는 승인 대기.**",
        "whereKind": "내부 설계 문서"
      },
      {
        "id": "experiment-ledger",
        "title": "실험 장부 — 판정을 3분류로 둔다",
        "thesis": "가설을 숫자로 쓰고, 성공 기준을 착수 전에 고정하고, 실행을 날짜별 표로 남긴다. 판정은 PASS/FAIL 이분법이 아니라 **INCONCLUSIVE 를 따로 두고 원인까지 기록**한다.",
        "goal": "실패와 불확실을 지우지 않는 것. 실제 기록에 ‘PASS 20 / FAIL 1 / INC 12’ 와 함께 INC 원인(‘시드 부족 4<20’, ‘staging 채팅 비활성’)이 그대로 남아 있다. 그리고 에이전트 운영의 **토큰 비용을 실측**해 구조까지 분해한다 — $6.57/사이클 중 97%가 캐시 읽기이고 전용 세션 분리 시 $0.7 예상.",
        "order": "가설(숫자) → 성공기준 사전고정 → 실행기록(표) → 3분류 판정 → 배운 것 누적 → 승급",
        "layer": "조직",
        "layerWhat": "한 사람이 조직처럼 일하는 층",
        "whereKind": "내부 설계 문서"
      },
      {
        "id": "automation-ethics",
        "title": "자동화의 허용 범위를 먼저 긋는다",
        "thesis": "무엇을 자동화할 수 있는가보다 **무엇을 자동화하지 않을 것인가**를 먼저 적는다. 허용: 주제 분석·의도 분류·질문 추출·초안 생성·답변 추천. 금지: 다계정 조작, 사람인 척 여론 형성, 대량 도배, 허위 후기.",
        "goal": "기술이 가능한 것과 해도 되는 것을 구분하는 것. 마지막 항목이 규율의 핵심이다 — **사람이 최종 검수 후 게시.** 초안까지가 자동화이고 발행은 사람이 한다.",
        "order": "허용 범위 → 금지 범위 → 사람 검수 지점 순으로 적는다",
        "layer": "태도",
        "layerWhat": "무엇을 하지 않을 것인가",
        "whereKind": "내부 설계 문서"
      },
      {
        "id": "switching-hub",
        "title": "스위칭 허브 — 전문성을 패키징한다",
        "thesis": "지역 전문가의 무형 자산을 유형의 디지털 시스템으로 전환해 가치를 증폭시키고 공유한다. 이론적 뿌리는 마이클 거버의 E-Myth '기술자의 함정' — 사업주가 자기 기술 업무에 매몰돼 사업 '자체에 대해' 일할 시간을 못 갖는 현상이며, 해결책은 사업을 시스템 종속적으로 만드는 것이다.",
        "goal": "창업자 개인의 역량 이상으로 사업이 성장하게 한다.",
        "order": [
          "선순환 설계자 발굴",
          "전문성 패키징",
          "이너서클 테스트베드",
          "커뮤니티 확산"
        ],
        "cases": [
          "오노미치 U2 (일본) — 니치 타겟팅과 장소성",
          "로컬스티치 (한국) — 공간보다 커뮤니티 우선",
          "더웨이브컴퍼니 (한국) — 로컬 크리에이터 액셀러레이터"
        ],
        "layer": "사업",
        "layerWhat": "무엇을 파는가",
        "public": true,
        "source": "https://devmine.co.kr/blog/namae-euwiing-eoeu-eonuneongui-systemwaeul-onghan-iyeog-waleongwa-strategy-framework",
        "published": "2025-08-09",
        "note": "정본 14개와 달리 **공개돼 있어 인용 가능하다.** 나머지는 비공개 저장소에 있어 방법 페이지가 출처를 댈 수 없었다.",
        "whereKind": "내부 설계 문서"
      }
    ]
  },
  "lineage": [
    {
      "id": "seoro",
      "name": "서로학교",
      "slogan": "우리는 서로에게서 배운다",
      "role": "6년간 브레인스토밍·난상토론 학습 공동체. 남해 워케이션 실험과 스위칭 허브 구상의 모태. 창립멤버 김강수.",
      "source": "dalpum.hyoda.kr — 서로학교 6년 활동 분석"
    },
    {
      "id": "sfl",
      "name": "서울핀테크랩 · 위워크",
      "slogan": "같은 공간에 있어도 각자 따로다",
      "role": "공유형 오피스의 한계를 직접 겪은 곳. '협업형' 착안의 계기.",
      "source": "본인 확인"
    },
    {
      "id": "namhae",
      "name": "달품 남해 워케이션",
      "slogan": "장소를 바꾸면 일의 구조도 바꿀 수 있지 않을까",
      "role": "협업형 워케이션 실증. 2022.10 밋업 첫 접점 이후 3일~3주 단위 반복 방문(관계인구). 각자 분야가 다른 소집단이 15일 합숙하며 일하자 혼자서는 못 만들 결과가 나왔다.",
      "source": "내부 1차 문서"
    }
  ],
  "painpoints": [
    {
      "id": "persistence",
      "limit": "지식의 영속성 실패 — 쌓이지 않고 흩어짐",
      "floor": "RDB ↔ KG 엔지니어링",
      "assets": [
        "스튜디오 wiki/",
        "EKG 스튜디오",
        "사내 지식그래프 저장소",
        "현직 데이터 모델러"
      ],
      "slug": "knowledge",
      "symptom": "했던 걸 또 하고 있습니다",
      "detail": "어디에 뒀는지 못 찾고, 지난번에 어떻게 풀었는지 기억이 안 납니다. 사람이 바뀌면 처음부터 다시 시작합니다.",
      "floorSay": "만든 것이 흩어지지 않게 데이터베이스와 지식그래프를 엮어, 다음 사람이 이어받을 수 있는 형태로 남깁니다."
    },
    {
      "id": "expansion",
      "limit": "지식의 확장 실패 — 한 사람 머리에서 멈춤",
      "floor": "_catalog 계약",
      "assets": [
        "discoverable-app-factory 축2"
      ],
      "slug": "handover",
      "symptom": "저 없으면 안 돌아갑니다",
      "detail": "제 머릿속에만 있는 게 많습니다. 자리를 비우기가 어렵고, 사람을 늘려도 인수인계가 안 됩니다.",
      "floorSay": "아는 것을 계약으로 만듭니다. 기계도 읽고 다음 사람도 읽는 형태로 남겨, 없어도 돌아가게 합니다."
    },
    {
      "id": "deploy",
      "limit": "배포하지 못함 — 만들어도 세상에 못 냄",
      "floor": "CI/CD · 인프라",
      "assets": [
        "hyoda-deploy 스킬",
        "Lightsail 2대",
        "Docker/PM2/nginx 운영"
      ],
      "slug": "deploy",
      "symptom": "다 만들었는데 띄우지를 못합니다",
      "detail": "로컬에서는 도는데 서버에 올리는 데서 막힙니다. 한 번 올려도 다음 수정을 반영하는 게 또 일입니다.",
      "floorSay": "서버·도메인·자동 배포를 미리 깔아둡니다. 고치면 알아서 반영되는 상태로 만듭니다."
    },
    {
      "id": "discovery",
      "limit": "발견되지 못함",
      "floor": "발견 OS",
      "primary": true,
      "assets": [
        "링크드그램",
        "discoverable-app-factory 축1·3·4"
      ],
      "owner": "링크드그램",
      "note": "이 바닥은 링크드그램이 제품으로 맡는다. 개인의 미션이 아니라 사용자에게 주는 약속이다.",
      "slug": "discovery",
      "symptom": "잘 만들었는데 아무도 모릅니다",
      "detail": "검색해도 안 나오고, 아는 사람만 압니다. 만든 것이 쌓이는데 찾아오는 사람은 늘지 않습니다.",
      "floorSay": "사람도 기계도 찾을 수 있게 처음부터 만듭니다. 발견은 출시 후 마케팅이 아니라 태어날 때의 속성입니다."
    },
    {
      "id": "ai",
      "limit": "AI를 제대로 못 씀 — 도구는 있는데 안 붙음",
      "floor": "교육 · 에이전트 하네스",
      "assets": [
        "비공개 커뮤니티 사상",
        "출시 에이전트 5종",
        "스킬 6종"
      ],
      "slug": "ai",
      "symptom": "AI를 배웠는데 제 일에는 안 씁니다",
      "detail": "강의도 듣고 도구도 써봤는데, 막상 실제 업무로 돌아오면 예전 방식대로 합니다.",
      "floorSay": "반복 작업 중 실제로 넘길 수 있는 자리를 찾아 붙여드립니다. 도구를 아는 것과 일에 붙이는 것은 다릅니다."
    }
  ],
  "talks": [
    {
      "id": "namhae-forum-4",
      "title": "남해군 인수위 포럼 4차 — AI·데이터 선도 지식 생태계 조성 + 데이터 워케이션",
      "role": "단독 발제 및 강연",
      "venue": "남해군 인수위원회 포럼 제4세션",
      "year": 2026,
      "url": "https://www.youtube.com/watch?v=CQWF-2rs4Rg",
      "channel": "남해FM공동체라디오방송 (@namhaefm)",
      "duration": "14:00–16:00 (전·후반 전체)",
      "status": "검증됨",
      "materials": "자료집 6종 — 남해 데이터 진단 · 남해형 워케이션 실행안 · 데이터 정합성 · 데이터전문가 트랙레코드 · 발표 대본 · 워케이션 경험",
      "thesis": "검색에서 AI로 넘어가며 '정리돼야 발견된다'. 소비하는 워케이션이 아니라 생산하는 데이터 워케이션으로.",
      "proposals": "3대 전략 — 사람(펠로우십) · 프로젝트(돌봄·소상공인) · 공간(Data Lab)",
      "source": "내부 1차 문서",
      "videoTitle": "Live) 남해군 인수위 포럼 4차, 남해형 워케이션 구축",
      "videoUploadDate": "2026-06-24T11:46:27-07:00",
      "videoThumbnail": "https://i.ytimg.com/vi/CQWF-2rs4Rg/hqdefault.jpg",
      "videoNote": "실시간 스트리밍 시작일(KST) 2026-06-23 · 워치 페이지 메타 실측 2026-08-16"
    }
  ],
  "exclusions": [
    {
      "what": "클라이언트 계약 금액",
      "why": "상대방 정보다. 동의 없이 공개할 사안이 아니다.",
      "pattern": "(계약|수주)\\s*(금액|규모)\\s*[:은는]?\\s*[0-9]|[0-9,]+\\s*(만원|억원|억)\\s*(규모|계약|수주)",
      "checkable": true
    },
    {
      "what": "클라이언트 실명(발주사)",
      "why": "수임 관계는 상대가 공개하기로 한 것만 밝힌다.",
      "checkable": false,
      "whyNotCheckable": "build.py 의 마스킹과 verify-public.sh 가 이름 단위로 이미 막는다. 이 규칙 자체는 정규식으로 표현할 수 없다."
    },
    {
      "what": "고객사 수 · 매출",
      "why": "공개 가능한 집계 근거가 없다. 셀 수 없는 것은 쓰지 않는다.",
      "pattern": "고객사\\s*[0-9]|[0-9]+\\s*개\\s*사(?![람])|매출\\s*[0-9]|연매출",
      "checkable": true
    },
    {
      "what": "익명 후기",
      "why": "검증할 수 없는 인용은 신뢰를 만들지 않고 소모한다.",
      "checkable": false,
      "whyNotCheckable": "'검증할 수 없는 인용' 을 기계가 판정할 수 없다. 후기를 추가할 때 사람이 본다."
    },
    {
      "what": "협력사 로고",
      "why": "프로젝트 수행과 협력 관계는 다르다. 수행한 것만 밝힌다.",
      "pattern": "협력사",
      "checkable": true
    },
    {
      "what": "절감액·효율 수치",
      "why": "측정 방법을 함께 낼 수 있는 것만 싣는다.",
      "pattern": "절감액|[0-9]+\\s*%\\s*절감|[0-9,]+\\s*원\\s*(절감|절약)",
      "checkable": true
    },
    {
      "what": "미출시 제품명",
      "why": "오픈 전 서비스의 이름을 밝힐지는 발주사가 정한다. 수치·패턴만 싣는다.",
      "checkable": false,
      "whyNotCheckable": "이름을 알아야 찾는데, 그 이름이 곧 막으려는 대상이다. roles[].disclose=false 와 redactAliases 로 원본에서 자른다."
    },
    {
      "what": "사례로 드는 특정 상호·브랜드",
      "why": "‘오인 수집 사례’로 실명을 들면 그 브랜드에 대한 언급이 된다. 패턴만 싣는다.",
      "checkable": false,
      "whyNotCheckable": "상호인지 일반명사인지 기계가 못 가른다. 사례를 쓸 때 사람이 본다."
    }
  ],
  "sites": [
    {
      "id": "hyoda",
      "domain": "hyoda.kr",
      "name": "서효다",
      "role": "hub",
      "schemaType": "Person",
      "what": "사람. 증거의 집이자 모든 자산이 수렴하는 구심점.",
      "status": "리뉴얼 대상",
      "note": "현재 canonical이 devmine.co.kr을 가리켜 색인을 스스로 포기 중 — 최우선 교정",
      "tagline": "19년차 개발자. 지식이 쌓이는 바닥, 배포되는 길, AI가 붙는 자리, 발견되는 표면을 깔아드립니다. 만들어드리지는 않습니다."
    },
    {
      "id": "office",
      "domain": "devmine.co.kr",
      "name": "데브마인랩 협업형 오피스",
      "role": "satellite",
      "schemaType": "Place",
      "what": "협업형 오피스. 김포한강 듀클래스. 구독형 30만 / 체류형 50만.",
      "status": "개소 준비",
      "tagline": "2022년부터 소프트웨어를 만들어온 곳의 인프라를 엽니다. 인프라와 환경은 우리가 잡고, 디테일은 당신이 심습니다.",
      "path": "office/",
      "partOf": "devmine.co.kr",
      "providerOf": "hyoda",
      "plans": [
        {
          "key": "구독형",
          "price": "30",
          "unit": "만원 / 월",
          "what": "일하는 자리에 네 개의 바닥이 깔려 있는 상태로 계속 쓴다.",
          "includes": [
            "상시 좌석과 회의 공간",
            "배포 인프라 — 서버·도메인·자동 배포",
            "지식 저장소 구성과 유지",
            "AI 도구 세팅과 정기 클리닉",
            "발견 표면 점검 — 검색·구조화 데이터"
          ]
        },
        {
          "key": "체류형",
          "price": "50",
          "unit": "만원 / 기간",
          "what": "한 덩어리를 끝내러 온다. 기간 동안 집중해서 하나를 세상에 낸다.",
          "includes": [
            "구독형의 전부",
            "체류 기간 숙식 연계",
            "시작 시 무엇을 낼지 먼저 확정",
            "기간 내 배포까지 목표",
            "끝날 때 이어받을 수 있는 인계 문서"
          ]
        }
      ],
      "location": "김포한강 듀클래스",
      "since": "2022",
      "model": {
        "name": "스위칭 허브 4계층",
        "source": "https://devmine.co.kr/blog/namae-euwiing-eoeu-eonuneongui-systemwaeul-onghan-iyeog-waleongwa-strategy-framework",
        "published": "2025-08-09",
        "layers": [
          {
            "n": 1,
            "key": "Hub",
            "name": "허브 운영 주체",
            "what": "모델의 설계자이자 촉진자. 선순환 설계자를 발굴하고 기술·비즈니스 지원을 제공하며 생태계를 관리한다.",
            "who": "데브마인랩"
          },
          {
            "n": 2,
            "key": "Giver-Entrepreneurs",
            "name": "선순환 설계자",
            "what": "지역에서 신뢰와 전문성을 인정받는 핵심 인물. 자신의 노하우를 패키징해 공유하고 이너서클의 멘토가 된다.",
            "who": "각 분야 전문가"
          },
          {
            "n": 3,
            "key": "Inner Circle",
            "name": "이너서클",
            "what": "패키징된 시스템을 초기에 도입하는 소상공인·창업가. 상호 협력으로 함께 성장하며 성공 사례를 만드는 테스트베드다.",
            "who": "입주·멤버"
          },
          {
            "n": 4,
            "key": "Community",
            "name": "지역 공동체",
            "what": "이너서클의 성공 사례가 확산되는 단계. 디지털 리터러시 교육으로 일반 주민도 참여한다.",
            "who": "확산 대상"
          }
        ],
        "triangle": {
          "why": "선순환 설계자의 사회적 동기",
          "what": "E-Myth 해결책으로서의 시스템화",
          "how": "기술 민주화가 제공하는 접근 가능한 도구",
          "name": "재생의 황금 삼각형(Golden Triangle of Regeneration)"
        }
      }
    },
    {
      "id": "linkedgram",
      "domain": "linkedgram.kr",
      "name": "링크드그램",
      "role": "satellite",
      "schemaType": "WebSite",
      "what": "발견 OS · 앱 공장 이니셔티브. 사업적 지향이 담긴 곳이다. 매장 111개·지역 24개 카탈로그를 /api/discovery 로 서빙하는 작동하는 레지스트리.",
      "status": "운영 중",
      "authorOf": "hyoda",
      "tagline": "우리 동네 단골 매장을 발견하는 플랫폼. 소상공인 멤버십 SaaS.",
      "slogan": "만든 것이 발견되게 한다",
      "note": "사업 방향의 담지체 — 제품 하나가 아니라 종착지"
    },
    {
      "id": "devmine",
      "domain": "devmine.co.kr",
      "name": "데브마인랩",
      "role": "satellite",
      "schemaType": "Organization",
      "what": "개인사업자. 계약·세금계산서를 받는 그릇.",
      "status": "운영 중",
      "employerOf": "hyoda",
      "tagline": "업무 자동화와 지식그래프 기반 시스템 구축. 2022년 설립."
    },
    {
      "id": "biz",
      "domain": "biz.devmine.co.kr",
      "name": "데브마인랩 영업",
      "role": "satellite",
      "schemaType": "WebSite",
      "what": "B2B 리드 수집. 홍보 레이어.",
      "status": "SSL 만료 · 표기 정정 필요",
      "partOf": "devmine",
      "tagline": "AI 업무 자동화 — 엑셀·문서·알림을 사람 손에서 떼어냅니다."
    }
  ],
  "now": {
    "updated": "2026-08",
    "focus": [
      {
        "what": "데이터 모델링과 백엔드",
        "where": "한 핀테크 스타트업 (프리랜서)",
        "detail": "오픈 준비 중인 서비스. 결제·혜택 데이터의 정합성을 다룬다."
      },
      {
        "what": "협업형 오피스 준비",
        "where": "김포한강 듀클래스",
        "detail": "여럿이 각자의 일을 하면서 인프라를 같이 쓰는 공간. 구독형 30만 / 체류형 50만."
      },
      {
        "what": "이 사이트를 다시 짓는 중",
        "where": "hyoda.kr",
        "detail": "만든 것은 많은데 발견되지 않았다. 모든 주장에 출처를 붙이는 구조로 다시 만든다."
      }
    ],
    "notDoing": [
      "새 수주는 받지 않는다 — 주력 시간이 이미 계약돼 있다",
      "만들어주는 일은 하지 않는다 — 바닥을 깔고 손을 뗀다"
    ],
    "reading": "지역과 데이터, 그리고 1인이 조직처럼 일하는 방법."
  },
  "inventoryExtra": {
    "portfolioCount": 30,
    "docsScanned": 2845,
    "note": "포트폴리오 30건은 별도 분석 문서에서 정리한 수, 문서 2,845건은 의존성 제외 실측."
  },
  "writings": {
    "what": "devmine.co.kr 블로그. 사이트맵 전수 수집(2026-08-15).",
    "method": "https://devmine.co.kr/sitemap.xml 의 /blog/ URL 중 tag·category 를 제외한 30건을 각각 GET 하여 title·description·datePublished 를 추출.",
    "counts": {
      "posts": 30,
      "tags": 87,
      "categories": 44
    },
    "posts": [
      {
        "url": "https://devmine.co.kr/blog/oeseuoeu-oing-euleiug-data-iban-ouig-sangum-balul-ic-ilaenghow-to",
        "title": "로켓그로스 소싱 플레이북: 데이터 기반 고수익 상품 발굴 및 실행방법",
        "published": "2025-10-26",
        "axis": "전략",
        "chars": 15860,
        "kind": "보고서"
      },
      {
        "url": "https://devmine.co.kr/blog/euol-euaeneu-eungi-strategy-analysis",
        "title": "스몰 브랜드 승리 전략 분석",
        "published": "2025-09-20",
        "axis": "전략",
        "chars": 18262,
        "kind": "보고서"
      },
      {
        "url": "https://devmine.co.kr/blog/euouol-aeeoling-aeoun-maeing-strategy",
        "title": "스노우볼 채널링: 새로운 마케팅 전략",
        "published": "2025-09-20",
        "axis": "전략",
        "chars": 16390,
        "kind": "보고서"
      },
      {
        "url": "https://devmine.co.kr/blog/ineongeongiraeun-strategy-yeonyeogui-eosaeul-onghan-namae-aegyeono-ijang-uug",
        "title": "진정성이라는 전략: 변혁의 서사를 통한 '남해 백년초' 시장 구축",
        "published": "2025-09-14",
        "axis": "지역",
        "chars": 13477,
        "kind": "보고서"
      },
      {
        "url": "https://devmine.co.kr/blog/themesmith-gpt-eomoeoneueoeueu-ema-emeulis-ejag-eieoneu-eueg",
        "title": "ThemeSmith GPT — 컴포넌트‑퍼스트 테마 템플릿 제작 에이전트 스펙",
        "published": "2025-09-09",
        "axis": "기술",
        "chars": 8522,
        "kind": "보고서"
      },
      {
        "url": "https://devmine.co.kr/blog/eonuneongui-systemwaeul-onghan-iyeog-waleongwa-strategy-framework",
        "title": "전문성의 시스템화를 통한 지역 활성화 전략 프레임워크",
        "published": "2025-09-01",
        "axis": "지역",
        "chars": 33207,
        "kind": "보고서",
        "note": "같은 글이 3주 전 다른 URL 로 먼저 발행돼 있습니다 (본문 99% 동일)."
      },
      {
        "url": "https://devmine.co.kr/blog/eoeieu-changeobga-euleiug-3000man-weoneuo-ijaghaeun-iog-gaeunghan-euaeneu-uug-strategy-oeuaeb",
        "title": "제로베이스 창업가 플레이북: 3,000만 원으로 시작하는 지속 가능한 브랜드 구축 전략 로드맵",
        "published": "2025-08-22",
        "axis": "전략",
        "chars": 27252,
        "kind": "보고서"
      },
      {
        "url": "https://devmine.co.kr/blog/iyeog-sangaengyeong-euwii-eoeu",
        "title": "지역 상생형 스위치 허브",
        "published": "2025-08-09",
        "axis": "지역",
        "chars": 26492,
        "kind": "보고서"
      },
      {
        "url": "https://devmine.co.kr/blog/namae-euwiing-eoeu-eonuneongui-systemwaeul-onghan-iyeog-waleongwa-strategy-framework",
        "title": "남해 스위칭 허브: 전문성의 시스템화를 통한 지역 활성화 전략 프레임워크",
        "published": "2025-08-09",
        "axis": "지역",
        "chars": 33258,
        "kind": "보고서",
        "note": "같은 글이 3주 전 다른 URL 로 먼저 발행돼 있습니다 (본문 99% 동일)."
      },
      {
        "url": "https://devmine.co.kr/blog/ojangeun-eoeohe-ongeoham-ogeeo-gaieul-uughaeunga",
        "title": "포장은 어떻게 공허함 속에서 가치를 구축하는가",
        "published": "2025-07-24",
        "axis": "전략",
        "chars": 32493,
        "kind": "보고서"
      },
      {
        "url": "https://devmine.co.kr/blog/yogmangui-eonug-yeongum-gaiui-aeuwa-service-experience-oeueuweeooui-eogyongeul-wihan-eongsain",
        "title": "욕망의 건축: 명품 가치의 해부와 서비스, 경험, 소프트웨어로의 적용을 위한 청사진",
        "published": "2025-07-24",
        "axis": "전략",
        "chars": 19667,
        "kind": "보고서"
      },
      {
        "url": "https://devmine.co.kr/blog/ai-iban-companyga-aeoun-gai-changul-iaeeul-wihan-strategyeog-euleiug",
        "title": "AI 기반 기업가: 새로운 가치 창출 시대를 위한 전략적 플레이북",
        "published": "2025-07-24",
        "axis": "전략",
        "chars": 24902,
        "kind": "보고서"
      },
      {
        "url": "https://devmine.co.kr/blog/0weon-maeing-ileon-guide-onyeongae-aeyoui-eieo-euleieu-ongyageobwa-ai-iae-aengon-strategy",
        "title": "0원 마케팅 실전 가이드: 손영래 대표의 네이버 플레이스 공략법과 AI 시대 생존 전략",
        "published": "2025-05-14",
        "axis": "전략",
        "chars": 8135,
        "kind": "보고서"
      },
      {
        "url": "https://devmine.co.kr/blog/eulongeu-salongui-onin-project-yeonileog-ilaeng-strategy-ic-eongjang-oeuaeb",
        "title": "끌롱드 살롱의 \"본진\" 프로젝트: 현실적 실행 전략 및 성장 로드맵",
        "published": "2025-05-14",
        "axis": "기타",
        "chars": 31308,
        "kind": "보고서"
      },
      {
        "url": "https://devmine.co.kr/blog/imo-iyeog-aeonaesan-iyulaeng-guide-websaieu-onin-uug-ic-onrain-yeongaengyeog-gangwa-ilaeng-yeoeg",
        "title": "김포 지역 '내돈내산 미슐랭 가이드' 웹사이트 '본진' 구축 및 온라인 경쟁력 강화 실행 계획",
        "published": "2025-05-14",
        "axis": "지역",
        "chars": 28240,
        "kind": "보고서"
      },
      {
        "url": "https://devmine.co.kr/blog/hanung-uyeog-oojaeul-wihan-uib-ongwan-ic-wane-eolgam-strategy-hs-code-ungim",
        "title": "한중 무역 초보자를 위한 수입 통관 및 관세 절감 전략: HS Code 중심",
        "published": "2025-05-13",
        "axis": "전략",
        "chars": 29851,
        "kind": "보고서"
      },
      {
        "url": "https://devmine.co.kr/blog/yeonwaui-iae-uyeoumi-ain-ioeeul-unihara",
        "title": "변화의 시대, 두려움이 아닌 기회를 준비하라",
        "published": "2025-04-28",
        "axis": "기타",
        "chars": 1490,
        "kind": "에세이"
      },
      {
        "url": "https://devmine.co.kr/blog/seo-local-naver-strategy",
        "title": "광고만으로 버티지 않는다: 소상공인을 위한 판매 구조 설계법",
        "published": "2025-04-25",
        "axis": "소상공인",
        "chars": 2204,
        "kind": "에세이"
      },
      {
        "url": "https://devmine.co.kr/blog/wsl2-network-vethernet-interface-172181761",
        "title": "WSL2 네트워크 완전 정복: vEthernet 인터페이스와 172.18.176.1 이해하기",
        "published": "2025-04-23",
        "axis": "기술",
        "chars": 2971,
        "kind": "에세이"
      },
      {
        "url": "https://devmine.co.kr/blog/automation",
        "title": "실험의 장에서 시장으로: 자동화가 바꾸는 일의 방식",
        "published": "2025-04-19",
        "axis": "기술",
        "chars": 3233,
        "kind": "에세이"
      },
      {
        "url": "https://devmine.co.kr/blog/startup-app",
        "title": "한국 스타트업이 미국에서 실패하지 않으려면: ‘슈퍼앱’보다 중요한 것들",
        "published": "2025-04-13",
        "axis": "전략",
        "chars": 3250,
        "kind": "에세이"
      },
      {
        "url": "https://devmine.co.kr/blog/25-dev",
        "title": "복붙 없는 25년, 개발자로 살아남는 법",
        "published": "2025-04-12",
        "axis": "선언",
        "chars": 2614,
        "kind": "에세이"
      },
      {
        "url": "https://devmine.co.kr/blog/blog-seo-strategy",
        "title": "다중 도메인을 활용한 블로그 SEO 및 콘텐츠 전략 보고서",
        "published": "2025-04-11",
        "axis": "전략",
        "chars": 17155,
        "kind": "보고서"
      },
      {
        "url": "https://devmine.co.kr/blog/system",
        "title": "정열은 시스템을 해킹하는 감각에서 온다",
        "published": "2025-04-11",
        "axis": "선언",
        "chars": 1706,
        "kind": "에세이"
      },
      {
        "url": "https://devmine.co.kr/blog/ai-system",
        "title": "AI 시대, 나는 왜 작은 가게를 위한 시스템을 만들었나",
        "published": "2025-04-11",
        "axis": "소상공인",
        "chars": 1750,
        "kind": "에세이"
      },
      {
        "url": "https://devmine.co.kr/blog/tech-people",
        "title": "나의 비전 선언문: 기술보다 사람이 먼저입니다",
        "published": "2025-04-08",
        "axis": "선언",
        "chars": 1521,
        "kind": "에세이"
      },
      {
        "url": "https://devmine.co.kr/blog/with-ai",
        "title": "AI와 함께 살아남는 법: 자영업 르네상스 시대의 생존 전략",
        "published": "2025-04-07",
        "axis": "소상공인",
        "chars": 1684,
        "kind": "에세이"
      },
      {
        "url": "https://devmine.co.kr/blog/bull-queue-email",
        "title": "MongoDB 배치 처리와 Bull Queue로 구현한 대규모 이메일 자동화 시스템",
        "published": "2024-03-08",
        "axis": "기술",
        "chars": 3846,
        "kind": "에세이"
      },
      {
        "url": "https://devmine.co.kr/blog/nestjs-user-validation",
        "title": "NestJS에서 중복 사용자 생성 문제 해결하기",
        "published": "2024-03-02",
        "axis": "기술",
        "chars": 342,
        "kind": "에세이"
      },
      {
        "url": "https://devmine.co.kr/blog/oauth-auth-system",
        "title": "Next.js + Supabase로 OAuth 인증 시스템 구축하기",
        "published": "2024-03-01",
        "axis": "기술",
        "chars": 464,
        "kind": "에세이"
      }
    ],
    "volume": {
      "chars": 411546,
      "reports": 17,
      "reportChars": 384471,
      "note": "본문 자수는 각 글의 <article> 텍스트를 기준으로 센다. 내비게이션·태그 목록은 제외.",
      "turn": "2025년 5월",
      "turnWhat": "그 전은 1~3천 자 1인칭 에세이, 그 후는 8천~3만 3천 자 전략 보고서입니다."
    }
  },
  "foundationalWritings": [
    {
      "id": "vision-2025-04",
      "title": "나의 비전 선언문: 기술보다 사람이 먼저입니다",
      "url": "https://devmine.co.kr/blog/tech-people",
      "published": "2025-04-08",
      "quote": "기술은 단지 수단일 뿐이며, 그 수단을 잘 쓰는 사람들에게 내가 가진 능력을 서빙(Serving)하는 것이 나의 사명이자 비전입니다.",
      "why": "이번 작업에서 도출한 캐치프레이즈 '나는 인프라와 환경을 잡고, 당신은 디테일을 심는다' 는 이 문장의 압축이다. 미션은 새로 만든 것이 아니라 2025년 4월에 이미 쓰여 있었다.",
      "alsoSays": [
        "기술로 이익을 독점하는 구조보다, 기술의 혜택이 필요한 사람들에게 먼저 닿을 수 있도록 설계된 구조를 만들고 싶습니다.",
        "내가 도운 누군가가 더 좋은 세상을 만든다면, 그 성공은 곧 나의 성공입니다.",
        "나는 기술을 좇지 않습니다. 사람을 돕기 위해 기술을 씁니다."
      ]
    },
    {
      "id": "origin-2025-04",
      "title": "AI 시대, 나는 왜 작은 가게를 위한 시스템을 만들었나",
      "url": "https://devmine.co.kr/blog/ai-system",
      "published": "2025-04-11",
      "quote": "왜 이런 시스템은 대기업만 쓰고, 작은 사업체들은 늘 손발로 일해야 할까?",
      "why": "창업 동기의 1차 기록. '작은 사람도 구조를 만들면 크게 움직일 수 있다' 는 믿음이 사업의 출발점이라고 본인이 적었다.",
      "alsoSays": [
        "작은 사람도 구조를 만들면 크게 움직일 수 있다.",
        "쓰레기 같은 데이터도, 잘 다듬으면 금이 될 수 있다는 믿음. 그게 제가 이 사업을 시작하게 된 이유예요."
      ]
    },
    {
      "id": "jeongyeol-2025-04",
      "title": "정열은 시스템을 해킹하는 감각에서 온다",
      "url": "https://devmine.co.kr/blog/system",
      "published": "2025-04-11",
      "quote": "이런 정열을 가진 사람들과 계속 일하고 싶습니다. 그리고 그 안에 기술을, 구조를, 시스템을 조금 더 정직하게 얹어주고 싶습니다.",
      "why": "협업 구조를 한 문장으로 말한 곳. 그들이 정열을 가져오고 나는 구조를 얹는다 — 캐치프레이즈와 같은 형태다.",
      "alsoSays": [
        "불법은 아니지만 편법일 수는 있는 그 경계에서 가장 정직하게 반응하는 사람. 저는 그걸 정열이라고 부르고 싶습니다."
      ]
    },
    {
      "id": "switching-hub-2025-08",
      "title": "남해 스위칭 허브: 전문성의 시스템화를 통한 지역 활성화 전략 프레임워크",
      "url": "https://devmine.co.kr/blog/namae-euwiing-eoeu-eonuneongui-systemwaeul-onghan-iyeog-waleongwa-strategy-framework",
      "published": "2025-08-09",
      "quote": "지역 내 핵심 전문가, 즉 '선순환 설계자(Giver-Entrepreneurs)'를 발굴하고, 그들의 고유한 전문성을 확장 가능한 디지털 시스템과 서비스로 '패키징'하여 공유한다.",
      "why": "협업형 오피스의 이론적 원본. 4계층 아키텍처와 벤치마크 3건이 이미 문서화돼 있었다. 캐치프레이즈는 E-Myth '기술자의 함정' 해결책의 실무 번역이다 — 그들은 기술을 심고, 나는 그것을 시스템으로 만든다.",
      "alsoSays": [
        "사업주가 자신의 기술적 업무에만 매몰되어 사업을 성장시키는 데 필요한 '기업가'와 '관리자'의 역할을 방치하는 현상 — '기술자의 함정'",
        "허브가 '패키징'하는 것은 단순한 앱이나 서비스가 아니라, 신뢰와 노하우가 코드화된 '디지털 사회적 자본'이다."
      ]
    },
    {
      "id": "office-manifesto-2026-08",
      "title": "작게, 그러나 무너지지 않게 — 협업형 오피스는 왜 존재하는가",
      "url": "https://devmine.co.kr/blog/small-but-unbreakable",
      "published": "2026-08-16",
      "quote": "큰 회사를 만들려는 게 아닙니다. 무너지지 않는 것을 만들려는 겁니다 — 가장 깊은 전문성을 가진 사람이 가장 취약해선 안 된다.",
      "why": "스위칭 허브 프레임워크(2025-08-09)의 확장·선언. 거버 '기술자의 함정' + The Minimalist Entrepreneur 사상 위에 오피스의 명분·해자·미션·로드맵을 세웠다. /office 가드레일 섹션과 크로스링크."
    }
  ],
  "linkingContract": {
    "canonicalPersonId": "https://hyoda.kr/#person",
    "rule": "모든 위성 사이트의 JSON-LD는 사람을 이 동일한 @id 로 선언한다. 검색엔진과 LLM이 서로 다른 도메인의 선언을 하나의 엔터티로 병합하는 유일한 기계적 장치다.",
    "requirements": [
      "위성은 Person 노드를 새로 만들지 않고 @id 참조만 한다 — 중복 선언은 엔터티를 쪼갠다.",
      "위성의 sameAs 에 허브 URL을 반드시 포함한다.",
      "허브의 sameAs 에 모든 공개 위성을 포함한다 — 양방향이어야 병합이 성립한다.",
      "canonical 은 항상 자기 자신을 가리킨다. 남을 가리키면 그 도메인은 색인에서 사라진다.",
      "각 위성은 자기 llms.txt 에 '이 사이트는 서효다(hyoda.kr)가 운영한다'를 한 줄로 명시한다.",
      "새 브랜드를 만들지 않는다. 이미 68개 도메인이 흩어져 구심점이 없는 상태에서 이름을 하나 더 늘리면 인지도를 0에서 다시 시작하면서 분산만 키운다. 신규 자산은 서브도메인이 아니라 기존 도메인의 경로로 붙인다."
    ]
  },
  "inventory": {
    "repos": {
      "total": 212,
      "own": 168,
      "forks": 44,
      "public": 17,
      "private": 151,
      "activeThisYear": 48,
      "firstYear": "2014",
      "languages": [
        {
          "name": "TypeScript",
          "repos": 66
        },
        {
          "name": "JavaScript",
          "repos": 32
        },
        {
          "name": "기타",
          "repos": 20
        },
        {
          "name": "HTML",
          "repos": 15
        },
        {
          "name": "Vue",
          "repos": 10
        },
        {
          "name": "Python",
          "repos": 9
        },
        {
          "name": "CSS",
          "repos": 8
        },
        {
          "name": "Java",
          "repos": 5
        },
        {
          "name": "Shell",
          "repos": 1
        },
        {
          "name": "Kotlin",
          "repos": 1
        }
      ],
      "byYear": [
        {
          "year": "2014",
          "repos": 1
        },
        {
          "year": "2015",
          "repos": 4
        },
        {
          "year": "2016",
          "repos": 23
        },
        {
          "year": "2017",
          "repos": 11
        },
        {
          "year": "2018",
          "repos": 2
        },
        {
          "year": "2019",
          "repos": 5
        },
        {
          "year": "2020",
          "repos": 1
        },
        {
          "year": "2021",
          "repos": 14
        },
        {
          "year": "2022",
          "repos": 8
        },
        {
          "year": "2023",
          "repos": 9
        },
        {
          "year": "2024",
          "repos": 21
        },
        {
          "year": "2025",
          "repos": 32
        },
        {
          "year": "2026",
          "repos": 37
        }
      ],
      "method": "gh repo list --limit 500. 포크 제외 집계. 비공개 리포는 개수만 세고 이름·설명은 내보내지 않는다."
    },
    "domains": {
      "total": 87,
      "byExpectation": [
        {
          "expect": "api",
          "count": 14
        },
        {
          "expect": "internal",
          "count": 27
        },
        {
          "expect": "parked",
          "count": 5
        },
        {
          "expect": "public",
          "count": 41
        }
      ],
      "public": [
        "hyoda.kr",
        "www.hyoda.kr",
        "linkedgram.kr",
        "mileshop.kr",
        "devmine.co.kr",
        "biz.devmine.co.kr",
        "miracle.hyoda.kr",
        "mileshop.hyoda.kr",
        "hangang385.hyoda.kr",
        "agarwood.hyoda.kr",
        "place.hyoda.kr",
        "dalpum.hyoda.kr",
        "autoplan.hyoda.kr",
        "mvp.hyoda.kr",
        "pirs.hyoda.kr",
        "wing-studio.hyoda.kr",
        "calldi.hyoda.kr",
        "auto-maker.hyoda.kr",
        "lead-collector.hyoda.kr",
        "laborbank.co.kr",
        "carlyle.laborbank.co.kr",
        "hsm.laborbank.co.kr",
        "brainleo.devmine.co.kr",
        "crawlcat.devmine.co.kr",
        "trip-pulse.devmine.co.kr",
        "blog.devmine.co.kr"
      ],
      "method": "ops/private/domains.tsv 인벤토리. 총계는 전수, 목록은 publish=yes 인 것만. 도달 가능하지만 광고하지 않는 도메인(사적·실험·내부)은 목록에서 제외한다."
    }
  },
  "publicRepos": [
    {
      "name": "margin-calculator",
      "url": "https://github.com/hyoda/margin-calculator",
      "description": "범용 마진 계산기 — 매입가/택배/수수료/부가세를 입력하면 마진 배수별 판매가를 계산",
      "language": "HTML",
      "created": "2026-04-28",
      "pushed": "2026-04-28",
      "stars": 0,
      "homepage": null,
      "archived": false
    },
    {
      "name": "hub-verdi",
      "url": "https://github.com/hyoda/hub-verdi",
      "description": "Hub Verdi - 지역 커뮤니티 기반 비즈니스 플랫폼",
      "language": "HTML",
      "created": "2025-09-04",
      "pushed": "2025-10-28",
      "stars": 0,
      "homepage": null,
      "archived": false
    },
    {
      "name": "crawlcat-jest",
      "url": "https://github.com/hyoda/crawlcat-jest",
      "description": "",
      "language": "TypeScript",
      "created": "2025-07-24",
      "pushed": "2025-07-24",
      "stars": 0,
      "homepage": null,
      "archived": false
    },
    {
      "name": "itsmantine",
      "url": "https://github.com/hyoda/itsmantine",
      "description": "",
      "language": "TypeScript",
      "created": "2024-03-29",
      "pushed": "2024-03-29",
      "stars": 0,
      "homepage": null,
      "archived": false
    },
    {
      "name": "sida-chat-serve",
      "url": "https://github.com/hyoda/sida-chat-serve",
      "description": "",
      "language": "Python",
      "created": "2023-08-16",
      "pushed": "2023-08-21",
      "stars": 0,
      "homepage": null,
      "archived": false
    },
    {
      "name": "sida-chatbot",
      "url": "https://github.com/hyoda/sida-chatbot",
      "description": "",
      "language": null,
      "created": "2023-08-12",
      "pushed": "2023-08-12",
      "stars": 0,
      "homepage": null,
      "archived": false
    },
    {
      "name": "inventscan_at907",
      "url": "https://github.com/hyoda/inventscan_at907",
      "description": "",
      "language": "Java",
      "created": "2023-04-04",
      "pushed": "2023-04-04",
      "stars": 0,
      "homepage": null,
      "archived": false
    },
    {
      "name": "bookofmine",
      "url": "https://github.com/hyoda/bookofmine",
      "description": "",
      "language": "JavaScript",
      "created": "2022-12-28",
      "pushed": "2022-12-28",
      "stars": 0,
      "homepage": null,
      "archived": false
    },
    {
      "name": "thermal-printer-ko",
      "url": "https://github.com/hyoda/thermal-printer-ko",
      "description": "",
      "language": "JavaScript",
      "created": "2022-12-12",
      "pushed": "2022-12-13",
      "stars": 0,
      "homepage": null,
      "archived": false
    },
    {
      "name": "todo",
      "url": "https://github.com/hyoda/todo",
      "description": "",
      "language": "Vue",
      "created": "2022-11-15",
      "pushed": "2022-11-15",
      "stars": 0,
      "homepage": null,
      "archived": false
    },
    {
      "name": "devminefarmdocs",
      "url": "https://github.com/hyoda/devminefarmdocs",
      "description": "",
      "language": "JavaScript",
      "created": "2022-08-04",
      "pushed": "2022-08-04",
      "stars": 0,
      "homepage": null,
      "archived": false
    },
    {
      "name": "helloand",
      "url": "https://github.com/hyoda/helloand",
      "description": "",
      "language": "Kotlin",
      "created": "2021-08-01",
      "pushed": "2021-08-01",
      "stars": 0,
      "homepage": null,
      "archived": false
    },
    {
      "name": "hyoda.github.io",
      "url": "https://github.com/hyoda/hyoda.github.io",
      "description": "",
      "language": null,
      "created": "2019-05-10",
      "pushed": "2019-05-10",
      "stars": 0,
      "homepage": null,
      "archived": false
    },
    {
      "name": "pds",
      "url": "https://github.com/hyoda/pds",
      "description": "",
      "language": null,
      "created": "2019-02-02",
      "pushed": "2019-02-02",
      "stars": 0,
      "homepage": null,
      "archived": false
    },
    {
      "name": "dmedia-lab",
      "url": "https://github.com/hyoda/dmedia-lab",
      "description": "디미디어 기술연구소",
      "language": null,
      "created": "2016-12-24",
      "pushed": "2017-01-09",
      "stars": 0,
      "homepage": null,
      "archived": false
    },
    {
      "name": "hyoda.github.com",
      "url": "https://github.com/hyoda/hyoda.github.com",
      "description": "Technozen Lab",
      "language": "CSS",
      "created": "2015-08-26",
      "pushed": "2015-08-26",
      "stars": 0,
      "homepage": null,
      "archived": false
    },
    {
      "name": "hello-world",
      "url": "https://github.com/hyoda/hello-world",
      "description": "Just another repository",
      "language": null,
      "created": "2014-10-24",
      "pushed": "2014-10-24",
      "stars": 0,
      "homepage": null,
      "archived": false
    }
  ]
}
