레트로그레이드에서 Semver

발행: (2026년 4월 9일 AM 12:02 GMT+9)
9 분 소요
원문: Dev.to

I’m happy to translate the article for you, but I’ll need the full text you’d like translated. Could you please paste the content (excluding the source line you already provided) here? Once I have the text, I’ll translate it into Korean while preserving the original formatting and technical terms.

DEV 만우절 챌린지 제출

프로젝트: Semver‑in‑Retrograde – 프로젝트의 감정 상태에 대한 경영진 수준 보고서를 제공하는 “dependency‑analysis” 도구.

실제 데모:
저장소:

무엇을 하는가

  1. package.json을 붙여넣기.

  2. “내 의존성 오라 분석하기” 버튼 클릭.

  3. 진지해 보이는 대시보드가 나타나며, 다음과 같은 진지한 경영진용 리포트를 제공합니다:

    • 오라 안정성
    • 카오스 지수
    • 피어 의존성 긴장도
    • 수성 상태
    • 의존성 “빅 3”
    • 예언
    • 행운 명령
    • 공유 카드 (내부 분기 검토용 준비 완료)

기업 UI와 신비로운 출력 사이의 대비가 농담의 포인트입니다.

보너스 기능: 업로드된 파일이 requirements.txt 혹은 Gemfile 형태라면, 앱은 418 I’m a teapot을 반환합니다 – “잘못된 생태계, 잘못된 음료.”

Technical Overview

LayerResponsibility
Local code매니페스트를 파싱하고, 특징을 추출하며, 결정론적 점수를 계산합니다.
Gemini (server‑side)추출된 숫자를 다듬은 실행 요약형 내러티브(요약, 태양/달/상승, 레드 플래그, 예언, 행운 명령, 공유 캡션)로 변환합니다.
ZodGemini가 반환한 구조화된 JSON을 검증한 뒤 렌더링합니다.
Next.js + TypeScript + Tailwind CSS프론트엔드 및 라우팅.
Gemini API (disabled in prod)개발/평가 단계에서만 사용됩니다; 프로덕션에서는 무제한 API 비용을 방지하기 위해 고정된 “예산 위원회 안전 모드” 문구를 제공합니다.

Feature Extraction (deterministic)

  • Dependency counts (regular, dev, peer, optional)
  • Version ranges (wildcards, latest, exact)
  • Overrides / resolutions
  • Lifecycle scripts (pre*, post*, postinstall 등)
  • Package‑manager hints (npm, yarn, pnpm)
  • Framework / test / build tool fingerprints

이러한 항목들은 가중 점수 모델에 입력되어 다음과 같은 메트릭을 산출합니다:

MetricWhat Influences It
Aura Stability고정된 버전 ↑, 와일드카드/latest
Chaos Index느슨한 범위, 많은 라이프사이클 스크립트, 워크스페이스 확산 ↑
Peer Dependency TensionpeerDependencies 수가 많을수록 ↑
Boundary IssuesOverrides, resolutions, 워크스페이스 힌트 ↑
Trust Issues사설 패키지, postinstall, 의심스러운 스크립트 ↑
Mercury Status라이프사이클 스크립트의 심각도(특히 pre*, post*, postinstall) ↑

모든 점수는 결정론적이며, 동일한 매니페스트는 언제나 동일한 숫자를 반환합니다.

Gemini‑Generated Content (tone only)

  • Executive summary
  • Sun / moon / rising interpretations
  • Red‑flag commentary
  • Prophecy
  • Lucky shell command
  • Share caption

Gemini는 추출된 특징 계산된 숫자를 받아 최종 내러티브를 생성합니다. 점수 자체를 결정하지는 않습니다.

개발 및 평가 설정

  1. Promptfoo harness를 읽기 엔드포인트 주위에 배치 → 구조화된 출력 계약을 보장합니다.
  2. 두 단계 평가:
    • 결정론적 검사 (JSON 형태, 라이브‑모드 픽스처, 엔지니어링 조언으로의 편향 방지, lucky 명령 형식, 신호 반영).
    • LLM‑as‑judge 루브릭 (톤, 진정성 기반 유머, 픽스처에 기반).
  3. Runner가 실제 Next.js 앱에 HTTP로 요청을 보내므로, 평가 경로가 실제 제품 경로와 동일하게 됩니다.

저장된 평가 실행:

  • ID: eval-qw8-2026-04-08T00:18:21
  • 공개 보고서:
  • 원시 JSON:

디자인 목표

“이것은 영적 위기에 빠진 컴플라이언스 제품처럼 보여야 합니다.”

UI는 진지한 기업 감사 대시보드를 모방하고, 출력은 결정론적이며 신비로운 맛이 나는 경영진 보고서입니다.

빠른 데모 흐름

  1. package.json을 붙여넣습니다.
  2. “Analyze my dependency aura.” 를 클릭합니다.
  3. 대시보드가 나타나는 것을 보고, 조직을 감사할 준비가 됩니다.
  4. 프로젝트의 emotional instability(감정적 불안정) 이야기를 하고 있음을 깨닫습니다.

최종 메모

  • 공개 배포는 Gemini를 호출하지 않으며, 고정된 예산을 고려한 경영진 진술을 제공합니다.
  • 전체 Gemini 경로는 로컬 및 평가 중에 사용됩니다.
  • 비‑Node 매니페스트에 대한 418‑teapot 응답은 의도적으로 무의미하지만 정확하고 매우 만족스럽습니다.

테스트 실행 요약

That run used:
- promptfoo
- 4 manifest fixtures
- 8 expanded test cases
- concurrency set to 1

light retrying around transient model-availability issues
Gemini as the judge model

Result:
8 / 8 passing
0 failures
0 errors
runtime: about 133 seconds

Fixtures

The fixtures cover four different dependency personalities:

  • 다소 과도하게 관리되는 Next.js 워크스페이스
  • 최신 및 와일드카드 범위를 사용하는, 약속을 회피하는 Vite 앱
  • 오버라이드, 해결, 그리고 라이프사이클 이상 현상이 있는 유령 같은 라이브러리
  • 비교적 지루하고 안정적인 패키지로, 특별히 과장되지 않아야 함

그 마지막 경우가 중요했습니다. 농담 같은 제품은 언제든지 더 크게 외칠 수 있습니다. 더 어려운 부분은 매니페스트가 얻지 못한 드라마를 만들지 않으면서도 재미를 유지하는 것입니다.

제출

저는 이것을 Best Google AI Usage에 제출합니다.

Google AI는 프로젝트의 핵심입니다. Gemini는 서버에서 내러티브 레이어를 실행하고, 자유 형식 텍스트 대신 구조화된 JSON을 반환하며, 표시 전에 검증을 거치고, 하드 제약과 톤을 모두 확인하는 평가 뒤에 자리합니다. 제품은 결정론적 점수와 AI가 생성한 기업 신비주의 사이의 이 분리 덕분에 작동합니다.

그것이 제가 모델에게 맡기고 싶었던 역할입니다. 모델은 핵심 로직을 담당하지 않으며, 다듬어진 무의미함을 담당합니다.

만약 여러분의 JavaScript 프로젝트에 해결되지 않은 의존성 감정이 있다면, Semver in Retrograde가 기업 규모에서 이를 오해하도록 준비되어 있습니다.

0 조회
Back to Blog

관련 글

더 보기 »

Veracrypt 프로젝트 업데이트

markdown !SourceForge 로고 https://a.fsdn.com/con/images/sandiego/sf-logo-full.svg 홈 https://sourceforge.net/ | 검색 https://sourceforge.net/directory/ | Vera...