엔진 · 아키텍처

낫노코의 안목을 학습하는 엔진.

다단계 검색·랭킹이 뼈대입니다. 해자는 플라이휠 — 평가 기준은 헌법, 모든 큐레이터 결정은 라벨, 코스마다 랭커가 예리해집니다. 무엇이 라이브(v0)이고 무엇이 다음인지 솔직하게.

왜 파이프라인이 아니라 엔진인가

파이프라인은 한 번 돕니다. 엔진은 루프를 닫습니다 — 서브하고, 사람·학습자의 행동을 보고, 라벨로 바꾸고, 재학습, 재배포. 이 루프가 제품입니다.

플라이휠결정 → 안목 있는 랭커
서브
경로 · 후보
관찰
수정 · 결과
라벨
curation_events
학습
재정렬 · 임베딩
배포
섀도 → A/B
  1. SERVE순위 매긴 경로/후보군이 나갑니다.
  2. OBSERVE큐레이터가 기계를 덮어쓰고, 학습자는 완주·이탈·보관합니다.
  3. LABEL각각 curation_events에 추가 전용으로 기록.
  4. TRAIN그 라벨로 재정렬기 재학습 + 임베딩 갱신.
  5. DEPLOY섀도 랭크·A/B·승격 — 다시 서브, 더 예리하게.

제품 파이프라인

크롤이 클립 인덱스를 채우고, 두 갈래가 코스로 — 즉석 AI 생성과 사람 콘솔.

AI 생성사람이 큐레이션

분류체계

테마

크롤

검색 · 채점

저장

클립 인덱스

AI · 즉시

온디맨드

사람

큐레이션

조립

발행

학습자

완주

랭커 내부 — 6개 레이어

주제가 들어오면 실제로 일어나는 일. 검색은 넓게, 랭킹은 강하게, 배열은 완주 가능한 경로로. 각 셀에 라이브/예정 표시.

v0 라이브 배포됨v1 다음v2 목표
L1후보 생성 — 검색합집합 → 중복제거 → ~수백

키워드v0 라이브

matchIndex 프리필터 · 키워드+테마

의미v0 라이브

ANN 임베딩 (pgvector · Bedrock)

분류v0 라이브

테마 매칭 활성

협업v2

완주 경로 공동출현

L2피처 조립(후보, 맥락)별

콘텐츠v0 라이브

조회·호응·화제·신선도·채널

의미v0 라이브

cos(query, clip)

사람해자

approve-rate · timestamp drift

행동v2

completion · drop-off

L3랭킹 — “자리를 얻는다”9개 객관 신호 자동 정규화

하이브리드 블렌드v0 라이브

가중 신호 + 다양성

LLM-as-judgev0 라이브

Claude가 상위 ~15 재정렬

학습된 LTRv2

해자로 학습

L4경로 배열리스트가 아니라 경로

커버리지v2

서브모듈러 · 다양성

교수법

기초 → 심화

시간 예산

학습자에 맞춤

L5서빙즉시 · 캐시

실시간 경로v0 라이브

/create

콘솔 후보군v0 라이브

오라클

피드백큐레이터 수정·학습자 결과가 L3(재학습)와 L1/L2(신호 갱신)로 되돌아갑니다. 그 경로가 v0 → v2로 올려줍니다.

퍼널 — 넓게 들어와 큐레이션되어 나감

단계마다 좁혀집니다. 실시간 인덱스 실제 수치.

발견 — 넓은 그물

테마별 다중 검색어

수백

채점 & 인덱싱

메타데이터 → 4축

66

기준 통과

overall ≥ 6.5

45

랭킹 후보군

하이브리드 랭커 → 상위 ~15

~15

↓ 기계 → 사람 ↓

직접 고른 클립

승인 + 타임스탬프

16

발행된 코스

클립 + 워크북

1

엔진이 저장하는 방식

Postgres, 작성 주체별. 점수는 버전, 클립은 사람 편집, 영상은 pgvector 임베딩, 모든 결정은 추가 전용.

기본 키 외래 키vector 임베딩

원본 · 크롤

videos

영상

크롤 · 1

video_idtitlechannelduration_secchaptersjsonbkeywords[]published_atview_countembeddingvectorstatus

채점

video_scores

채점

채점 · N · 버전

idvideo_idvideosrubric_versionpracticalitynofluffcorrectnessrelevanceoverallreasonjsonbfallback

video_themes

테마

크롤 · M:N

video_idvideostheme_idfound_via

큐레이션 · 사람

clips

클립

큐레이션 · N / 영상

idvideo_idvideosstart_secend_secreasonjsonbsourcecurated_bymembers

조립

courses

코스

발행 · 1

idslugtitlejsonbworkbookjsonbstatuscreated_bymembers

course_clips

순서

발행 · 정렬

course_idcoursesclip_idclipspositionmodule

해자

curation_events

결정

모든 액션 · 추가 전용

idactormembersactionentity_idbeforejsonbafterjsonb

members

큐레이터

등록 · 1

idemailrole

무엇을, 어느 레벨에서

레벨시점관계필드
영상크롤영상당 1title · channel · chapters · view_count · published_at · embedding
채점채점 (버전)영상당 다수4 axes · overall · reason · rubric_version · fallback
클립큐레이션 (사람)영상당 다수start · end · reason · source(ai|human) · curated_by
코스발행1slug · title · workbook · module order
결정모든 사람 액션추가 전용actor · action · before → after · created_at

성숙도 — 현재 위치

격차에 솔직합니다. v0는 오늘 배포. v1은 임베딩 + 신호 연결. v2는 자가 개선 — 콘솔이 만드는 해자 볼륨이 필요합니다.

Ver검색랭킹루프상태
v0키워드 + 의미 + 분류9개 객관 신호 + Claude 재정렬기록됨● 라이브 — 현재
v1+ 자동 재크롤+ 행동 신호 (완주율)일치도 대시보드다음
v2+ 협업해자로 학습된 LTR닫힘 — 재학습목표
v3개인화학습자별온라인 밴딧 + A/B비전

해자

모든 사람 결정이 랭커를 학습시킴

승인·거절·구간수정·발행 — 누가·언제·이전→이후 추가 전용 기록. 이 결정 스트림은 낫노코만 가지므로, 이 랭커도 낫노코만 학습시킵니다.

막다른 길 없음

모든 레이어에서 우아한 폴백

임베딩 키 없음 → 어휘 + 신호. Claude 없음 → 휴리스틱. DB 없음 → JSON. 엔진은 언제나 순위 매긴 경로를 반환.

편집 관점이 궁금하신가요? 낫노코의 큐레이션 방식 →

How the notnoko engine works — the algorithm, visually · notnoko EDGE