행간 · 문맥 어휘 추론 훈련 / 개선 기획서

학습 순환 재설계

초기 버전은 한 세트를 풀고 점수를 보면 끝이었습니다. 다음에 할 일이 없으니 앱을 다시 열 이유도 없었습니다. 이번 개편에서는 틀린 문항이 다시 나오고, 푼 어휘가 어휘장에 남고, 며칠을 했는지가 화면에 보입니다. 디자인은 네 방향을 만들었습니다. 어느 안을 고르셔도 추가 개발 없이 그대로 출시합니다.

01진단

기존 코드를 전부 읽고 확인한 것들입니다. 만듦새 자체는 나쁘지 않았고, 문제는 대부분 ‘다음에 할 일이 없다’는 데서 나왔습니다.

01

다 풀고 나면 할 일이 사라집니다

4세트를 끝내면 앱이 비어 버립니다. 오답노트는 ‘보기’만 되고 다시 풀 수가 없어서, 틀린 문항이 그대로 방치됩니다. 학습 앱에서 가장 중요한 반복 고리가 없었습니다.

02

어휘가 흩어져 있습니다

공들여 쓴 32개의 어휘 풀이가 문항 안에만 갇혀 있었습니다. 어제 배운 낱말을 다시 찾아보려면 그 지문을 통째로 다시 풀어야 했습니다.

03

기록이 숫자 세 개뿐입니다

완료 세트·정답률·연속일이 전부라, 며칠을 꾸준히 했는지도, 어느 세트가 약한지도 알 수 없었습니다. 매일 다시 열게 만드는 건 이 부분인데, 비어 있었습니다.

04

화면이 ‘그냥 어두운 앱’입니다

검정 바탕에 흰 글씨, 강조색이 하나도 없어 정답과 오답이 같은 흰색으로 표시됐습니다. 어디를 봐야 하는지 화면이 말해 주지 않았고, 밝은 곳에서는 읽기도 어려웠습니다.

05

손댈 자리가 코드 안에 숨어 있습니다

지문 하나 추가하려면 코드를 아는 사람이 붙어야 했습니다. 폴더 이름은 dsfkjd였고, 압축을 풀며 딸려 온 맥 정크 파일 11개가 그대로 남아 있었습니다.

02개선 원칙

원칙 세 가지를 먼저 정했습니다. 나머지는 전부 여기서 갈라져 나왔습니다.

원칙 1

틀린 문항은 다시 나온다

틀린 문항은 오답 훈련으로 자동으로 넘어가고, 맞히면 그때 목록에서 빠집니다. 학습에 끝이 생깁니다.

원칙 2

배운 어휘는 남는다

문항을 풀면 그 낱말이 뜻·예문·문맥 단서와 함께 어휘장에 쌓입니다. 지문을 다시 풀지 않아도 찾아볼 수 있습니다.

원칙 3

상태는 색으로 구분한다

정답은 초록, 오답은 붉은색, 지금 볼 곳은 강조색. 숫자를 읽기 전에 색과 형태로 먼저 판단할 수 있습니다.

03무엇이 달라졌나

초기 파일과 지금을 나란히 놓은 표입니다.

항목초기 버전개편 후
학습 콘텐츠 지문 4세트 · 문항 16개 지문 8세트 · 문항 32개. 주제도 인문·과학·사회·문학에 예술을 더해 5개 영역으로
어휘 데이터 발문·선택지·해설 여기에 표제어·한자·사전 뜻풀이·별도 예문을 더해 어휘장에서 바로 읽힙니다
오답 목록으로 보기만 가능 오답 집중 훈련 — 틀린 문항만 모아 다시 풀고, 맞히면 목록에서 사라집니다
어휘장 없음 새 탭. 32개 어휘 색인 · 검색 · 별표 · 약한 어휘 필터 · 상세 시트
기록 숫자 3개 숫자 3개 + 12주 잔디 히트맵 + 세트별 최고 정답률 막대
세트 목록 전체 나열 검색(제목·어휘) + 주제·미완료 필터. 세트가 30개가 되어도 버팁니다
결과 화면 점수 텍스트 + 도장 원형 정답률 그래프 · 점수대별 다른 문구 · 다음 세트로 바로 잇는 버튼
디자인 검정 고정 1종 4개 방향. 색·글꼴·모서리에 더해 화면 배치까지 안마다 다릅니다. data-skin 한 글자로 전환
정·오답 표시 둘 다 흰색 의미색 분리 — 정답 초록 · 오답 붉은색. 강조색과도 따로 관리
접근성 고정 글자 크기 글자 크기 4단계 · 키보드 단축키 · 포커스 링 · 모션 최소화 설정 존중
설치 브라우저 페이지 PWA — 홈 화면에 설치되고 비행기 모드에서도 열립니다
데이터 보관 기기 안에만 JSON 내보내기·가져오기로 기기를 바꿔도 기록이 따라갑니다
파일 dsfkjd/ + 맥 정크 11개 haenggan/으로 정리, 정크 삭제, README에 지문 추가 절차 문서화

