일본어를 배워볼까 하다가 만든 것
일본어를 배워볼까 하는 생각이 한동안 있었다.
책을 살까, 강의를 들을까 하다가 결국 아무것도 안 했다. 그러다 클로드랑 뭔가 만들어보고 싶어졌고, 그러면 겸사겸사 일본어도 하게 되지 않을까 싶었다. 그래서 만들기 시작했다. 「JLPT 학습관」.
첫 관문은 히라가나·가타카나 208자로 잡았다. 어차피 여기부터니까.
한 행씩
중학교 때 제2외국어로 일본어를 배웠다. 열심히 하진 않았지만 글자를 한 행씩 배웠던 건 기억이 난다. あ い う え お 하고 나서 か き く け こ.
그 기억을 더듬어서 구성했다. 다섯 자 남짓이 한 묶음이고, 먼저 글자와 소리를 천천히 넘겨보고 나서 바로 문제로 넘어간다. 넘겨보는 동안에는 아무것도 채점하지 않는다. 틀릴 걱정이 없어야 천천히 볼 수 있으니까.

목록으로 돌아가서 연습을 다시 찾아 누르게 하진 않았다. 그러면 방금 본 게 식은 뒤에 문제를 풀게 된다.
한 행만 놓고 물으면 시험이 안 된다
여기서 한 번 막혔다.
な행을 배우고 나서 な행만 가지고 4지선다를 만들면, 다섯 중 하나를 찍는 문제가 된다. 게다가 선택지가 전부 n으로 시작하니 글자를 안 봐도 답이 좁혀진다.
그래서 배운 행은 다음 행을 연습할 때 섞여서 다시 나오게 했다. 진도가 나갈수록 후보가 늘어나니 문제가 저절로 어려워진다.
나중에는 히라가나와 가타카나를 한데 섞는 것도 넣었다. 한 글자씩 배울 때는 '지금은 히라가나 차례'라는 것만으로 절반이 짐작되는데, 문장 안에는 그 힌트가 없으니까.
오답을 아무렇게나 고르면 안 됐다
더 큰 문제는 오답이었다.
し의 오답이 ぬ, ろ, ぱ면 모양을 볼 필요도 없이 답이 나온다. 누구나 다 맞히는 문제는 아무것도 안 가르친다. 사람은 실제로 틀리는 자리에서 배운다.
그래서 헷갈리는 글자 무리를 손으로 적어뒀다. シ·ツ·ソ·ン 같은 것들. 오답은 여기서 먼저 고르고, 모자라면 같은 행 → 같은 단 → 같은 묶음 순으로 내려간다.

な를 물으면서 た와 ぬ를 같이 내놓는다. 둘 다 실제로 헷갈리는 글자다.
틀리면 멈춘다
맞히면 바로 넘어가지만 틀리면 한 번 눌러야 넘어간다. 틀린 문제를 자동으로 넘겨버리면 답을 못 본 채 다음 문제를 풀게 된다.

틀린 카드는 세션 끝으로 보내지 않고 몇 문제 뒤에 다시 넣는다. 끝으로 보내면 스무 장 뒤에나 나오는데, 그때쯤이면 방금 본 정답이 이미 날아가 있다.
이때 방향을 뒤집는다. え → e로 틀렸으면 다음엔 e → え로 묻는다. 같은 방향으로 다시 내면 문제도 선택지도 방금 본 것과 거의 같아서, 글자를 알아본 건지 화면에 남은 걸 고른 건지 구별이 안 된다.
하루 만에 다 외웠다고 하지 않기
만들면서 제일 오래 붙잡은 부분이다.
간격 반복을 넣었다. 맞히면 다시 묻는 간격이 하루 → 이틀 → 나흘로 벌어지고, 그렇게 네 번 맞히면 익힘이 된다. 틀리면 한 칸 내려가는 게 아니라 바닥까지 떨어진다. 모르는 걸 자주 봐야 하니 떨어질 땐 끝까지 떨어지는 게 맞다고 봤다.
여기서 중요한 건 예정일이 된 글자를 맞혔을 때만 오른다는 것이다. 오늘 배운 글자를 오늘 열 번 더 맞혀도 익힘은 안 오른다. 이게 재는 건 "맞혔다"가 아니라 "시간이 지난 뒤에도 남아 있었다"라서 그렇다.
이걸 안 막으면 같은 날 네 번 반복해서 10분 만에 익힘이 되고, 화면의 숫자가 거짓말을 하기 시작한다.
그래서 아무리 자주 들어와도 일주일이 걸린다. 답답해 보일까 싶었는데, 그냥 이 규칙을 화면에 그대로 적어두기로 했다. 규칙이 어디에도 없으면 숫자가 안 오르는 걸 고장으로 읽게 되니까.
진도는 점으로
행마다 글자 수만큼 점을 찍었다. 숫자로 적으면 읽어야 하는데, 점은 안 읽어도 보인다.

색만 쓰지 않고 채움 정도로도 갈리게 했다. 테두리만 있으면 아직 안 본 것, 옅게 차 있으면 익히는 중, 꽉 차면 익힘. 색을 구별하기 어려운 사람에게도 세 상태가 남는다.
오십음도는 찾아보는 자리
표 전체는 페이지 아래에 뒀다. 처음엔 세로로 길게 늘어놨다가 옆으로 넘기는 형태로 바꿨다. 기본 46자, 탁음·반탁음, 요음이 한 칸씩이다.

