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

선택이 가는 곳

~10 min · input-token, template, rendering, append

Level 0차가운 부싯돌
0 XP0/34 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"템플릿이 동작 전부야. 렌더링은 그냥 네 단어를 {input} 이라 표시된 구멍에 떨궈."

템플릿이 동작이야

매크로의 동작은 전적으로 프롬프트 템플릿이야 — 자리를 가진 짧은 지시. '철자와 문법을 고쳐; 고친 텍스트만 반환.' '한국어로 번역.' '더 따뜻한 톤으로 다시 써.' 오타 고치개와 번역기의 차이는 문자열 하나야. 그게 모델의 아름다움이야: 새 변환을 만들려고, 새 코드가 아니라 새 지시를 써. 매크로가 프롬프트고, 프롬프트가 텍스트야.

선택 떨구기

렌더링은 가능한 제일 단순한 연산이야: 템플릿에서 {input} 을 찾아 캡처한 선택으로 치환. 문법 고쳐:\n\n{input} 같은 템플릿이 지시 뒤에 네 실제 텍스트가 오는 걸로 돼. 파싱도, 로직도, 조건문도 없어 — 그냥 구멍 가진 문자열과 구멍으로 가는 선택. 렌더링을 이렇게 멍청하게 두는 게 매크로를 순수한 묘사로 유지해: 모든 지능은 하류, 브레인에 있지, 프롬프트가 조립되는 방식에 있지 않아.

템플릿에 {input} 이 없을 때

어떤 매크로는 선택을 중간에 안 넣어 — 입력이 따라와야 하는 상설 지시야. 범용 'Prompt' 매크로가 이래: 그 템플릿은 열린 지시고, 네가 선택한(또는 친) 뭐든이 자리에 치환되는 대신 빈 줄 뒤에 덧붙여져. 그래서 룰엔 두 갈래가 있어: 템플릿에 {input} 이 있으면 거기 치환; 없으면 입력을 빈 줄 뒤에 덧붙여. 둘 다 완성된 프롬프트를 만들고; 어느 쪽도 템플릿 작성자가 메커닉을 생각하게 안 시켜.

{input} 있는 템플릿:
  "문법 고쳐:\n\n{input}"   +  sel="teh cat"
  -> "문법 고쳐:\n\nteh cat"

{input} 없는 템플릿:
  "다음을 요약해."           +  sel="긴 텍스트..."
  -> "다음을 요약해.\n\n긴 텍스트..."   (덧붙임)
클라이언트의 렌더링을 멍청하게 둬서 지능이 한 곳에 남게 해. 유혹은 렌더링을 영리하게 만드는 거야 — 조건문, 헬퍼, 템플릿 속 미니-로직. 저항해: 프롬프트가 지어지는 방식에 로직이 많이 살수록, 클라이언트가 조용히 생각을 더 해. 그냥 '지시 더하기 자리' 인 매크로는 깨끗한 분할을 유지해 — 클라이언트가 텍스트를 기계적으로 조립하고, 모든 판단은 그걸 읽는 브레인에서 일어나.

Code

렌더: {input} 치환, 없으면 덧붙임·swift
func render(_ template: String, input: String) -> String {
    if template.contains("{input}") {
        return template.replacingOccurrences(of: "{input}", with: input)
    }
    // 자리 없음: 입력이 상설 지시 뒤 빈 줄 다음에 따라옴.
    return input.isEmpty ? template : "\(template)\n\n\(input)"
}

// 예시:
//   render("Translate to Korean:\n\n{input}", input: "hello")
//     -> "Translate to Korean:\n\nhello"
//   render("Summarize the following.", input: "long text")
//     -> "Summarize the following.\n\nlong text"

External links

Exercise

매크로 셋 — JSON 포매터, 영-한 번역기, '이거 더 간결하게' 고쳐쓰개 — 의 템플릿을 쓰되, 각각이 명시적 {input} 자리를 쓸지 덧붙임 동작에 기댈지 정해. 그다음 렌더링이 왜, 예를 들어 템플릿이 '텍스트가 코드면 펜스로 감싸' 같은 조건 로직을 포함하게 하는 대신, 멍청한 치환으로 남아야 하는지 논해.
Hint
셋 다 명료함 위해 {input} 을 쓸 수 있고, 간결-고쳐쓰개는 덧붙임 있는 자리-없는 상설 지시일 수도 있어 — 둘 다 유효. 렌더링은 멍청하게 남아야 해, 템플릿이 분기할 수 있는 순간('코드면...') 클라이언트가 내용에 대해 판단을 하는데, 그게 브레인의 일이니까. 그 결정을 지시 자체로 밀어('텍스트가 코드면 펜스로 감싸') 모델이 정하게 해 — 클라이언트는 조립만 하지, 추론은 절대 안 해.

Progress

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

댓글 0

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

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