아빠의 불만
Spark는 앱이 태어난 날 아빠가 한 말 한마디에서 시작해.
사진까지 지원하는 번역 앱은 많은데 그게 단순 번역이라는 거지. 문맥이 생기지도 않고.
메뉴판에 폰을 대면 한국어 메뉴판이 돌아오고, 앱을 닫으면 끝이야. 다음 날 다른 메뉴판에서 같은 단어를 만나면 또 처음 보는 사이가 돼. 만날 때마다 영점에서 시작하니까 어제 만난 게 오늘 하나도 도움이 안 돼. Spark는 바로 이 빈틈을 메우려고 설계됐어.
문장은 잊고, 순간은 쌓여
번역 앱은 문장 단위로 일해. 하나 들어오면 하나 나가고, 그러고는 잊어. 프로그래밍으로 치면 순수 함수처럼 굴어. 그래서 빠르고 싸. 그리고 바로 그 때문에 쓰는 사람을 끝내 알아가지 못해.
Spark는 순간(moment) 단위로 일해. 순간은 언어랑 한 번 마주친 일이야. 언제 어디서였는지, 어떤 상황이었는지(식당, 역, 약국 카운터), 아빠가 뭘 보거나 들었는지, 뭘 말하고 싶었는지가 다 담겨. 내가 그 순간에 대해 만든 건 전부 계보를 달고 순간에 매달려. 내가 읽은 줄, 아빠 대신 써준 카드, 추천한 표현, 그리고 그걸 만든 턴과 브레인까지.
| 번역 앱 | Spark | |
|---|---|---|
| 일의 단위 | 문장 하나 | 순간 하나: 장소, 시간, 상황, 보고 들은 것 |
| 답하고 나서 | 잊어버려 | 남겨둬. 만든 턴과 브레인까지 같이 |
| 또 만나면 | 영점에서 시작해 | 아빠가 이미 만난 것에서 시작해 |
| 자라는 것 | 없어 | 모든 언어를 잇는 언어 그래프 하나 |
엔진의 어휘만 봐도 모양이 나와. 순간엔 종류가 있고, 미디어 파일마다 맡은 역할이 있고, 결과는 전부 정해진 종류의 턴에서 나와(첫 번째 코드 블록). 읽으면서 하나만 확인해 봐. 아키텍처 문서는 순간 종류를 셋(사진, 대화, 텍스트)으로 적었는데 엔진은 다섯을 받아. 라이브 카메라랑 빠른 복습도 순간을 만들거든. 문서랑 코드가 다르면 이 퀘스트는 코드를 따라.
순간은 인스턴스, 어근은 클래스
여기서 아빠가 세상을 보는 방식이 들어와. 순간은 인스턴스야. 이 메뉴판, 이 표지판, 이 테이블에서 나온 이 문장. 인스턴스 뒤엔 클래스가 있어. 라틴어 aqua가 클래스고, 스페인어 agua, 이탈리아어 acqua, 포르투갈어 água, 카탈루냐어 aigua가 그 인스턴스야. 한자 學도 클래스야. 한국어 학교도, 일본어랑 중국어의 学校도 다 여기서 상속받았어.
언어마다 단어장을 따로 만들면 인스턴스를 하나씩 외우게 돼. Spark는 나한테 그 뒤의 클래스를 역설계하라고 해. 그래야 새 단어가 아빠가 이미 아는 무언가에 붙거든. 나라마다 단어 카드 더미가 따로 쌓이는 대신, 여행이 거듭될수록 그래프 하나가 자라. 이 관점이 낯설면 OO Quest가 바닥부터 쌓아줘. 거기 트랙 3(Language)는 영어 구동사에 똑같은 수를 써. 인스턴스 모으기는 그만두고 틀을 찾으라는 거지.
아빠가 줄 하나를 탭하면 엔진은 이 요청을 평범한 문장으로 적어 보내. 거기에 제일 중요한 규칙 하나를 붙이고(두 번째 코드 블록). 그럴듯하게 들리는데 진짜가 아닌 어근은 나중에 거기 붙는 단어까지 전부 엉뚱한 데로 끌고 가. 그래서 지어낸 답보다 빈 답이 나아. 어근 줄을 어떻게 파싱하고 기록하는지는 이 퀘스트 트랙 3에서 봐. 그게 쌓여서 생기는 어근 페이지는 트랙 8에서 보고, 어디까지가 아직 설계인지도 거기서 솔직하게 말할게.
Spark가 아닌 것
아키텍처 문서는 Spark가 아닌 것까지 적어둬. 하나하나가 실수로 만들어 버리기 쉬운 제품이라서 그래.
- 회화집이나 단어 카드. 모든 표현은 실제 순간에서 나와. 거기서 만났거나, 그 순간을 위해 추천받았거나.
- 두 번째 피파. 설명, 스레드, 라우팅은 cwkPippa에 그대로 있어. 레슨 4가 이 경계 얘기야.
- 크럼 창고. 다른 가족 앱에서 빌린 순간은 그 앱 거야. 링크만 걸고 복사는 안 해.
- 온디바이스 번역기. 읽는 건 진짜 피파야. 레슨 2가 그 결정이야.
- 암기 훈련. 복습엔 타이머도, 연속 기록도, 점수도 없어. 아빠가 만났던 걸 다시 만나는 거야.
- 두 번째 보이스 모드. 아빠가 나랑 말로 나누는 대화는 cwkPippa 보이스 모드야. 여기선 그걸 그대로 가져다 써.