내 캐릭터
수정

오늘,
말해봐

설렘복습 1개부터 말해봐요.

학습메이트

오늘도 같이 해볼까요?

오늘 공부할 내용을 보고 있어요.

지금 딱 하나

오늘 첫 번째 할 일

가장 먼저 할 일을 정리하고 있어요.

AI는 버튼을 눌렀을 때만 사용합니다.

오늘의 브리핑

🎧 계속 듣기
0문장
재생 범위
전체 학습 0 / 0
학습한 문장을 불러오고 있어요.
재생 방식
재생 속도
문장 간격
학습한 대표 문장을 끝까지 들으면 처음부터 계속 반복합니다.
내 캐릭터
수정
No 1 / 100
👋 기본 인사새 문장
🌱 긍정 답변
🌸 부정 답변
질문 0/3
긍정 0/3
부정 0/3
말하기
문장 일치도 · 참고값
--%
0 / 3이번 문장 발음
문장 일치도 55% 이상이면 말하기 1회로 인정돼요.
내 캐릭터
설정

🌏 내 언어

설명·번역·안내에 사용할 모국어입니다.

미선택
첫 실행에서 선택합니다.

🎯 학습 언어

배우고 싶은 언어를 내 언어와 별도로 선택합니다.

미선택
첫 실행에서 선택합니다.
내 언어와 학습 언어의 조합마다 진도·복습·레벨테스트 기록을 독립적으로 보관합니다.

🗣️ 회화 말투

실제로 말투 차이가 자연스러운 표현에만 적용합니다.

중립
대부분의 문장은 공통 표현을 그대로 사용하고, 실제 차이가 필요한 문장만 바뀝니다.

🎨 테마 색상

선택 즉시 앱 전체 분위기에 적용됩니다.

블루

☀️ 화면 모드

주간·야간 또는 휴대폰의 화면 설정을 따라갑니다.

시스템

⏰ 학습 알림

정한 시간에 오늘의 5문장 학습을 알려줍니다.

알림을 켜면 권한을 요청합니다. 오늘 새 문장 5개를 이미 완료했다면 알림을 보내지 않습니다.

📊 학습 통계

이 기기에서 공부한 시간과 말하기 기록을 자동으로 누적합니다.

현재 단계 설렘
습득 0 / 100
공부 0 / 100
복습 대기 0개
오늘 공부0분
오늘 발음0회
연속 학습0일
총 공부0분
누적 발음0회
3×3 완료0회
오늘 앱 사용 시간 기록 없음
최근 7일 공부시간분
요일별 누적 공부시간분
시간대별 공부0~23시
최근 12개월 공부시간월별
통계는 이 브라우저와 기기에 저장된 학습 기록을 기준으로 표시됩니다.

📅 복습 예정

날짜 아래 숫자는 그날 다시 돌아오는 문장 수입니다. 색이 진할수록 복습량이 많습니다.

현재 복습 대기0
오늘 새 문장0
총 공부 문장0
총 습득 문장0
복습 달력
선택한 날짜 오늘 복습 예정
0문장
날짜를 선택하면 복습 예정 문장이 표시됩니다.

🗣️ 말해봐 일본어 사용 순서

1복습이 있으면 먼저 복습
2새 문장 하루 5개를 기준으로 학습
3듣기 → 직접 말하기 → 내 목소리 확인
4두고보자 · OK 좋아 · 껌이지!로 기억 상태 선택

🎯 학습 목표

눈으로만 외우는 것보다 직접 말해서 기억에서 꺼내는 연습을 중심으로 합니다. 질문·긍정·부정 문장을 각각 3번씩 말하며 실제 대화 흐름을 반복합니다.

🌸 말하기 진행

질문 3회 → 긍정 3회 → 부정 3회 순서로 진행합니다. 각 단계가 완료되면 진행 표시가 채워지고, 세 문장을 모두 완료한 뒤 기억 상태를 선택합니다.

🧠 기억 상태 버튼

  • 두고보자: 현재 복습 간격의 1.2배 뒤에 다시 확인합니다. 같은 날 같은 문장을 반복하지 않습니다.
  • OK 좋아: 직전 정규 복습 간격의 2배 뒤에 다시 확인합니다.
  • 껌이지!: 현재 복습 간격의 3배 뒤에 다시 확인합니다. 문장은 졸업시키지 않고 기억이 강할수록 다음 복습을 계속 뒤로 보냅니다.

🎙️ 말하기 · 문장일치 · 내 목소리

말하기 버튼을 누르면 녹음이 시작되고, 문장 길이와 말이 끝난 뒤의 침묵을 기준으로 자동 종료됩니다. 필요하면 말하기 버튼을 다시 눌러 직접 종료할 수도 있습니다.

녹음이 끝나면 문장일치도를 확인하며 55% 이상이면 말하기 1회로 인정됩니다. 내목소리 버튼으로 방금 말한 발음도 바로 다시 들을 수 있습니다.

🔊 듣기 · 내 목소리

듣기로 원음을 확인하고, 말하기로 내 발음을 녹음한 뒤 내목소리 버튼으로 바로 비교해서 들을 수 있습니다.

📚 단계 진행

초급 1~3, 중급 1~3, 고급 1~3의 총 9단계 · 900문장으로 구성되어 있습니다. 다음 단계는 직전 단계에서 습득 90/100을 달성하면 열립니다.

레벨테스트 결과 표기: 초급(설렘) · 중급(익숙함) · 고급(자유로움)

🔁 새 문장 · 복습 · 복귀 모드

새 문장은 질문·긍정·부정을 각각 3번 말해 익히고, 이미 공부한 복습 문장은 대표 문장을 1번 확인하면 기억 상태를 선택할 수 있습니다.

7일 이상 쉬었다가 돌아오면 복귀 모드가 켜져 가장 오래 밀린 문장부터 확인합니다. 기본 복습량은 밀린 복습 최대 5문장 + 오늘 예정 복습 최대 5문장이며, 남은 복습은 이후 날짜에 이어서 처리합니다.

기본 복습을 끝낸 뒤 원하면 남은 밀린 복습을 더 할 수 있습니다. 이미 완료한 문장을 기억해줘!에서 자율복습할 때는 기존 복습 날짜를 변경하지 않습니다.

🌐 공통 학습 엔진

현재는 한국어→일본어 과정을 사용합니다. 앞으로 일본어→한국어와 다른 언어 과정이 추가될 수 있도록 과정별 진도·복습·레벨테스트·통계를 분리해 저장하는 구조로 구성했습니다.

💾 학습 기록

게스트 상태에서는 학습한 문장과 복습 일정이 이 기기에 안전하게 보관됩니다. 로그인하면 문장 진행도·복습 일정·오늘 학습 기록·현재 단계와 주요 설정을 계정에도 자동 동기화해 다른 기기에서 이어갈 수 있습니다.

🔄 학습 전체 초기화

학습을 처음부터 다시 시작합니다. 개인 꾸미기와 앱 설정은 그대로 유지됩니다.

초기화되는 항목

  • 레벨테스트 결과와 완료 상태
  • 현재 단계와 단계 해제 상태
  • 모든 문장의 공부·습득·복습 기록
  • 복습 큐와 장기 미접속 복귀 큐
  • 오늘의 학습 기록과 학습 통계
  • 계급 진행도 → 계급 1
  • 현재 열린 문장·임시 세션·발음 학습 기록

유지되는 항목

  • 닉네임과 캐릭터
  • 획득한 프레임·장식
  • 테마 색상과 화면 모드
  • 알림 및 기타 앱 설정
초기화 후초급 1 · 설렘 / 계급 1
초기화된 학습기록은 되돌릴 수 없습니다. 초기화가 끝나면 레벨테스트를 다시 하거나 테스트 없이 기초부터 시작할 수 있습니다.

개인정보 처리방침

시행일: 2026-10-10 · 초안

말해봐는 회화 학습 서비스 제공과 계정·학습기록 동기화를 위해 필요한 범위의 정보를 처리합니다.

수집·처리하는 정보

  • 계정 정보: 이메일, 로그인 제공자, 앱 닉네임
  • 학습 정보: 단계, 문장 진행도, 복습 일정, 학습 통계
  • 프로필 정보: 선택한 캐릭터·프레임
  • 서비스 운영 정보: 로그인 세션, 최근 접속 시각, 관리자 감사기록
  • 서비스 이용 통계: 임의 앱 설치 식별자, 앱 실행, 주요 화면·학습·복습·미션 완료 여부, 오류 유형. 자체 통계 DB에는 IP 주소와 전체 브라우저 식별 문자열을 저장하지 않습니다.

이용 목적

  • 로그인·계정 연결과 기기 간 학습기록 동기화
  • 복습 일정·학습 진행도 제공
  • 서비스 보안·오류 확인·운영 관리
  • 재방문율·학습 이용률 등 가명 통계를 통한 제품 개선

외부 서비스

서비스 운영에는 Cloudflare, Google 로그인, 이메일 발송을 위한 Resend 등 외부 서비스가 사용될 수 있습니다. 각 서비스는 해당 기능 제공에 필요한 범위에서 정보를 처리할 수 있습니다.

보관·삭제

