{
  "schema": "tesign-radar/item/1",
  "generated_at": "2026-09-19T23:10:56.893Z",
  "lang": "ko",
  "slug": "apeeye",
  "url": "https://tesign.com/item/apeeye/",
  "alternates": {
    "ko": {
      "html": "https://tesign.com/item/apeeye/",
      "json": "https://tesign.com/item/apeeye/index.json",
      "markdown": "https://tesign.com/item/apeeye/index.md"
    },
    "en": {
      "html": "https://tesign.com/en/item/apeeye/",
      "json": "https://tesign.com/en/item/apeeye/index.json",
      "markdown": "https://tesign.com/en/item/apeeye/index.md"
    }
  },
  "name": "Apeeye",
  "use_label": "가짜 API 만들기",
  "one_liner": "로그인도 설치도 없이 가짜 REST 주소를 몇 초 만에 만들어 쓰는 도구.",
  "text": {
    "why": "화면을 먼저 만들 때 서버가 아직 없으면 진도가 막힌다. Apeeye는 브라우저에서 컬렉션 이름 하나만 적으면 그 자리에서 진짜 주소가 생겨, 내 앱에서도 curl이나 포스트맨에서도, 동료 컴퓨터에서도 호출된다.",
    "take": "탭을 닫으면 503으로 분명히 끊긴다고 미리 적어 둔다. 어중간하게 살아 있는 것보다 이렇게 딱 끊기는 편이 오히려 헷갈리지 않는다.",
    "build": [
      "자료는 브라우저의 IndexedDB에만 저장되고 서버에는 아무것도 남지 않는다. 중계 서버가 들어온 요청을 열려 있는 내 탭으로 넘기고 탭이 답하는 구조다. GET·POST·PUT·PATCH·DELETE를 상태 코드와 함께 지원하고, 작업 공간 전체를 JSON으로 내보내고 들여올 수 있다. 직접 내려받아 로컬에서 돌릴 수도 있다."
    ],
    "who": [
      {
        "role": "백엔드가 준비되기 전에 화면부터 붙여 봐야 하는 사람, 강의나 시연에서 API 예제가 필요한 사람.",
        "situation": null
      }
    ],
    "start": [
      {
        "command": false,
        "text": "apeeye.ibr0r.com에서 Playground를 열고 users 같은 컬렉션 이름을 하나 적는다. 위에 뜨는 주소를 그대로 호출하면 된다."
      }
    ],
    "caveat": [
      "탭이 열려 있는 동안에만 주소가 살아 있다. 계정이 없어서 작업 공간 주소를 아는 사람은 누구나 읽고 쓸 수 있으니 실제 자료는 넣지 않는다. 별이 한 자리인 초기 프로젝트다."
    ]
  },
  "cta": {
    "type": "try",
    "label": "TRY",
    "url": "https://apeeye.ibr0r.com/"
  },
  "ready": "browser",
  "categories": [
    "dev-tools",
    "api"
  ],
  "categories_confirmed": true,
  "tags": [
    "목업",
    "api",
    "프론트엔드",
    "브라우저"
  ],
  "platform": [
    "web"
  ],
  "license": {
    "spdx": "MIT",
    "scope": "permissive",
    "scope_text": "상업 이용·수정·재배포 가능. 저작권 고지는 유지.",
    "url": "https://spdx.org/licenses/MIT.html",
    "note": null,
    "open_source": true
  },
  "language": "JavaScript",
  "source_urls": {
    "canonical": "https://apeeye.ibr0r.com/",
    "github": "https://github.com/ibr0r0/apeeye",
    "huggingface": null,
    "app_store": null,
    "sightings": [
      {
        "source": "showhn",
        "url": "https://github.com/ibr0r0/apeeye",
        "posted_at": "2026-09-17T17:53:55.000Z",
        "hn_url": "https://news.ycombinator.com/item?id=49744259"
      }
    ]
  },
  "numbers": {
    "as_of": "2026-09-19T18:00:00.000Z",
    "stars": 7,
    "stars_unit": "GitHub stars",
    "stars_checked_at": "2026-09-19T22:59:47.879Z",
    "stars_observed_since_check": 0,
    "star_delta_24h": null,
    "star_delta_7d": null,
    "star_delta_30d": null,
    "star_delta_unit": "GitHub stars gained in the window, GH Archive events summed to as_of",
    "spark_14d": [
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null
    ],
    "hf_likes": null,
    "hf_likes_observed_at": null,
    "hn_points": 2,
    "hn_points_observed_at": "2026-09-18T20:40:15.562Z",
    "store": null,
    "method": "별 총합 = GitHub에서 마지막으로 확인한 값(stars_checked_at) + 그 뒤 GH Archive에서 관측한 증가. 24h·7d·30d 증가는 GH Archive 시간별 이벤트를 기준 시각(as_of)까지 합한 값. 우리 점수는 없습니다."
  },
  "ranks": null,
  "activity": {
    "pushed_at": "2026-09-17T18:26:29.000Z",
    "owner_type": "User",
    "open_issues": 0,
    "contributors": 1,
    "releases_count": 0,
    "latest_release": null,
    "checked_at": "2026-09-19T22:59:47.879Z",
    "core_checked_at": "2026-09-19T22:59:47.879Z"
  },
  "signals": [
    {
      "kind": "new",
      "label": "신규",
      "value": "생성 1h 만에 포착"
    }
  ],
  "images": {
    "og": "https://tesign.com/img/apeeye-f7534c958b.png",
    "cover": "https://tesign.com/img/apeeye-f7534c958b.png",
    "cover_width": 2400,
    "cover_height": 1260,
    "gallery": [
      "https://tesign.com/img/apeeye-f7534c958b.png"
    ],
    "alt": "Apeeye 첫 화면. \"Fake APIs. Real endpoints.\" 문구와 Playground 열기 버튼, 아래에 작업 공간 주소 복사 줄이 보인다.",
    "tier": 1
  },
  "dates": {
    "first_seen_at": "2026-09-17T19:44:54.488Z",
    "source_created_at": "2026-09-17T17:53:55.000Z",
    "discovery_hours": 1.8498577777777778,
    "launch_signal_at": "2026-09-17T17:53:55.000Z",
    "kept_at": "2026-09-19T22:45:27.577Z",
    "first_published_at": "2026-09-19T22:45:27.650Z",
    "updated_at": "2026-09-19T22:45:27.625Z",
    "ingestion_mode": "live"
  },
  "notes": [
    "이 파일은 tesign.com 항목 페이지와 같은 빌드에서 같은 데이터로 만들어졌습니다. 소개 글은 편집자가 쓴 것이고, 숫자는 저장된 관측값입니다.",
    "JSON의 null은 관측하지 않았다는 뜻입니다 — 0이 아닙니다. 마크다운에서는 [확인 필요]로 적습니다.",
    "별 총합 = GitHub에서 마지막으로 확인한 값(stars_checked_at) + 그 뒤 GH Archive에서 관측한 증가. 24h·7d·30d 증가는 GH Archive 시간별 이벤트를 기준 시각(as_of)까지 합한 값. 우리 점수는 없습니다.",
    "요약이며 법적 조언이 아닙니다."
  ]
}
