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

매크로는 직접 Ask 를 절대 막지 않는다

~10 min · optional, core-path, convenience, layering

Level 0신호 없음
0 XP0/32 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"너랑 코어 사이에 서는 편의는 편의가 아냐. 직접 질문은 항상 한 탭 거리여야 해."

코어 경로는 성역

Pippa Go 가 하는 제일 중요한 하나는 Pippa 한테 질문하게 해주는 거야. 매크로는 그 위의 사랑스러운 개선 — 재사용 프롬프트, 저장된 단축 — 이지만, 엄격히 코어 경로 위의 층 이지 그 앞의 gate 가 절대 아냐. 매크로를 만들거나, 고르거나, 동기화하거나, 매크로 목록이 로드되기를 기다리지 않고, 언제나 앱을 열어 직접 질문할 수 있어야 해. 어떤 매크로 관련 단계든 사용자랑 직접 Ask 사이에 설 수 있으면, 개선이 조용히 장애물이 된 거야.

선택적은 끝까지 선택적이란 뜻

'선택적'은 행복한 경로만이 아니라 모든 조건에서 성립해야 해:

  • 오프라인: 매크로 저장소에 못 닿아? 직접 Ask 는 여전히 돼. 매크로는 degrade 하고; 코어는 안 그래.
  • 비어 있음: 아직 매크로 안 만듦? 첫 실행부터 직접 Ask 는 돼. 매크로는 절대 전제조건이 아냐.
  • 고장: 매크로 sync 에러, 캐시 손상? 직접 Ask 는 영향 없어. 애초에 매크로 서브시스템에 안 의존했으니까.

테스트는 단순하고 엄격해: 매크로 시스템 어디의 실패든 직접 질문을 막을 수 있어? 그렇다면, 층 구조가 틀렸어. 코어 경로는 편의 층에 대한 hard 의존이 0 이어야 해, 편의가 가능한 모든 방식으로 실패해도 핵심이 여전히 되게.

개선 층은 한 방향을 가리킨다

이게 건강한 개선의 일반 모양이야: 코어에 의존하고, 코어는 그 위 뭐에도 의존 안 해. 의존은 아래로 가리켜 — 매크로가 composer 랑 캡처 흐름으로 손을 뻗고, composer 는 매크로에 대해 아무것도 몰라. 그 방향을 맞추면, 핵심 질문하기 경로를 안 건드리고 매크로 시스템 전체를 더하고, 바꾸고, 없앨 수 있어. 거꾸로 하면 — 코어가 편의로 손을 뻗게 하면 — 개선의 흔들림이 핵심의 장애가 돼. 화살표를 안전한 쪽으로 유지하면, 뭐가 깨지든 '선택적'이 참으로 남아.

Code

의존은 아래로: 코어는 매크로를 모른다·typescript
// 코어 ask 경로 — 그 안 어디에도 매크로 의존 없음.
async function askDirect(question: string, images: ResolvedImage[]) {
  const turn = createTurn(question, images.map(i => i.id));
  await commitLocally(turn);      // 캡처 먼저, 항상 가능
  return enqueueForDelivery(turn); // 오프라인, 빈 상태, 매크로 고장에도 됨
}

// 매크로 층은 위에 앉아 코어로 손을 아래로 뻗어.
async function askViaMacro(macro: PromptMacro, input: string, images: ResolvedImage[]) {
  const question = compose(macro.instruction, input); // 위의 편의
  return askDirect(question, images);                  // ...코어에 위임
}

// askDirect 는 매크로 서브시스템을 절대 import 하거나 확인 안 해.
// 매크로가 통째로 실패해도 askDirect 는 완전히 영향 없어.

External links

Exercise

코어 동작 위에 '편의' 기능이 층진 앱을 골라(compose 위의 템플릿, 피드 위의 필터, 컨트롤 위의 프리셋). 편의를 실패시켜봐 — 오프라인 가기, 상태 손상, 비우기 — 코어 동작이 여전히 되는지 봐. 깨지면, 의존이 틀린 쪽을 가리켜. 코어가 편의에 대한 의존이 0 이 되게 어떻게 뒤집을지 스케치해.
Hint
해법은 항상 같은 모양: 편의 층이 코어를 import 하고 호출; 코어는 편의에서 아무것도 import 안 함. 그러면 편의의 어떤 실패든 코어 위에 갇히고, 핵심 동작은 개선이 깨지는 모든 방식을 살아남아.

Progress

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

댓글 0

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

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