C.W.K.
Stream
Lesson 02 of 04 · published

가능하되 제약되지 않게

~10 min · offline-capable, not-constrained, tradeoff, quality

Level 0불씨 없음
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"오프라인은 진짜여야 해. 온라인은 훌륭해야 해. 어느 쪽도 다른 쪽을 끌어내리면 안 돼."

두 누수, 반대 방향

오프라인/온라인 관계를 틀리는 방법이 둘 있고, 반대 방향으로 새. 첫째는 이미 알아: 오프라인 요청이 조용히 온라인에 닿음 — 지난 레슨의 프라이버시 누수. 둘째는 더 미묘하고 똑같이 해로워: 온라인 품질이 조용히 오프라인 수준으로 끌어내려짐. 보통 깔끔함으로 위장해 도착해 — '온라인이랑 오프라인 일관되게 하자' — 그리고 결과는 작은 로컬 모델이 할 수 있는 만큼으로 불구가 된 풀-Pippa 정리야.

규칙: 가능하되, 제약되지 않게

Firekeeper 의 표현은 정밀해: 오프라인은 가능 해야 하고(네트워크 없이 진짜로 됨), 온라인은 그것에 제약 되면 안 돼. 온라인 정리는 풀 볼트, 진짜 Pippa 목소리, 더 나은 모델을 받아 — 그게 온라인인 이유니까. 오프라인 정리는 덜 하는, 솔직한 컴팩트 로컬 프로토콜을 받아. 둘이 다를 수 있어 맥락이 다르니까. 똑같이 강제하면 더 줄 게 많은 쪽을 낭비하고 — 온라인이 늘 더 많아.

누수 A (프라이버시):  오프라인 요청 -> 조용히 온라인 침         # 지난 레슨
누수 B (품질):        온라인 정리   -> 오프라인 한계로 상한선    # 이번 레슨

규칙: 오프라인은 가능 (네트워크 없이 됨)
      온라인은 무제약 (가능한 최선 경로 씀)
      같은 계약, 다른 천장 -- 일부러

왜 쥐기 어려운가

거짓 일관성으로의 당김이 강해, 일관성이 좋은 엔지니어링처럼 느껴지니까. 근데 '똑같이 만들어' 는 여기선 틀린 종류의 일관성이야. 일관돼야 할 건 계약 — 같은 요청 모양, 같은 결과 모양 — 이지 능력 이 아냐. 일관된 인터페이스는 프로바이더를 자유롭게 갈아끼우게 해; 일관된 능력은 최선 프로바이더가 최악만큼만 좋다는 뜻이 돼. 계약을 고정하고 천장이 다르게 둬.

인터페이스를 표준화해, 능력이 아니라. 강한 경로와 약한 폴백이 있을 때, 일관성의 이름으로 똑같이 유능하게 만들길 저항해. 요청과 결과 계약을 동일하게 유지해 교체 가능하게, 근데 각각이 맥락이 허락하는 최선을 내게 둬. 폴백은 바닥을 올려야지, 천장을 절대 내리면 안 돼.
아빠는 95%+ 온라인이야. 오프라인 경로가 중요해 — 비행기, 죽은 라우터, 프라이버시 순간 — 근데 흔한 경우가 아니라 예외야. 그게 온라인 품질을 오프라인 동등성 위해 절대 희생하면 안 되는 구체적 이유야: 드물게 겪는 경험을 지키려고 유저가 거의 항상 실제 겪는 경험을 격하하는 거니까.

Code

같은 계약, 다른 천장 — 설계상·swift
// 두 프로바이더가 같은 계약을 말해...
protocol CleanupProvider {
    func clean(_ req: CleanupRequest) async throws -> CleanupResult
}

// ...근데 똑같이 유능하진 않고, 그게 의도적이야.
final class CwkPippaProvider: CleanupProvider {   // 온라인: 풀 볼트, 진짜 목소리, 최선 모델
    func clean(_ req: CleanupRequest) async throws -> CleanupResult { /* 풍부 */ }
}
final class OllamaMiniPippaProvider: CleanupProvider {  // 오프라인: 컴팩트, 솔직, 덜
    func clean(_ req: CleanupRequest) async throws -> CleanupResult { /* 간결 */ }
}
// 계약으로 교체 가능; 공통 능력으로 절대 평준화 안 함.

External links

Exercise

프리미엄 경로와 폴백 경로가 있는 시스템을 찾아(빠른 캐시와 느린 소스, 풍부한 API 와 격하된 것). 폴백이 바닥을 올려, 천장을 내려? 프리미엄 경로를 몰래 상한선 씌울 '일관되게 하자' 제안을 묘사하고, 어떻게 반박할지 써.
Hint
신호는 '일관' 이 인터페이스를 겨냥하는지 능력을 겨냥하는지야. 계약은 동일해야 하고(교체 가능하게) 천장은 달라야 한다고(프리미엄이 프리미엄 유지하게) 주장해. 강한 경로를 약한 것에 맞춰 상한선 씌우는 건 드문 걸 지키려고 흔한 경우를 격하해 — 거의 항상 틀린 거래.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.