회원 탈퇴 시 이메일·닉네임·로그인 정보와 학습기록 등 계정 데이터를 삭제하거나 익명화합니다. 법적·보안상 보존이 필요한 관리자 감사기록 등은 별도로 보관될 수 있습니다.

이용자 권리

사용자는 계정 화면에서 회원 탈퇴를 요청할 수 있으며, 앱이 제공하는 범위에서 자신의 계정·프로필·학습기록을 확인하고 수정할 수 있습니다.

이 문서는 현재 개발·출시 준비용 초안입니다. 실제 스토어 출시 전 사업자 정보, 문의처, 국가별 법적 요구사항과 최종 보관기간을 확정해야 합니다.

이용약관

시행일: 2026-10-10 · 초안

서비스 목적

말해봐는 듣기·말하기·반복 복습을 중심으로 외국어 회화를 연습할 수 있도록 돕는 학습 서비스입니다.

계정과 이용

  • 일부 기능은 로그인 없이 사용할 수 있으며, 로그인하면 학습기록을 계정에 연결할 수 있습니다.
  • 계정 정보와 비밀번호는 이용자가 안전하게 관리해야 합니다.
  • 타인의 계정을 무단으로 사용하거나 서비스 운영을 방해하는 행위는 제한될 수 있습니다.

학습 콘텐츠

앱의 문장·음성·설명·디자인 등 콘텐츠는 서비스 제공을 위해 사용되며, 무단 복제·배포·재판매를 제한할 수 있습니다.

서비스 변경

학습 방식, 콘텐츠, 기능, 지원 환경은 품질 개선과 운영상 필요에 따라 변경될 수 있습니다. 중요한 변경은 앱 내 안내를 통해 알릴 수 있습니다.

학습 결과

앱은 학습을 지원하는 도구이며 특정 수준의 언어 능력 향상이나 시험·취업·업무 성과를 보장하지 않습니다.

계정 정지·탈퇴

서비스 악용이나 보안상 문제가 확인된 계정은 운영 정책에 따라 제한될 수 있습니다. 사용자는 계정 화면에서 회원 탈퇴를 요청할 수 있습니다.

이 문서는 현재 개발·출시 준비용 초안입니다. 실제 출시 전 사업자 정보, 관할법, 환불·결제 정책, 미성년자 이용 조건 등 필요한 조항을 최종 검토해야 합니다.

일본어 문장을 직접 듣고 말하면서 반복 학습하는 회화 연습 앱

Version0.1.0 alpha
Buildv9.12.45
DeveloperDS Solutions
학습 과정9단계 · 900문장
단계 구성초급 1~3 · 중급 1~3 · 고급 1~3
학습 방식듣기 · 말하기 · 반복 복습
학습 엔진공통 엔진 v2 · 과정별 기록 분리
학습 기록로그인 시 계정에 자동 동기화
말하기 녹음 후 문장일치도를 확인하며, 55% 이상이면 학습 횟수로 인정합니다. 내목소리 버튼으로 최근 녹음을 바로 다시 들을 수 있습니다.
함께 말하면 더 오래 갑니다

커뮤니티

학습 인증과 주간 랭킹으로 서로의 꾸준함을 응원해요.

DEMO
로그인하면 실제 커뮤니티 정보를 불러옵니다.
커뮤니티 프로필 공개 기본값은 비공개입니다.
내 캐릭터
수정1
닉네임수정

초급 · 설렘

0이번 주
0누적 습득
0일연속 학습
🏆이번 주 말하기 랭킹
🌱학습 인증
자동 인증
🏆
주간 랭킹

이번 주 학습한 문장 수 기준

월 ~ 일 · 매주 초기화
누적 학습량이 아닌 이번 주 학습량으로 순위를 계산합니다. 같은 문장 수는 같은 순위로 표시합니다.

회원 현황

실시간 서버 기준
회원 현황을 불러오는 중…

브랜드·제품 기준

1차 주력
브랜드말해봐 한국어
학습 언어한국어 중심
현지화 축사용자 모국어
현재 기준판말해봐 일본어 · KR→JA 검증용

운영 상태

v9.12.45
계정 인증관리자 권한 확인 적용
학습 동기화서버 배포 후 실기기 검증 예정
국가 확장권한 범위 구조 준비
감사 기록서버 연결 후 표시

접속·이용 통계

서버 연결 후 표시
접속통계를 불러오는 중…

운영 분석 로봇

숫자 → 판단 → 다음 작업
통계 데이터를 읽고 분석합니다.

AI 운영 분석가

필요할 때만 생성
현재 선택한 7일·30일·90일 집계만 분석합니다.
버튼을 누르면 이번 기간의 운영 보고서를 만듭니다.

재방문·전환

D1 · D7 · D30

일별 흐름

활성·학습·복습·미션
날짜활성실행학습복습미션
데이터 준비 중

사용자 퍼널

첫 실행 → 학습 → 미션 → D1 → 복습 → D7
퍼널 데이터를 준비합니다.

이전 기간 비교

같은 길이의 직전 기간과 비교

언어팩별 이용

개발판 전체 언어팩 분리 집계

회원 관리

가입 계정 · 전체
사용자를 누르면 계정·접속 현황을 자세히 볼 수 있습니다.
관리자 권한 확인 후 표시됩니다.

커뮤니티 신고 관리

사용자가 접수한 신고를 확인하고 처리합니다.

0미처리
0처리 완료
0기각
신고 내역을 불러오는 중…

관리자 관리

추가·권한 설계
관리자 계정은 먼저 일반 회원으로 가입한 뒤 권한을 부여합니다. 현재 화면은 운영 UI 준비 단계이며 실제 저장은 서버 API 연결 후 활성화됩니다.
직급
관리 범위
시장 코드를 지정합니다. 예: JP · TW · CN · KR
세부 권한

저장 전 검토

미리보기
계정
이메일 입력 전
직급
일반 관리자
범위
시장 · JP
권한
회원 조회 외 3개
탑 관리자만 실제 관리자 계정을 추가·변경할 수 있으며, 변경 내용은 감사로그에 기록됩니다.

시장·언어팩

서버 실데이터

시장과 학습 언어팩을 분리해 관리합니다. 현재 등록된 상태·문장 수·배포 상태를 서버 기준으로 표시합니다.

시장 요약을 불러오는 중…

시장

국가·서비스 운영 단위
시장 정보를 불러오는 중…

언어팩

모국어 → 학습언어
언어팩 정보를 불러오는 중…

콘텐츠 검수 현황

중복 일본어 0그룹
검수 현황을 불러오는 중…

확인 필요한 문장

최대 30개

문장 콘텐츠 관리

900문장

서버에 등록된 ko-ja 문장을 검색·검수하고 수정합니다.

0개 선택
문장 목록을 불러오는 중…
1페이지

감사 로그

서버 실데이터 · 삭제 기능 없음

관리자 권한 추가·변경 등 중요 작업을 시간순으로 확인합니다.

조회 결과0현재 조건
중요 작업0권한·보안 포함
보안 이벤트0제재·삭제 등
시간관리자작업대상위험도
감사 로그를 불러오는 중…

기록 상세보기

선택 기록
관리자
기록 선택 후 표시
작업
기록 선택 후 표시
대상
기록 선택 후 표시
사유
기록 선택 후 표시
변경 전
기록 선택 후 표시
변경 후
기록 선택 후 표시

개발 메모

0건

직접 학습하면서 발견한 버그·UI·문장·번역·음성·복습 아이디어를 기기에서 기록합니다. 서버 동기화는 추후 연결합니다.

아직 기록된 개발 메모가 없습니다.
관리자 이동은 테스트 목적의 실제 단계 변경입니다. 선택한 등급까지 잠금이 해제되고 현재 활성 단계가 변경됩니다.

점검 모드

정상 운영
전체 점검은 일반 사용자의 앱 이용을 차단합니다. 관리자 계정은 점검 해제를 위해 관리자 센터에 계속 접근할 수 있습니다. 부분 점검은 선택한 서버 기능만 차단합니다.

앱 업데이트 정책

서버 정책
최소 허용 버전보다 낮은 앱은 최신 파일을 다시 불러오기 전까지 학습 화면 진입을 차단합니다.

공지사항

앱 전체
공지 목록을 불러오는 중…

출시 버전

스토어·알파·베타 배포에 표시할 제품 버전입니다. 내부 Build v9.11.42과는 별도로 관리합니다.

현재 표시: 0.1.0 alpha

첫 설치 인트로

앱을 처음 설치했을 때 표시되는 4컷 인트로를 다시 확인합니다.

레벨테스트 확인

현재 학습 기록을 지우지 않고 레벨테스트 화면과 동작을 관리자 확인용으로 엽니다.

PWA 캐시 관리

앱 화면이 이전 CSS·JavaScript를 계속 보여줄 때 사용합니다. 학습 기록·닉네임·설정·출시 버전은 삭제하지 않습니다.

완전 새로고침은 Cache Storage 삭제 후 Service Worker 등록을 해제하고 최신 파일을 다시 불러옵니다.

연습창 긴 문장 테스트