04새로 들어간 기능

기능마다 무엇을 넣었는지와 왜 넣었는지를 같이 적었습니다.

학습 순환

오답 집중 훈련

  • 틀린 문항만 모아 한 세션으로
  • 맞히면 오답 목록에서 자동 제거
  • 홈·기록 두 곳에서 바로 진입

왜: 다시 풀 수 없는 오답노트는 두 번 열리지 않습니다. 반복 고리가 학습 앱의 핵심입니다.

축적

어휘장

  • 32개 어휘 색인 · 뜻 · 예문 · 문맥 단서
  • 어휘·뜻 검색, 주제별 필터
  • 별표, ‘약한 어휘’ 자동 분류
  • 어휘에서 그 지문으로 바로 이동

왜: 이미 써 둔 32개의 풀이가 문항 안에만 있었습니다. 꺼내 놓기만 하면 바로 쓸 수 있습니다.

동기

기록 대시보드

  • 12주 잔디 히트맵 (하루 문항 수)
  • 세트별 최고 정답률 막대
  • 연속 훈련일 · 누적 정답률

왜: 연속 기록은 눈에 보여야 아깝습니다. 점수보다 이쪽이 다시 열게 만듭니다.

완성도

앱다운 마감

  • PWA 설치 · 오프라인 실행
  • 단축키 1–4 Enter Esc B
  • 글자 크기 4단계 · 밝기 3단계
  • 선택지 순서 섞기 · 정답 시 자동 넘김
  • 기록 JSON 내보내기·가져오기

왜: 답 위치를 외워 버리는 것, 기기를 바꾸면 기록이 날아가는 것. 둘 다 막습니다.

05정보 구조

탭 하나가 늘었습니다. ‘쌓인 것’을 보는 자리가 없었기 때문입니다.

Before

  1. 훈련
  2. 기록
  3. 설정

After

  1. — 이어서 할 것 + 복습할 어휘
  2. 훈련 — 검색·필터
  3. 어휘장 — 새로 추가
  4. 기록 — 히트맵·오답 훈련
  5. 설정 — 테마·글꼴·데이터

06디자인 시스템

색·글꼴·모서리 값을 전부 CSS 변수로 뽑아냈습니다. 컴포넌트 CSS에는 하드코딩된 색이 한 개도 없어서, 최상위 태그의 data-skin 값만 바꾸면 앱 전체가 다른 얼굴이 됩니다. 다만 토큰만 바꿔서는 네 안이 비슷해 보였습니다. 그래서 홈 화면의 정보 순서와 통계를 읽는 방식, 선택지 조판까지 안마다 따로 잡았습니다. 경계를 무엇으로 만드는지도 갈라 두었습니다 — 집중은 선을 한 줄도 쓰지 않고 면과 여백으로만 끊고, 시험지는 상자 대신 종이 결을 깔았습니다. 마크업은 한 벌 그대로입니다. 첫 버전을 옮긴 ‘기본’을 포함해 네 방향이고, 기본을 뺀 세 방향은 라이트·다크를 각각 설계했습니다.

A · 기본 — 첫 버전 그대로

순흑 배경에 흰 카드. 나눔스퀘어의 좁은 자간. 다크 전용이라 밝기 전환의 영향을 받지 않습니다.

B · 집중 — 흑백 문제집

기기 시스템 고딕. 무채색에 모서리 0px, 선은 한 줄도 없습니다. 홈을 진도표 순서로 뒤집고 통계를 표로 읽힙니다.

C · 매일 — 요즘 국내 앱

G마켓 산스 제목에 넓은 여백. 상태 요약을 맨 위에 두는 한 손 조작 배치. 모서리 14~26px.

D · 시험지 — 모의고사 문제지

UI 전부가 명조. 테두리를 쓰지 않고 종이 결 위에 그대로 인쇄합니다. 선택지는 원문자 번호.

