소개

비교 사이트의 외피를 두른 작은 프레임워크.

한국 단국대학교 학부생 개발자가 만든 포트폴리오 프로젝트입니다. 결과물의 핵심은 글이 아니라 프레임워크예요: 카탈로그의 모든 플랜은 content/plans/ 아래의 TypeScript 파일 한 개이고, Zod로 검증되며, 사이트의 모든 페이지에서 별도 라우트 등록 없이 그대로 소비됩니다.

시드 제품으로 고른 두 개 — Claude Max(월 $100)와 Copilot Pro+(월 $39) — 는 의도적으로 서로 대체 불가한 조합이에요. 범용 구독과 IDE 네이티브 자동완성. 1:1 경쟁 제품이 아닌 두 제품을 같은 프레임으로 모델링할 수 있다는 것은, 비슷한 클론 둘을 모델링하는 것보다 더 강한 신호라고 생각합니다.

추천 엔진은 어떻게 동작하나요

위저드는 다섯 개의 답을 모읍니다 (주 용도, 보조 용도, 월 예산, 주로 작업하는 환경, 한국어 품질 우선 여부). 그 답이 lib/recommend.ts의 작은 순수 함수로 들어가 가중합 점수를 계산하고, 카테고리 보너스와 신선도 페널티를 적용한 뒤 결과를 0–100으로 정규화해요. 모델도, 머신러닝도, 엔진에 박힌 의견도 없습니다. 오직 플랜 파일의 데이터와 content/rules.ts의 규칙뿐이에요.

이 사이트가 일부러 하지 않는 것

  • 어필리에이트 링크, 추천 코드, 컨버전 트래킹 없음.
  • 가짜 사용자 카운터 ("이번 주에 1,247명이 비교했어요") 없음.
  • 보라색 그라디언트, 글래스모피즘, 반짝이 이모지, AI-Powered 류의 카피 없음.
  • 방문자를 지표로 환산하는 애널리틱스 없음.

새 플랜을 추가하는 방법

content/plans/<slug>.ts에 파일 하나를 떨구고, lib/schema.ts의 스키마를 맞춰 작성한 뒤 dev 서버를 띄우면 끝이에요. 카탈로그, 비교 테이블, 추천 엔진, 플랜 상세 페이지가 자동으로 잡힙니다. 필수 필드를 빠뜨리면 빌드가 파일 경로와 누락 키를 적어 실패합니다.

한 가지 솔직하게 짚자면, prebuild 훅 (scripts/sync-plans-index.mjs)이 내부 barrel 인덱스 (content/plans/_index.ts, gitignore 처리됨)를 새로 만들어서 Next가 새 파일을 정적으로 발견할 수 있게 해줍니다. 개발자는 인덱스를 직접 수정하지 않지만, 런타임에 파일시스템을 읽는 척하지 않고 인덱스가 자동 재생성된다는 사실은 솔직하게 적어두는 게 맞다고 생각해요.

포트폴리오의 전부입니다.