초급·중급·고급의 실제 최장 문장을 연습창에서 바로 확인합니다. 레이아웃 확인 전용이며 학습 기록에는 반영하지 않습니다.

테스트 화면에서는 말하기·평가 버튼이 동작하지 않습니다. 뒤로가기를 누르면 관리자 페이지로 돌아옵니다.

말해봐 일본어 · 버전 히스토리

출시 버전과 내부 Build는 별도로 관리합니다. 현재 안정 개발기준본은 Build v9.11.42입니다.

v1.0.0최초 제품 형태

Galaxy S25 Ultra 세로 화면을 기준으로 홈·연습·음성·진도·PWA 등 앱의 기본 골격을 만든 시기.

v2.x ~ v3.x기능 확장과 UI 탐색

듣기·말하기·문장 숨김·음성인식·점수·기록과 모바일 레이아웃을 다듬은 시기.

v8.5 전후학습 철학 확정

새 문장 반복과 복습 방식, 오늘 할 일을 보여주는 브리핑 중심 홈 구조가 자리잡은 시기.

v9.4.x학습엔진 재구축

과정별 기록, 복습, 장기 미접속 복귀, 레벨테스트, PWA 캐시를 공통 학습엔진으로 정리한 시기.

v9.8.9 ~ v9.9.x음성 안정화

복잡해진 문장일치도를 격리하고 내목소리 녹음과 계속듣기의 안정성을 다시 확보한 시기.

v9.10.4 ~ v9.10.8계속듣기 실기기 성공

MP3 → audio.play() 최소 구조로 Galaxy S25 Ultra에서 실제 재생을 안정화하고 속도 조절을 추가한 시기.

v9.10.18 ~ v9.10.21서버형 문장일치도 전환

MediaRecorder 녹음 → 서버 AI 인식 → 문자열 비교 → 점수 표시가 실제 기기에서 성공한 전환점.

v9.10.23 ~ v9.10.91제품 UX 완성

야간모드, 6단계 테마, 반응형 구조, 연습카드, 튜토리얼, 인트로, 복습·팝업 흐름을 정교하게 다듬은 시기.

v9.10.92 ~ v9.10.97대청소·리팩터링

죽은 CSS 제거, selector 단일화, media query 통합, UI 소유권과 JS 로직을 정리한 시기.

v9.10.98 ~ v9.11.12모듈화 완성

계속듣기, 계정, 캐릭터, 팝업, 설정, 홈, 문장일치도, 녹음, 연습, 축하, Tour, 인트로를 독립 모듈로 분리. 종합검증 PASS 42 / FAIL 0.

v9.11.13기억 간격 시스템 개편

같은 날 동일 문장 반복을 없애고, 두고보자 ×1.2 · OK 좋아 ×2 · 껌이지 ×3으로 다음 복습 간격을 늘린다. 완전 졸업 없이 장기적으로 반복 확인한다.

v9.12.45반응형 안정화

360px급 소형폰·낮은 화면·휴대폰 가로모드에서 홈과 연습 내용을 스크롤로 끝까지 접근할 수 있게 하고, 긴 문구 줄바꿈·작은 학습 라벨·커뮤니티/설정 폭 대응을 보강했다. Galaxy S25 Ultra 세로 화면의 기존 배치는 유지한다.

v9.11.64관리자 센터 상단 완전 숨김

관리자 센터 진입 시 설정 공용 상단 헤더 자체를 JavaScript에서 직접 숨기도록 변경해 홈버튼·캐릭터·타이틀 이미지가 남는 문제를 수정했다. 다른 설정 화면으로 돌아가면 헤더는 다시 표시된다.

v9.11.63관리자 센터 전용 화면 정리

관리자 센터에서는 공용 상단의 홈버튼·캐릭터·앱 타이틀·설정 제목을 숨기고, 관리자 센터 소개 세션과 관리자 계정 상태 세션을 삭제했다. 진입 즉시 실제 관리 메뉴가 보이도록 정리했다.

v9.11.62관리자 센터 진입 수정

관리자 센터 버튼을 누르면 권한 확인 결과와 관계없이 먼저 관리자 화면이 열리도록 수정했다. 로그인 필요·권한 없음·서버 확인 실패 상태도 화면 안에서 직접 표시한다.

v9.11.61공부 문장 목록 간소화

공부 문장 팝업의 목록은 일본어 문장만 표시하고, 목록 시작 위치를 조금 내려 상단 카테고리 버튼이 가려지지 않도록 조정했다.

v9.11.60단계 안내 캐릭터 크기 축소

현재 단계 창의 캐릭터가 너무 크게 보이던 문제를 조정했다. 중앙 현재 단계 캐릭터와 양옆 단계 캐릭터를 모두 줄이고 간격도 함께 압축했다.

v9.11.59단계 안내 2번 디자인

선택한 2번 시안처럼 현재 단계 캐릭터를 중앙에 크게 두고, 이전·다음 성장 단계를 양옆에 작게 배치했다. 실제 앱의 90/100 개방 규칙은 유지한다.

v9.11.58단계 캐릭터 투명 자산 적용

설렘·익숙함·자유로움 캐릭터를 사용자 제공 이미지에서 각각 분리해 투명 PNG로 적용하고, 단계 안내 팝업에 성장 순서로 배치했다. 현재 단계 캐릭터는 강조 표시한다.

v9.11.57손님모드 학습 카운터 열기

손님모드에서도 홈의 습득·공부 카운터를 누르면 이 기기에 저장된 학습 문장 목록을 바로 볼 수 있도록 변경했다. 로그인 요구와 계정 연결 팝업은 표시하지 않는다.

v9.11.56홈 상태 안내·손님 캐릭터·단계 설명

홈 메인 문구를 오늘 복습→밀린 복습→새 문장→미션 성공 순으로 자동 전환하고, 손님모드 캐릭터 클릭을 막았다. 설렘 글자와 씨앗 아이콘을 누르면 현재 단계 의미·진행도·다음 단계를 안내한다.

v9.11.55오늘 복습창 위치 상향

홈에서 ‘오늘 되살릴 문장’을 눌렀을 때 열리는 오늘 복습창을 화면 아래가 아니라 상단에서 약 150px 내려온 위치에 표시하도록 조정했다.

v9.11.54메인 기억 문구 통일

홈 메인창의 ‘오늘 기억 N개부터’ 표현을 ‘오늘 되살릴 문장 N개’로 바꾸고, 기존 문구와 같은 글자 크기·색상으로 표시한다. 0개일 때도 ‘오늘 되살릴 문장 0개’로 표시하며, 1개 이상이면 문구 자체를 눌러 복습으로 들어갈 수 있다.

v9.11.53로그아웃 손님모드 복귀

로그아웃 즉시 홈·연습 닉네임을 ‘손님모드’로 바꾸고, 닉네임 뒤의 작은 게스트/로그인 상태 표시는 제거했다. 손님모드에서는 닉네임 수정창을 열 수 없다.

v9.11.52되살릴 문장 메인창 통합

홈의 별도 ‘오늘 되살릴 문장’ 박스를 제거하고, 메인창의 ‘오늘 기억 N개’ 줄 안에 ‘되살릴 문장 N개’ 버튼을 배치했다. 버튼을 누르면 밀린 복습을 우선으로 오늘 복습 목록을 연다.

v9.11.51장기 미접속 복귀 흐름 보강

7일 이상 쉬었다 돌아오면 첫 학습 진입은 최근 학습 위치를 한 번 먼저 복원하고, 이후에는 가장 오래 밀린 복습을 하루 5개씩 이어서 처리한다.

v9.11.50복습 몰림 자동 분산

하루 예정 복습이 5개를 넘으면 초과분을 5개 단위로 다음 날부터 자동 분산한다. 원래 기억 예정일은 별도 값으로 보존해 실제 미복습과 시스템 분산을 구분한다.

v9.11.49학습 전체 초기화 보강

학습 초기화 시 레벨·단계·문장 기록·복습/복귀 큐·오늘 통계·계급·열린 세션을 모두 초기화하고, 말투 선택 등 앱 설정은 유지한다. 로그인 상태에서는 초기화 결과를 서버에도 즉시 동기화한다.

v9.11.48팝업 뒤로가기 공통화

현재 팝업뿐 아니라 앞으로 추가되는 modal/dialog/overlay/sheet/popup 계열도 공통 팝업 관리자에 자동 등록되도록 보강했다. 안드로이드 뒤로가기는 열린 팝업부터 닫는다.

v9.11.47미리 복습 일정 보호

복습 예정 팝업의 문장을 눌러 바로 미리 복습할 수 있다. 미리 복습에서 OK/껌이지는 다음 복습일을 뒤로 조정하고, 두고보자는 원래 예정일을 유지한다.

v9.11.46비밀번호 재설정 안내 줄바꿈

비밀번호 재설정 안내 문구를 두 줄로 분리해 읽기 쉽게 정리했다. ‘가입한 이메일로 인증번호를 받아’ 다음 줄에 ‘새 비밀번호를 설정합니다.’가 표시된다.

v9.11.45비밀번호 재설정 저장 반응 수정