여기는 외우는 자리가 아니라 찾아보는 자리다. 외웠는지는 위에서 확인한다.
표를 보다가 알게 된 것도 있다. 이름은 오십음인데 실제로 쓰는 건 마흔여섯 자다. 10행 × 5단 = 50칸에서 다섯 자리가 비고, 거기에 어느 행에도 속하지 않는 ん을 더한 수다. 빈 자리 중 わ행의 い·え 자리에는 원래 ゐ(wi)와 ゑ(we)가 있었는데, 소리가 い·え와 같아지면서 1946년에 정리됐다고 한다.
촉음과 장음
만들고 보니 촉음 っ과 장음 ー가 빠져 있었다. 208자에는 없는 글자들인데, 이게 없으면 学校(がっこう)도 コーヒー도 못 읽는다.
표에 끼워 넣지는 않았다. 오십음도는 자음 × 모음 표이고 이 둘은 거기 속하지 않는다. 표 아래에 따로 두고, 로마자로 어떻게 되는지도 같이 적었다 — 촉음은 뒤 자음을 두 번(gakkō), 장음은 모음 위에 줄(kōhī).
문제로는 안 낸다. 혼자서는 소리가 없어서 "이 글자의 소리는?"이 성립하지 않는다. 읽는 법만 알면 된다.
로그인 없이도 쓸 수 있게
이건 처음부터 하고 싶었던 것이다.
검색하다 흘러들어온 사람이 아무것도 묻지 않고 바로 풀 수 있으면 좋겠다고 생각했다. 가입부터 하라고 하면 랜딩 → 가입 → 학습이 되는데, 가나 좀 외워보려고 들어온 사람에게 그건 너무 멀다.
대신 진도가 서버가 아니라 브라우저의 로컬 스토리지에만 남는다. 쿠키·사이트 데이터를 지우면 같이 사라진다. 사파리는 일주일 넘게 들어오지 않으면 지워버릴 수 있어서, 아이폰으로 공부한다면 특히 조심해야 한다.
그 사실은 숨기지 않기로 했다. 안내를 버튼 뒤나 모달 안에 넣으면 기록을 잃고 나서야 그 문장을 읽게 되니까, 접지 않고 페이지에 그대로 뒀다.
그래서 내보내기와 불러오기를 같이 뒀다. 파일 하나면 기기를 옮길 수 있다. 불러오기는 덮어쓰지 않고 합친다 — 두 기기에서 따로 풀었을 때 한쪽을 통째로 버리면, 누르는 사람은 어느 쪽이 버려질지 모르는 채로 버튼을 누르게 된다.
반응이 괜찮으면 로그인을 붙일 생각도 있다. 그러면 파일을 주고받지 않아도 어디서 열든 같은 진도가 이어진다. 다만 그때도 로그인은 선택이었으면 한다. 아무것도 묻지 않고 바로 풀 수 있는 길은 그대로 두고 싶다.
생각보다 오래 걸렸다
기능을 더하는 것보다 거짓말을 안 하게 만드는 것이 훨씬 어려웠다.
숫자가 실제보다 커 보이지 않게, 안내가 실제 동작과 어긋나지 않게, 못 불러온 걸 없는 것처럼 보여주지 않게. 이런 건 눈에 잘 안 띄어서 만들 때가 아니라 한참 뒤에 문제가 된다.
이런 게 있었다. 연습하기 버튼에 "익힘 수는 여기서 오르지 않습니다"라고 적어뒀는데 사실이 아니었다. 문구를 고쳤는데도 계속 헷갈려서 다시 봤더니, 애초에 두 버튼이 겹쳐 있었다 — 덤이라고 해둔 연습하기가 오늘 복습을 대신 처리하고 있었다. 문구를 몇 번 고치고 나서야 고쳐야 할 게 문구가 아니라는 걸 알았다.
클로드랑 이런 걸 찾아내고, 고치고, 고친 게 또 틀려서 다시 보고, 스토리지 정책까지 갈아엎고 하다 보니 금요일 밤부터 사흘이 갔다. 중간에 요금제 한도에 걸려서 기다린 시간도 있다.
유튜브나 SNS에서 한두 시간 만에 뭔가 뚝딱 만들어 내는 걸 보면서 나도 그럴 줄 알았는데, 해보니 그게 아니었다. 새삼 다들 대단하다 싶다.
다음
이제 진짜 N5다.
일단 이 가나부터 직접 학습해보고 진행할 예정이긴 하지만 솔직히 조금 막막하다.
가나는 그래도 중학교 때 본 적이 있어서 뭘 만들어야 할지 알았는데, 문법이랑 어휘는 아는 게 없다. 무엇부터 나와야 하는지, 얼마나 나눠야 하는지도 모른다.
그래도 이번에 해보니 모르는 채로 시작해도 만들면서 알게 되는 게 있더라. 클로드한테 물어가면서, 나도 이것저것 찾아보면서 만들어볼 생각이다.
가나 하나 만드는 데도 몰랐던 게 계속 나왔으니 N5는 더 그럴 것 같은데, 그게 좀 기대되기도 한다.