네 안을 실제로 눌러 보시려면 디자인 4안 비교 화면으로 가시면 됩니다. 목업이 아니라 같은 앱을 네 벌 띄운 것이라, 화면을 넘기고 문항을 풀어 볼 수 있습니다. 마음에 드는 안 아래의 ‘이 테마로 보기’를 누르면 그 테마가 적용된 앱이 전체 화면으로 열립니다.

07콘텐츠 늘리는 법

지문을 추가할 때 손댈 파일은 data.js 하나뿐입니다. 앱 코드는 건드리지 않습니다. 배열 끝에 아래 모양의 덩어리를 붙이면 목록·어휘장·통계·필터에 자동으로 반영됩니다.

{
  id: "p9",                 // 한 번 정하면 바꾸지 마세요 (진도 저장 키)
  number: "09",
  title: "지문 제목",
  topic: "인문",             // 인문 | 사회 | 과학 | 예술 | 문학
  difficulty: 2,              // 1~3
  body: "…앞 문장 {{어휘::p9q1}} 뒷 문장…",
  questions: [
    {
      id: "p9q1",            // body의 마커 뒷부분과 반드시 일치
      word: "어휘", hanja: "語彙",
      prompt: "밑줄 친 '어휘'의 문맥적 의미로 가장 적절한 것은?",
      choices: ["…", "…", "…", "…"],
      answer: 2,                // 0부터 세는 정답 번호
      explanation: "문맥의 어느 단서로 풀리는지",
      meaning: "사전적 뜻풀이",     // 어휘장에 실립니다
      example: "지문 밖의 다른 예문"  // 어휘장에 실립니다
    }
  ]
}

새 주제를 만들 때만 같은 파일 맨 아래 TOPICS 배열에 한 줄 추가하면, 필터 버튼이 저절로 생깁니다. 자세한 규칙은 README.md에 적어 두었습니다. 다만 이 방식은 코드를 여는 일이라, 세트를 계속 늘리실 생각이면 지문 제작 도구를 먼저 만드는 편이 낫습니다.

08다음 단계

이번 개편에 들어간 것과, 이어서 하면 좋을 것을 나눠 적었습니다.

이번

학습 순환 완성 완료

오답 집중 훈련, 어휘장, 기록 대시보드, 디자인 4안, PWA, 지문 8세트.

다음

콘텐츠 채우기 권장

8세트는 일주일이면 끝납니다. 매주 2세트씩 쌓아 30세트를 만드는 것이 다음 우선순위입니다. 구조는 이미 준비되어 있어 글만 쓰면 됩니다.

다음

지문 제작 도구 권장

바로 위 항목을 굴러가게 만드는 것이 이쪽입니다. 지금은 지문을 하나 늘리려면 data.js를 직접 열어야 합니다. 쉼표 하나만 빠져도 앱이 아예 열리지 않고, 어휘 마커 {{어휘::p9q1}}와 문항 id가 어긋나면 밑줄이 사라집니다. 글 쓰는 사람이 코드까지 만져야 한다는 뜻이라, 30세트를 채우는 동안 매번 개발자를 거칩니다.

지문을 붙여 넣고 어휘를 드래그하면 마커가 저절로 박히고, 문항과 정답을 채우면 붙여 넣을 코드를 뱉는 화면입니다. id 중복·마커 불일치·선택지 개수·정답 범위를 저장 전에 잡아 주고 실제 앱 화면으로 미리 보여 줍니다. 빌드 도구가 없는 앱이라 이 도구도 파일 하나(editor.html)면 되고, 서버도 로그인도 필요 없습니다. 국어 선생님이나 편집자가 혼자 세트를 늘리게 되는 것이 목적입니다.

다음

망각 곡선 복습

맞힌 어휘도 1일·3일·7일 뒤에 다시 물어보는 간격 반복. 이미 어휘별 정오답 횟수를 저장하고 있어 여기에 날짜만 얹으면 됩니다.

이후

기록 동기화

지금은 기기 안에만 저장되고 JSON으로 옮깁니다. 계정을 붙이면 자동 동기화와 ‘학부모가 보는 주간 리포트’까지 열립니다.

이후

수익화 정리

현재 쿠팡 파트너스 링크는 쿠팡 메인으로 걸려 있습니다(app.jsCOUPANG_URL). 실제 파트너스 딥링크로 교체하고, 광고 없는 24시간 혜택의 노출 위치를 정해야 합니다.