모바일 브라우저의 기본 폼 검증이 새 비밀번호 저장 submit 이벤트를 가로막아 아무 반응이 없던 경우를 방지했다. 폼 기본 검증을 끄고 앱 자체 검증과 오류 문구가 항상 실행되도록 수정했다.

v9.11.44비밀번호 눈 아이콘

비밀번호 입력칸의 보기/숨기기 글자 버튼을 제거하고 오른쪽 눈 아이콘으로 교체했다. 눈 감김은 비밀번호 숨김, 눈 뜸은 비밀번호 표시 상태로 통일했다.

v9.11.43비밀번호 보기·숨기기

로그인·회원가입·비밀번호 재설정의 비밀번호 입력칸에 보기/숨기기 버튼을 추가했다. 입력 중 현재 비밀번호를 확인할 수 있으며 다시 누르면 즉시 마스킹된다.

v9.11.42비밀번호 재설정 입력 안정화

인증번호 발송 후 새 비밀번호 입력칸이 일부 모바일 브라우저에서 터치·입력을 받지 못하는 문제를 막기 위해 reset-confirm 상태에서 입력 요소를 강제로 활성화하고 포커스 처리를 보강했다. 새 비밀번호 라벨도 분리했다.

v9.11.40비밀번호 재설정 UI·API 연결

이메일 로그인 화면에 비밀번호 찾기를 추가하고, 가입 이메일 인증번호 요청 → 6자리 인증번호 확인 → 새 비밀번호 저장 흐름을 연결했다. 실제 메일 발송과 비밀번호 변경은 Worker의 재설정 API 배포 후 동작한다.

v9.11.39학습 동기화 프로필 연결 수정

Learning Sync가 한국어→일본어 프로필에 고정되어 있던 문제를 제거하고 현재 학습 프로필을 서버 동기화 대상으로 사용하도록 수정했다. 일본어→한국어 과정의 학습 기록도 해당 프로필로 분리 저장·복원된다.

v9.11.38한국어 학습화면 1차 최적화

일본어 모국어 사용자가 한국어를 학습하는 2문장 연습 화면을 우선 다듬었다. 한국어 문장 크기와 긴 문장 줄바꿈, 일본어 뜻 길이 대응, 자연스러운 응답 라벨, 음성 준비 중 버튼 비활성화를 적용했다. 기존 한국어→일본어 과정은 그대로 유지한다.

v9.11.37첫 화면 타이틀 로고 축소

첫 언어 선택 화면의 ‘말해봐 한국어’ 타이틀 이미지를 상단 브랜드 로고 역할에 맞게 크게 축소했다. Galaxy S25 Ultra 기준 최대 폭 185px·화면 폭 42vw, 최대 높이 62px로 제한해 언어 선택 영역을 가리지 않도록 조정했다.

v9.11.36첫 화면 말해봐 한국어 타이틀 이미지 적용

첫 언어 선택 화면 최상단의 텍스트 ‘말해봐’를 임시 브랜드 이미지 ‘말해봐 한국어’로 교체했다. Galaxy S25 Ultra 기준으로 가로 한 줄에 맞추며, 향후 최종 타이틀 디자인 확정 시 이미지 파일만 교체할 수 있도록 분리했다.

v9.11.35첫 언어 선택 화면 간소화

첫 화면의 ‘내 언어 · あなたの言語 · 我的語言’ 제목을 Galaxy S25 Ultra 기준 한 줄로 보이도록 축소하고, 중복 안내였던 ‘표시 언어 · 表示言語 · 顯示語言 · 显示语言’ 문구를 삭제했다.

v9.11.34日本語 → 한국어 900문장 실제 연결

일본인용 ko_for_ja 900문장 현지화팩을 공통 학습 엔진에 연결했다. 기존 한국어→일본어 900문장은 그대로 유지하며, 한국어 과정은 원문+자연스러운 응답의 2문장 학습 모드로 분리해 억지 부정답변을 만들지 않는다. 한국어 MP3가 아직 없어 듣기·계속듣기는 준비 중으로 잠근다.

v9.11.33공통 콘텐츠팩 엔진 기반

기존 한국어→일본어 900문장을 그대로 유지하면서 새 한국어 마스터 900문장을 별도 콘텐츠팩으로 등록했다. 언어쌍과 학습 데이터를 분리하는 레지스트리를 추가했으며 한국어 학습 과정은 원문 연결만 완료하고 현지어 설명·음성 준비 전까지 시작을 잠근다.

v9.11.32Super Admin 개발 메모

직접 일본어를 학습하면서 발견한 버그·UI·문장·번역·음성·복습·아이디어를 현재 문장과 함께 기록하고 관리자 센터에서 모아볼 수 있는 개발자 전용 메모를 추가했다. 메모는 우선 기기 로컬에 저장하며 JSON으로 내보낼 수 있다.

v9.11.31보조 화면 UI 언어팩 마무리

학습 통계·복습 달력·사용 안내·홈/연습 투어·학습 초기화·계정 상태·앱 정보와 공통 보조 버튼까지 내 언어에 따라 한국어·일본어·번체중문·간체중문으로 전환되도록 언어팩 적용 범위를 확장했다. 실제 학습 콘텐츠는 기존 연결 상태를 유지한다.

v9.11.30인트로·레벨테스트 UI 언어팩 확대

첫 실행 4컷 인트로, 말투 선택, 레벨테스트 안내·진행·결과와 학습 완료 축하 문구를 내 언어에 맞춰 표시하는 언어팩을 추가했다. 레벨테스트 순백색 고정 테마와 기존 학습 판정 로직은 그대로 유지한다.

v9.11.29연습·문장 상세 UI 언어팩 확대

내 언어 선택값에 따라 연습 화면의 듣기·말하기·내 목소리·정답 보기·기억평가·문장일치도와 로그인 문장 보관함·문장 자세히 보기의 공통 UI가 한국어·일본어·번체중문·간체중문으로 전환되도록 언어팩 적용 범위를 확대했다. 실제 학습 콘텐츠는 기존 연결 상태를 유지한다.

v9.11.28홈·복습 UI 언어팩 확대

내 언어 선택값에 따라 홈 브리핑, 오늘 되살릴 문장, 밀린/오늘 예정 복습, 복습 시작·새 문장 시작·추가 학습 버튼과 복습 목록 안내가 한국어·일본어·번체중문·간체중문으로 전환되도록 언어팩 적용 범위를 확대했다. 실제 학습 콘텐츠는 기존 연결 상태를 유지한다.

v9.11.27공통 UI 언어팩 1차

내 언어 선택값에 따라 설정·계정 로그인·15일 로그인 안내·언어 선택 흐름의 공통 문구를 한국어·일본어·번체중문·간체중문으로 전환하는 UI 언어팩 기반을 추가했다. 실제 학습 콘텐츠는 기존 연결 상태를 유지한다.

v9.11.26내 언어 · 학습 언어 2단계 선택

첫 실행에서 내 언어와 배우고 싶은 언어를 각각 선택하고, 두 언어의 조합으로 학습 프로필과 콘텐츠팩을 결정한다. 현재 실제 콘텐츠가 연결된 한국어→일본어는 즉시 시작할 수 있고 준비 중 과정은 오연결을 막기 위해 비활성화한다.

v9.11.25첫 실행 모국어 선택 기반

말해봐 한국어 글로벌 구조의 첫 진입 단계로 사용자의 모국어를 선택하고 시장·콘텐츠팩 키를 저장하는 기반을 추가했다. v9.11.26에서 내 언어와 학습 언어를 독립 선택하도록 확장했다.

v9.11.24말해봐 한국어 글로벌 제품 구조

1차 주력 브랜드를 ‘말해봐 한국어’로 명확히 하고, 국가·앱 중심 운영 개념을 시장·모국어·한국어 콘텐츠팩 구조로 재정의한다. JP를 1차 주력시장, TW·CN을 확장시장, KR→JA 현재 빌드를 공통 엔진 검증 기준판으로 구분한다.

v9.11.23감사로그 운영 UI

관리자 작업을 기간·관리자·국가/앱·작업유형·위험도로 필터링하고, 선택 기록의 사유와 변경 전·후를 비교할 수 있는 감사로그 운영 화면을 준비한다. 실제 로그는 서버 API 연결 후 표시한다.

v9.11.22국가·앱 운영 UI

국가와 앱을 분리해 KR·JP·TW·CN 운영 범위와 말해봐 일본어·말해봐 한국어 앱 상태를 한눈에 확인하는 관리 화면을 준비한다. 서버 통계가 없는 값은 임의 수치 없이 연결 대기로 표시한다.

v9.11.21관리자 추가·권한 설정 UI

관리자 계정 이메일, 4단계 직급, global·region·country·app 관리 범위, 세부 권한을 선택하고 저장 전에 검토할 수 있는 운영 UI를 준비한다. 실제 저장은 서버 관리자 API 연결 후 활성화한다.

v9.11.20회원 상세보기 UI

관리자 회원 목록의 각 회원을 눌러 계정 정보·가입일·최초 사용일·최근 접속·로그인 방식을 확인하고, 학습 현황과 병합·동기화 상태를 담을 상세 패널을 준비한다. 서버에서 아직 제공하지 않는 값은 임의 데이터 없이 연결 대기로 표시한다.

