본문 바로가기
C.W.K.
Stream
Lesson 05 of 05 · published

한 문장, 두 번 말하기

~10 min · canary, walking-skeleton, end-to-end

Level 0침묵
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"뭘 믿기 전에, 진짜 짧은 문장 하나로 엔진 전체를 증명해. 그다음 공짜로 한 번 더 말해봐."

걸어 다니는 뼈대

정규화, binding, 캐시, 복구, 오디오까지 서브시스템을 다 지어놓고 마지막에야 이어 붙일 수도 있어. 근데 그건 이음새가 어긋났다는 걸 제일 늦게 아는 방법이야. 빠른 쪽은 걸어 다니는 뼈대지. 조각들을 다듬기도 전에, 진짜 인프라 위에서, 파이프라인 전체를 처음부터 끝까지 통과하는 제일 얇은 한 줄기. Bellows의 첫 canary가 딱 그거였어. 짧은 한국어 문장 하나가 진짜 provider랑 진짜 오디오 기기를 타고 첫날에 엔진을 관통했지.

canary가 진짜로 증명한 것

파이프라인 네 단계를 실제로 다 돌렸어. 문장 하나를 정규화하고 합성해서, 나온 MP3를 검증하고, 스튜디오 출력으로 제 음질로 재생했어. mock이 아니라 진짜 방에서 나는 진짜 소리로. 그다음 잘 되는 길만이 아니라 아키텍처를 증명하는 걸 했지. 똑같은 요청을 한 번 더 쏘고, provider를 안 부르고 캐시가 맞는 걸 확인했어. 문장 하나를 두 번 말하는 걸로 합성이랑 검증이랑 재생이랑 캐시 보증을 한 번에 다 굴린 거야.

왜 진짜 canary가 mock 더미를 이기냐면

유닛 테스트는 provider랑 기기랑 파일시스템을 mock해. 하필 진짜 시스템이 깨지는 그 이음새들을 말이야. canary는 무서운 부분을 mock하길 거부해. 진짜 유료 API를 부르고, 진짜 CoreAudio 기기를 열고, 디스크의 진짜 캐시를 건드려. 그래서 제일 먼저 알게 되는 게 mock끼리 말이 맞느냐가 아니라 이음새가 버티느냐가 되지. 엔진의 진짜 provider voice ID는 내내 안 드러나. canary도 날 ID가 아니라 profile 이름으로 말하거든. 그거 빼곤 전부 진짜야.

Code

아키텍처 전체를 증명하는 제일 얇은 줄기·python
# The first canary: prove the WHOLE pipeline with one tiny REAL request.
# (Real provider voice IDs stay private -- the profile name is all you need.)
def canary():
    text = "안녕, 아빠."                        # one short, real sentence
    job1 = speak(text, profile="pippa")        # normalize -> resolve -> PAY -> play
    assert is_valid_audio(job1.audio)          # a real, validated MP3
    assert job1.played_on == "studio-output"   # it actually reached the device

    job2 = speak(text, profile="pippa")        # identical request, moments later
    assert job2.cache_hit and job2.cost == 0   # the zero-provider proof

    # One sentence, spoken twice, exercises the entire engine end to end.

External links

Exercise

네가 짓고 있거나 아는 시스템의 걸어 다니는 뼈대를 설계해봐. 진짜 이음새를 mock으로 때우지 않고 다 건드리는, 제일 얇은 한 줄기 실행. 진짜 네트워크, 진짜 저장소, 진짜 외부 서비스로. 어떤 입력 하나를 쓸지, 부품 하나가 아니라 파이프라인 전체를 증명할 어서션 두세 개가 뭔지 적어. 그리고 네가 제일 무서워하는 이음새에 표시해. canary가 존재하는 이유가 바로 그거니까.
Hint
좋은 canary는 범위는 일부러 작고 인프라는 일부러 진짜야. 네가 제일 걱정하는 부분을 canary가 mock으로 덮으면, 그건 시스템이 아니라 네 자신감을 시험하는 거야.

Progress

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

댓글 0

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

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