v9.11.19관리자 센터 운영 UI 개편

관리자 센터를 대시보드·회원관리·관리자·국가·앱·감사로그·운영도구로 분리하고, 서버 연결 전 기능은 가짜 데이터 없이 준비 상태로 표시한다.

v9.11.18로그인 학습기록 자동 동기화 1차

로그인 계정의 문장 진행도·복습 일정·오늘 학습 기록·현재 단계·개인 설정을 서버에 자동 저장하고, 다른 기기나 재설치 후 로그인 시 서버 기록과 안전하게 합쳐 복원한다.

v9.11.17관리자 권한 기반 · 관리자 센터 1차

서버 관리자 계정·4단계 역할·관리 범위·세부 권한·감사로그 구조를 추가하고, 앱의 관리자 센터는 로그인 계정의 서버 권한 확인을 통과해야 열리도록 전환한다. 회원 현황과 최근 가입자 조회를 관리자 센터에서 확인한다.

v9.11.16복습 우선 홈 · 오늘 되살릴 문장

홈 브리핑에 오늘 복습의 출처와 진행률을 표시하고, 메인 버튼은 밀린 복습 → 오늘 복습 → 새 문장 → 추가 학습 순서로 자동 전환한다. 복습이 남아 있으면 새 문장 진입보다 복습을 우선하며 밀린/오늘 예정 숫자에서 각 문장 목록을 바로 확인할 수 있다.

v9.11.15로그인 선물 · 내 문장 보관함

홈의 습득·공부 카운터를 로그인 사용자 전용 문장 보관함으로 연결했다. 공부 목록은 학습 카테고리별 필터와 전체 보기를 지원하고, 문장을 누르면 일본어·후리가나·뜻·긍정/부정 답변·발음 듣기·이전/다음 이동을 제공하는 별도 자세히 보기 화면이 열린다.

말해봐 일본어 개발일지

작은 수정부터 실패와 복구까지, 앱이 성장한 과정을 날짜별로 기록합니다. 최신 기록이 위에 표시됩니다.

레벨테스트 · 기록 시스템
v9.10.21 · Clean Base소스 구조 정리

v9.10.20의 실제 동작을 유지하면서 index.html의 inline CSS와 JavaScript를 외부 파일로 분리했습니다. 호출되지 않는 개발용 복사본·미리보기·레거시 함수와 CSS 선택자를 제거하고, Service Worker 캐시 버전을 새 구조에 맞게 갱신했습니다. Samsung Music 기능은 회귀검증 뒤 별도 단계에서 추가합니다.

v9.10.20 · Sentence Match Trace문장일치도 오류 추적·인증 재시도

Galaxy S25 Ultra에서 마이크 충돌을 없애기 위해 Web Speech SpeechRecognition 실행 코드를 완전히 제거했습니다. 가운데 말하기 버튼은 MediaRecorder 하나만 사용하며, 녹음 종료 후 같은 녹음 파일을 malhaebwa-api의 /v1/sentence-match로 전송해 Workers AI가 일본어를 인식합니다. 서버 인식 결과를 현재 학습문장과 비교해 문장일치도와 단어 피드백을 표시하며, 서버 오류가 나도 내목소리와 학습 횟수는 정상 진행됩니다.

v9.10.6 · Background Continuity백그라운드 자동 일시정지 제거

v9.10.5의 첫 클릭 직접 MP3 재생과 6단계 속도 구조는 그대로 유지하고, 앱이 숨겨질 때 계속듣기를 강제로 일시정지하던 visibilitychange 로직과 과거 TTS용 복귀 재시작 로직을 제거했습니다. HTMLAudioElement가 홈 이동·화면 꺼짐 상태에서도 재생을 계속하도록 OS 오디오 세션에 맡깁니다.

v9.10.5 · Playback Speed계속듣기 6단계 재생속도

v9.10.4의 첫 클릭 직접 MP3 재생 구조는 그대로 유지하고, 0.8×·1.0×·1.2×·1.4×·1.6×·1.8× 속도 버튼을 한 줄로 추가했습니다. 속도 변경은 재생을 재시작하지 않고 현재 HTMLAudioElement의 playbackRate만 즉시 변경하며 선택값을 저장합니다.

v9.10.4 · Minimal MP3 Player계속듣기 첫 클릭 최소 재생 구조

계속듣기 재생 경로에서 TTS 폴백, Media Session, 외부 플레이어, 자동 재시도, 화면 진단을 제거하고 하나의 HTMLAudioElement가 현재 문장 MP3를 직접 play()하도록 단순화했습니다. 이전/다음과 문장 종료 후 다음 재생도 같은 오디오 객체만 사용합니다.

v9.10.3 · External Player Playlist계속듣기 MP3 직접 재생 경로 단순화

계속듣기 오디오를 배포 루트 /audio/문장ID.mp3에 직접 연결하고, 숨김 audio를 1px 오프스크린 미디어 요소로 변경했습니다. 첫 재생은 현재 문장을 직접 play()하고 readyState·networkState·Promise 결과·MediaError·실제 URL을 화면 진단에 표시합니다.

v9.9.7 · Background Listen Controls계속듣기 백그라운드 제어 1차

계속듣기에 Media Session을 연결해 Android/PWA의 잠금화면·알림 영역·이어폰 미디어 버튼에서 재생/일시정지/이전/다음/정지를 제어할 수 있도록 추가했습니다. 백그라운드에서 OS가 웹 TTS를 중단한 뒤 앱으로 복귀하면 현재 문장에서 자동 복구합니다. 현재 음성은 Web Speech TTS이므로 화면이 꺼진 상태의 지속 재생 자체는 기기·브라우저 정책에 따라 제한될 수 있습니다.

v9.9.6 · 15-Day Guest Login Prompt15일째 첫 로그인 안내

최초 사용일부터 15일째가 되면 첫 로그인/계정 연결 안내를 1회 표시하도록 추가했습니다. 날짜 기준은 서버 firstUsedAt을 우선하고 기존 guest 생성 시각과 기기 최초사용일을 보조 기준으로 사용합니다. 안내를 미뤄도 학습은 계속할 수 있으며 기존 guest 학습 기록은 유지됩니다.

v9.9.3 · Continuous Listen First Tap계속듣기 첫 재생·한손 조작 개선

Android/PWA에서 첫 재생 직전 불필요한 TTS cancel 호출로 첫 발화가 무시될 수 있던 흐름을 수정하고, 시작 감시 후 1회 자동 재시도 안전장치를 추가했습니다. 재생 범위를 창 상단으로 분리하고 재생 조작을 가운데로 올렸으며, 아래 보조 설정 버튼은 주 버튼보다 2단계 낮은 테마 농도로 정리했습니다.

v9.9.2 · Full Learning Reset학습 전체 초기화 화면·로직 완성

학습 초기화를 별도 설정 페이지로 완성하고, 레벨테스트 결과·모든 단계의 학습/습득/복습·복귀 큐·오늘 학습 통계·계급 진행도·임시 세션을 함께 초기화하도록 변경했습니다. 초기화 후에는 초급 1·설렘·계급 1 상태가 되며 레벨테스트를 다시 하거나 기초부터 바로 시작할 수 있습니다. 닉네임·캐릭터·프레임·테마·알림·앱 설정은 유지합니다.

v9.9.1 · Stage Reset Isolation단계 전환·초기화 세션 분리

중급에서 초급으로 돌아왔을 때 중급의 열린 문장이나 저장 세션이 초급 학습을 가로채던 문제를 수정했습니다. 단계 전환 시 이전 단계의 임시 세션을 종료하고, 학습 기록 초기화 시 다른 단계의 영구 기록은 보존하되 열린 임시 세션은 정리합니다. 홈의 말하기 시작·복습은 현재 선택 단계의 문장만 우선 진행합니다.

v9.9.0 · Voice Stable Base문장일치도 격리 · 내목소리 녹음 안정화

문장일치 관련 Web Speech·일치도·단어분석 코드를 실행 경로에서 완전히 비활성화하고, 가운데 말하기 버튼을 녹음 전용으로 안정화했습니다. 가운데 말하기 버튼은 MediaRecorder 녹음 전용으로 전환했으며, 녹음 완료 1회를 말하기 1회로 처리해 기존 학습 진행은 유지합니다. 내목소리 버튼은 최근 녹음 재생 전용입니다.

v9.8.9 · Unified Voice Capture말하기·문장일치·내목소리 통합

가운데 말하기 버튼 하나로 Web Speech 문장일치 확인과 MediaRecorder 내목소리 녹음을 함께 시작하도록 연결했습니다. 음성인식을 먼저 시작한 뒤 녹음을 독립적으로 붙여 과거 마이크 충돌을 줄였고, 녹음 실패가 문장일치 기능을 중단하지 않도록 분리했습니다. 내목소리 버튼은 녹음 기능이 아니라 방금 말한 최근 음성 재생 전용으로 정리했습니다.

v9.8.8 · Auxiliary Palette보조 페이지 파스텔 테마 확장

사진 선택창, 연속듣기, 설정·설정변경·학습통계·사용안내·앱정보·관리자모드·개발일지·테두리꾸미기의 과도한 백색 영역을 줄이고, 선택한 테마의 1~6단계 파스텔 농도 체계가 동일하게 적용되도록 확장했습니다. 야간모드는 기존 전용 색상을 유지합니다.

v9.8.7 · Theme Palette Sync연습화면 6단계 테마 팔레트 연동

연습화면의 고정 블루 파스텔을 테마 연동형 1~6단계 팔레트로 재구성했습니다. 블루·핑크·그린·보라 테마를 선택하면 바닥, 메인패널, 문장카드, 테두리, 보조강조, 주요강조가 같은 농도 역할로 함께 변하며 야간모드와 평가 버튼의 의미색은 유지합니다.

v9.8.6 · Home Stage Inline홈 메인 등급 아이콘 위치 보정

중급·고급 홈화면의 투명 아이콘이 메인 일러스트 중앙이 아니라 단계 단어 바로 앞에 붙도록 구조를 다시 고정했습니다. 새싹 아이콘은 익숙함 앞에, 만개 아이콘은 자유로움 앞에 직접 붙습니다.

v9.8.5 · Final Stage Icons중급·고급 최종 아이콘 교체

중급 홈화면의 익숙함 앞 아이콘을 사용자가 최종 확정한 투명 배경 새싹 아이콘으로, 고급 홈화면의 자유로움 앞 아이콘을 최종 확정한 만개 꽃 아이콘으로 교체했습니다. 같은 단계 표식을 사용하는 연습화면에도 동일 아이콘이 적용됩니다.

v9.8.4 · Stage Identity Lock중급 1·고급 1 페이지 명칭 고정

중급 1 페이지의 표시를 새싹 아이콘 + 익숙함으로, 고급 1 페이지의 표시를 만개한 꽃 아이콘 + 자유로움으로 고정했습니다. i1/a1 내부 단계 코드와 학습 데이터는 그대로 유지하고, 중급 2·3 및 고급 2·3 표기는 기존 단계명을 유지합니다.

v9.8.3 · Stage Identity중급·고급 단계 상징 표기 적용

연습화면의 중급 표기를 새싹 아이콘 + 익숙함으로, 고급 표기를 만개한 꽃 아이콘 + 자유로움으로 변경했습니다. 내부 단계 코드와 학습 로직은 그대로 유지합니다.

v9.8.2 · Compact Audio Row음성 버튼 높이·내목소리 한 줄 정리

내목소리 버튼의 아이콘과 제목을 한 줄로 배치하고, 듣기·내목소리 버튼 높이를 54px에서 46px로 줄였습니다. 가운데 말하기 버튼은 기존 위치에서 4px 아래로 이동했습니다.

v9.8.1 · Compact Answers긍정·부정 카드 높이 축소

연습화면의 긍정 답변 카드와 부정 답변 카드 높이를 약 10~12% 줄이고, 확보한 공간을 질문 본문 영역에 배분했습니다. 글자 크기와 학습 기능은 그대로 유지했습니다.

v9.8.0 · Button Reset연습화면 버튼 CSS 구조 정리

듣기·말하기·내목소리에 누적되어 있던 여러 세대의 버튼 보정 CSS를 정리하고, 세 버튼을 하나의 전용 CSS 블록에서만 관리하도록 재구성했습니다. 듣기와 내목소리는 단순한 플랫 기본 상태로 초기화하고, 말하기는 녹음 상태에 필요한 원형 마이크 스타일만 유지했습니다.

v9.7.29 · Colorless Audio듣기·내목소리 버튼 색 완전 제거

듣기와 내목소리 버튼의 배경색·테두리·그림자·눌림 색 변화를 모두 제거하고 아이콘과 글자만 남겼습니다. 오래된 CSS가 다시 색을 넣지 못하도록 파일의 실제 맨 끝에 최종 규칙을 고정했습니다.

v9.7.28 · Clear Audio Buttons듣기·내목소리 버튼 투명화

듣기와 내목소리 버튼의 배경색을 투명하게 바꾸고, 버튼 경계와 글자색만 남겨 화면을 더 가볍게 정리했습니다. 기능과 위치는 그대로 유지합니다.

v9.7.27 · Final Accent듣기/내목소리 색상 최종 고정

파일 맨 뒤쪽의 오래된 연습화면 CSS가 듣기 버튼을 다시 파스텔 4단계로 덮어쓰던 문제를 확인했습니다. 최종 스타일을 문서의 실제 마지막에 배치해 듣기=#72BDF2, 내목소리=#A9D5F5가 확실히 유지되도록 수정했습니다.

v9.7.26 · Accent Lock듣기·내목소리 버튼 색상 충돌 해결

기존 CSS의 높은 선택자 우선순위 때문에 새 색상이 화면에 반영되지 않던 문제를 수정했습니다. 듣기는 파스텔 5단계 #72BDF2, 내목소리는 파스텔 4단계 #A9D5F5로 최종 우선순위에서 고정했습니다.

v9.7.25 · Accent Balance듣기·내목소리 버튼 위계 조정

버튼 색상 2안을 적용해 듣기는 파스텔 5단계 #72BDF2, 내목소리는 파스텔 4단계 #A9D5F5로 조정했습니다. 말하기 버튼의 중심성을 유지하면서 두 보조 버튼의 시각적 위계를 나눴습니다.

v9.7.24 · Sixth Blue듣기·내목소리 버튼 6단계 통일

연습화면의 듣기 버튼과 내목소리 버튼을 파스텔 6단계 #2698EA로 통일했습니다. 버튼 글자는 흰색으로 정리하고 기능과 배치는 그대로 유지했습니다.

v9.7.23 · Score Clear문장 일치도 배경 제거

문장 일치도 영역의 배경색만 제거하고, 문장일치 분석자료의 파스텔 3단계 배경은 유지했습니다. 부모 영역도 투명 처리해 점수 영역 뒤로 색이 비쳐 보이지 않도록 정리했습니다.

v9.7.22 · Match Pastel Unity문장일치/분석표 배경 통일

문장 일치도 영역과 문장일치 분석자료 영역의 배경색을 동일한 파스텔 3단계 #DEEDFF로 통일했습니다. 기능과 점수 계산 로직은 그대로 유지합니다.

v9.7.21 · Clear Match Surface문장일치 바탕색 완전 제거

문장일치 영역에 남아 있던 바탕색이 이전 CSS에 의해 다시 나타날 가능성을 막기 위해, 문서 최종 우선순위에서 문장일치 카드·점수 영역·분석 영역의 배경색을 모두 완전 투명으로 고정했습니다.

v9.7.20 · Match Bare문장 일치도 바탕 카드 제거

문장 일치도 영역의 배경·테두리·둥근 카드·그림자를 제거했습니다. 분석자료 영역과 함께 카드 장식 없이 점수·반복 횟수·분석 내용만 표시되도록 정리했습니다.

v9.7.19 · Analysis Bare분석자료 바탕 카드 제거

문장 일치도 카드는 유지하고, 문장일치 분석자료 영역의 배경·테두리·둥근 카드 모양을 제거해 카드 없이 바로 아래에 표시되도록 정리했습니다.

v9.7.18 · Analysis Lower II분석자료 추가 6px 하향

문장일치 분석자료를 현재 보이는 위치에서 추가로 6px 더 아래로 이동했습니다. 다른 요소와 학습 로직은 그대로 유지했습니다.

v9.7.17 · Analysis Lower분석자료 6px 하향

한 장의 문장일치 카드 구조는 유지하면서, 문장일치 분석자료 내용만 6px 아래로 내려 상단 점수 영역과의 간격을 넓혔습니다.

v9.7.16 · Seamless Match문장일치도/분석자료 카드 통합

문장일치도 카드와 문장일치 분석자료 영역을 다시 하나의 카드로 확실히 묶었습니다. 분석자료를 아래로 내리던 보정은 제거하고, 하나의 배경·테두리 안에서 위는 일치도, 아래는 분석 내용이 이어지도록 정리했습니다.

v9.7.14 · Analysis Drop문장일치 분석자료 위치 보정

문장일치 분석자료 영역을 기존 위치에서 3px 아래로 이동했습니다. 문장일치도 카드와 분석 기능, 음성인식 로직은 그대로 유지합니다.

v9.7.13 · Clean Legend문장일치 범례 문구 간소화

문장일치 분석 범례에서 “브라우저 인식 결과를 바탕으로 한 참고 표시” 설명 문구를 삭제하고, 색상 범례만 간결하게 남겼습니다.

v9.7.12 · Analysis Air분석자료 바탕 카드 제거

문장 일치도 카드는 유지하고, 그 아래 문장일치 분석자료 영역의 배경색·테두리·둥근 카드 모양을 제거했습니다. 분석 내용은 카드 없이 가볍게 이어지며 음성인식과 일치도 계산 로직은 그대로 유지합니다.

v9.7.11 · Quiet Recognition말하기 버튼 추가 상향 · 실시간 인식 멘트 숨김

가운데 말하기 버튼을 v9.7.10 위치에서 추가로 3px 더 위로 올렸습니다. 음성 인식 중 잠깐 나타나던 “듣고 있어요”, “인식: …” 등의 실시간 검정색 문구는 화면에 전혀 표시되지 않도록 숨겼으며, 음성인식·문장일치도·단어 분석 로직은 그대로 유지합니다.

v9.7.10 · Clean Match분석 제목 정리 · 말하기 버튼 추가 상향

문장일치 통합 카드에서 ‘문장일치 분석자료’ 제목 글자를 제거해 화면을 더 간결하게 정리했습니다. 가운데 말하기 버튼은 기존 위치에서 추가로 3px 더 위로 올렸습니다.

v9.7.9 · Mic Lift가운데 말하기 버튼 추가 상향

가운데 말하기 버튼을 v9.7.8 위치에서 추가로 3px 더 위로 올렸습니다. 문장일치도와 분석자료의 단일 카드 구조 및 다른 연습화면 배치는 그대로 유지합니다.

v9.7.8 · Match Capsule말하기 추가 상향 · 일치도/분석표 실제 단일 카드화

가운데 말하기 버튼을 v9.7.7보다 3px 더 위로 올렸습니다. 문장 일치도와 분석자료는 시각적 연결이 아니라 실제 하나의 부모 카드 안에 담아 하나의 패널로 정리했습니다.

v9.7.7 · Unified Match Card가운데 말하기 버튼 상향 · 일치도/분석표 통합

연습화면에서 가운데 말하기 버튼을 3px 위로 올렸습니다. 또한 문장 일치도와 문장일치 분석자료가 하나의 카드처럼 보이도록 배경·테두리·모서리·간격을 통일해 한 묶음으로 정리했습니다.

v9.7.6 · Equal Bloom꽃 3송이 크기 통일

연습화면에서 세 번째 꽃만 크게 보이게 하던 오래된 전용 크기 규칙을 제거하고, 질문·긍정·부정 꽃 3송이의 실제 크기를 완전히 동일하게 고정했습니다. 꽃의 색상과 진행 상태 표현은 그대로 유지합니다.

v9.7.5 · True Order연습화면 실제 순서 고정

메인카드 → 꽃 3개 → 듣기·말하기·내목소리 3버튼 → 기억평가 3버튼 → 문장일치도 → 분석자료 순서가 HTML 구조와 화면 배치 모두에서 동일하게 유지되도록, 뒤에서 순서를 덮어쓰던 오래된 CSS 충돌을 제거하고 최종 순서를 고정했습니다.

v9.7.4 · Bloom Row꽃 진행과 3버튼 한 줄 재정렬

연습화면을 메인카드 → 꽃 3개 → 듣기·말하기·내목소리 3버튼 → 기억평가 3버튼 → 문장일치도 → 분석자료 순서로 재배치했습니다. 음성·학습 로직은 그대로 유지했습니다.

v9.7.3 · Flower Lead꽃 진행을 말하기 버튼 위로 이동

말하기 횟수 꽃 3개를 중앙 말하기 버튼 바로 위로 이동했습니다. 듣기·내목소리는 한 줄에 유지하고, 꽃 진행 → 말하기 → 기억평가 → 문장일치도 순으로 학습 흐름을 재정렬했습니다.

v9.7.2 · Button Harmony듣기·말하기·내목소리 버튼 균형 조정

내목소리 버튼을 듣기 버튼과 같은 직사각형 규격으로 통일했습니다. 세 버튼 줄 전체를 3px 아래로 이동하고, 말하기 버튼은 추가로 5px 더 내려 세 버튼의 시각적 균형을 조정했습니다.

v9.7.1 · Match Stack문장일치 분석자료 정렬 · 마이크 상향

연습화면에서 문장일치 분석자료를 문장일치도 카드 바로 아래에 고정 배치했습니다. 인식 결과·단어별 분석·인식 오류 건너뛰기를 한 묶음으로 정리하고, 중앙 말하기 마이크 버튼은 메인카드 쪽으로 더 위로 올렸습니다.

v9.7.0 · Frame Gallery캐릭터 테두리 장식 선택 기능

내 캐릭터 변경창에 현재 캐릭터와 같은 크기의 원형 테두리 슬롯을 추가했습니다. 테두리 원을 누르면 장식 갤러리가 열리고 기본 링·꽃잎·골드·보석·밤빛·민트 프레임을 선택해 즉시 캐릭터에 적용하고 저장할 수 있습니다. 캐릭터 이미지와 프레임 선택은 독립적으로 관리되며, 향후 성과 보상·이벤트·유료 아이템 속성을 붙일 수 있는 구조를 유지합니다.

v9.6.4 · Practice Microtune연습화면 미세 위치·본문 크기 보정

No 카운터를 기존 위치에서 3px 더 위로, 홈 버튼을 2px 위로 이동했습니다. 카테고리 옆 ‘- 새 문장’ 글자를 더 크게 키우고, 본문 일본어 문장은 카드 크기를 유지한 채 두 단계 작게 조정해 긴 문장의 줄바꿈 여유를 확보했습니다.

v9.6.3 · Practice Rail연습화면 상단·조작 순서 정렬

홈 버튼을 캐릭터 원형의 상하 중심선에 맞추고, 설정 삼선을 3px 위로 보정했습니다. NO 표기는 No로 정리하고 카운터를 2px 위로 이동했습니다. 메인카드 아래 흐름은 듣기·말하기·내목소리 → 기억평가 3버튼 → 문장일치도 순으로 재배치했습니다.

v9.6.2 · Practice Dock연습화면 상단·조작부 위치 보정

계급 아이콘과 닉네임을 아주 조금 아래로 내리고, NO 카운터는 약 한 글자 폭만큼 왼쪽으로 이동했습니다. 연습화면 메인 타이틀을 홈화면과 같은 크기 체계로 맞추고 설정 삼선을 캐릭터 원형의 상하 중심선에 정렬했습니다. 듣기·말하기·내목소리 조작부는 메인카드 바로 아래에 붙도록 간격을 다시 정리했습니다.

v9.6.1 · Header Balance홈·연습 상단 정렬과 하단 공간 재배분

캐릭터와 닉네임 사이에 아주 작은 간격을 두고, 홈과 연습의 메인 타이틀을 확대해 캐릭터 원형 이미지의 상하 중심선에 맞췄습니다. 설정 삼선도 같은 중심선에 맞춰 우측 안전 여백까지 이동했습니다. 카테고리·새 문장·긍정·부정 라벨의 가독성을 키우고, 조작 버튼 묶음 전체를 위로 당겨 하단 잘림을 줄였습니다.

v9.6.0 · Practice Flowline연습화면 정보·조작 흐름 재배치

캐릭터와 닉네임을 좌측으로 밀착하고 NO 카운터를 우측 하단으로 이동했습니다. 새 문장 상태는 카테고리 옆의 작은 라벨로 통합하고, 학습 흐름을 듣기·말하기·내목소리 → 기억평가 3버튼 → 꽃 진행 3개 → 문장일치도 순으로 재배치했습니다. 주간 화면은 파스텔 1~4단계 농도로 계층을 정리했습니다.

v9.5.2 · Frame Socket캐릭터 장식 프레임 슬롯 도입

내 캐릭터의 둥근 테두리를 단순 CSS 선이 아니라 교체 가능한 장식 아이템 슬롯으로 분리했습니다. 기본 무료 프레임을 적용하고, 향후 성취 보상·이벤트·유료 장식 프레임을 프레임 ID와 자산만 추가해 교체할 수 있도록 저장 구조와 확장 API를 준비했습니다.

v9.5.1 · Stage Switchboard관리자 실제 등급 이동으로 변경

읽기 전용 미리보기 관리자 화면을 제거하고, 초급(설렘)·중급(익숙함)·고급(자유로움)으로 실제 활성 등급을 즉시 전환하는 버튼형 관리자 모드로 변경했습니다. 선택한 등급까지 잠금을 해제해 홈과 실제 학습 화면에서 긴 문장·글자 크기·카드 배치를 직접 점검할 수 있습니다.

v9.5.0 · Inspector Gate관리자 화면 점검 모드 추가

설정 메뉴 하단에 관리자 모드를 추가했습니다. 학습 기록을 건드리지 않고 초급·중급·고급과 각 1~3단계를 자유롭게 선택하며, 문장 길이가 긴 순서로 실제 일본어·한글·긍정·부정 카드 배치를 점검할 수 있습니다.

v9.4.4 · Chronicle Archive개발 연대기 전체 복원

공식 개발 시작일인 2026.09.23부터 오늘까지 흩어져 있던 주요 작업, 기준본 변경, 오류, 롤백, 설계 결정을 앱 내부 개발일지와 CHANGELOG.md에 날짜별로 복원했습니다. 이후 새 버전마다 같은 기록을 계속 누적합니다.

v9.4.3 · Chronicle Seed개발일지 기능 시작

설정 메뉴 맨 아래에 글자형 ‘개발일지’ 링크를 추가하고 날짜별 카드로 개발 역사를 확인할 수 있게 했습니다. ZIP 안에도 CHANGELOG.md를 함께 보관하는 이중 기록 방식을 시작했습니다.

v9.4.2bu-f12레벨테스트 판정 흐름 안정화

일본어 음성이 끝난 뒤에만 답변을 선택할 수 있도록 수정하고 TTS 시작 대기시간을 6초로 조정했습니다. 초급 조기 종료 진행률과 초급 5번 문항 난이도도 정리했습니다.

f9 → f11결과 단계 명칭 정리

결과 화면의 단계명을 초급(설렘) · 중급(익숙함) · 고급(자유로움)으로 정리하고, ‘설렘’을 다시 ‘초급 1’로 바꾸던 오래된 자동 치환 충돌을 제거했습니다.

f4 → f8레벨테스트 화면 재정비

레벨테스트를 앱·휴대폰 테마와 분리해 밝은 화면으로 정리하고, 파스텔 단계 색상과 Galaxy S25 Ultra 기준 문제 화면의 세로 공간을 조정했습니다.

안정화 · 복귀 · 성취 연출
v9.4.2bu안정 기준점 재확정

현재 단계의 학습·복습 기록만 초기화하고 레벨테스트 결과, 현재 단계, 다른 단계 기록과 설정은 보존하는 정상 작동 기준본으로 다시 고정했습니다.

v9.4.2bq → bu전체 블러 기준과 초기화 구조 정리

문장 학습 화면은 히라가나·뜻·긍정·부정까지 전체를 블러 처리하고 정답 보기에서 함께 공개하는 방향으로 고정했습니다. 이후 초기화 기능은 BU에서 현재 단계만 안전하게 초기화하도록 정리했습니다.

f1 → f25문장 성공 축하 이벤트

오늘 새 문장 5개를 완료하면 빰빠라와 꽃가루가 자동 실행되도록 추가했습니다. 중앙에서 터지는 꽃가루와 축하 메시지를 도입하고, 메시지는 효과가 끝난 뒤 나타나도록 순서를 조정했습니다.

f3장기 미접속 복귀모드 정돈

밀린 복습을 하루 최대 5개씩 나누고 다음 날 이어서 처리하도록 복귀 흐름을 정리했습니다. 취소 시 복귀 큐와 상태가 함께 복원되도록 보강하고 활동 시각 저장도 보완했습니다.

BV · BW · BX커스텀 초기화 확인창 실패와 롤백

예쁜 초기화 확인창을 적용하는 과정에서 버튼 먹통과 오버레이 충돌이 반복되었습니다. 해당 실험은 모두 폐기하고 정상 작동하던 BU의 기본 확인 방식으로 복귀했습니다.

설계 기록복습 정보·레이아웃·블러 세부 점검

복습 경과일 표시, 오늘의 브리핑, 홈·연습 화면 위치 조정, 온보딩 대상 강조와 블러 방식 등을 점검했습니다. 아직 검증되지 않은 변경은 기준본으로 승격하지 않는 원칙을 재확인했습니다.

레벨테스트 · 보상 · 사용자 정보
v9.4.2aw 계열레벨테스트 핵심 규칙 확정

초급 5문항과 중급 5문항의 10문항 듣기 진단을 확정했습니다. 초급 5/5 실패 시 중급 생략, 중급 0~2 정답은 중급, 3~5 정답은 고급으로 배정하고, 다시 듣기는 최대 2회, TTS 실패는 오답 처리하지 않는 원칙을 적용했습니다.

설계 기록닉네임·진도 계급 구상

캐릭터 옆에 닉네임을 표시하고, 학습 진도에 따라 계급 아이콘을 붙이는 방향을 설계했습니다. 다른 사용자가 캐릭터를 눌렀을 때 닉네임·학습 언어·단계 등을 보여주는 확장 아이디어도 정리했습니다.

설계 기록보상 및 관리자 통계 방향 검토

10문장 습득 단위의 진급과 학습 성취 보상, 향후 관리자 통계와 사용자 성장 정보 구조를 검토했습니다. 실제 구현과 설계안을 구분해 기록하기로 했습니다.

기준본 복귀 · 테마 · 수익화
v8.5안정 기준본으로 롤백

v9.4.6~v9.4.8에서 시도한 카드 상태·헤더·캡 UI 변경을 모두 폐기하고, 정상성이 확인된 v8.5를 기준으로 필요한 기능만 다시 검증해 올리기로 결정했습니다.

폐기 기록v9.4.6 ~ v9.4.8 UI 실험 폐기

카드 탭, 헤더, 상단 캡 형태와 관련된 색상·레이아웃·CSS 실험이 안정성을 해쳐 전부 폐기했습니다. 이후에는 한 번에 많은 변경을 하지 않고 기준본에서 차근차근 올리는 방식을 채택했습니다.

테마 설계주간 블루 6단계 팔레트 확정

배경 #EAF5FF부터 주요 버튼 #2698EA까지 6단계 블루 파스텔 체계를 정하고, 주간에는 선택 테마를 사용하되 야간에는 자동 야간 모드로 전환하는 원칙을 확정했습니다.

사업 검토무료 출시와 수익화 방향 검토

무료 버전의 비용 구조와 구독·광고·프리미엄 기능 등 수익화 가능성을 검토하고, 스토어 등록과 PWA 설치 방식도 함께 정리하기 시작했습니다.

학습 원칙 · 서버 구조
학습 시스템새 문장 3회·복습 1회 원칙 확정

새 문장은 본문과 답변을 각각 3회 발음해 클리어하고, 복습 문장은 1회 발음 후 기억 여부를 판단하는 기본 학습 흐름을 확정했습니다.

복습 시스템복습 몰림 방지와 장기 복귀 개념 설계

복습 문장이 한꺼번에 몰리지 않도록 5개 단위로 재분배하고, 오래 쉬었다 돌아온 사용자는 최근 학습 지점에서 재개하면서 밀린 복습을 나눠 받는 복귀모드 방향을 설계했습니다.

백엔드Cloudflare Workers + D1 구조 진행

Worker ‘malhaebwa-api’, D1 ‘malhaebwa-prod’, 바인딩 ‘DB’를 기준으로 users, user_courses, sentence_progress, daily_study_stats, user_settings 구조를 준비했습니다.

로그인 정책15일 게스트 사용 원칙 확정

첫 사용일부터 15일 동안 게스트 사용을 허용하고, 익명 guest ID로 먼저 저장한 뒤 로그인 시 기존 데이터를 안전하게 이전·병합하는 정책을 확정했습니다.

음성 · 학습카드 안정화
초기 안정화음성인식과 문장 일치도 반복 점검

마이크 토글, 음성인식, 문장 일치도 반응을 반복 점검했습니다. 0% 고정, 낮은 일치도, 일부 버전의 83% 고정 같은 현상을 추적하며 정상 작동 조합을 찾았습니다.

UX 결정‘천천히’ 제거와 ‘내 목소리’ 강화

학습 화면의 ‘천천히’ 버튼은 제거하고, 원음과 자신의 발음을 비교하는 ‘내 목소리’ 기능을 더 크게 유지하는 방향을 확정했습니다.

초기 화면 · 학습카드
초기 제작홈·연습 화면 구조 다듬기

홈 화면과 연습 화면의 카드, 버튼, 헤더, 학습 진행 표시를 반복 수정하며 모바일 중심의 기본 화면 구도를 잡았습니다.

학습카드질문·긍정·부정 구조와 발음 흐름 정리

질문 문장과 긍정·부정 답변을 한 카드 안에서 학습하는 구조를 다듬고, 듣기·말하기·발음평가가 자연스럽게 이어지는 흐름을 점검했습니다.

웹앱 · 배포 · 브랜딩
웹앱/PWA브라우저 기반 앱 배포 테스트

웹앱을 실제 주소로 배포하고 PWA 설치, 아이콘, 모바일 실행 방식을 점검했습니다. 브라우저 저장만으로는 기기 간 동기화가 되지 않아 향후 로그인과 클라우드 저장이 필요하다는 점도 확인했습니다.

브랜딩‘말해봐 일본어’ 방향과 타이틀·아이콘 정리

앱의 목표를 ‘일본어를 공부하는 앱’보다 ‘실제로 입을 열어 말하게 하는 앱’으로 분명히 했습니다. 모던 미니멀 타이틀과 심플한 앱 아이콘 방향을 확정했습니다.

확장 구상한국어판과 공통 엔진 방향

일본어 학습 앱과 일본인이 쓰는 한국어 회화 앱을 같은 엔진에서 전환할 수 있도록 하고, 이후 중국어·대만어 등으로 확장 가능한 구조를 구상했습니다.

공식 개발 시작
Day 1‘말해봐 일본어’ 본격 제작 시작

실제 일본어 회화를 익히기 위한 앱을 직접 만들어 보기로 하고 첫 프로토타입 제작을 시작했습니다. 듣기, 말하기, 음성인식, 발음 확인, 학습 기록을 한 앱 안에 묶는 것이 출발점이었습니다.

초기 목표“공부보다 말하기” 원칙 설정

문법 설명을 많이 읽는 앱보다 사용자가 직접 문장을 듣고 입으로 말하게 만드는 것을 핵심 목표로 삼았습니다. 이후 모든 학습 시스템과 UI 판단의 기준이 된 출발 원칙입니다.

말해봐 일본어 · 0.1.0 alpha
Copyright © 2026 DS Solutions. All rights reserved.
사용 안내

학습 현황