ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Chrome 온디바이스 AI 기반 일본어 학습 웹앱 (개인 프로젝트)
Translation pending
EducationTypeScript · JavaScriptGitHub @kimkyeseungOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
브라우저 안에서 도는 온디바이스 AI를 활용한 개인용 일본어 학습 웹앱. 서버 없이 순수 프론트엔드로 동작하며, 사전 뜻풀이·읽기·JLPT 급수·한자 정보 같은 "정답이 정해진 정보"는 AI가 만들지 않고 공개 데이터셋을 가공한 정적 JSON에서만 가져온다. 입력한 문장과 학습 기록은 어디로도 전송되지 않는다 — 예외는 오십음도 발음 게임 하나로, Chrome의 음성 인식이 목소리를 구글 서버로 보낸다(게임 첫 화면에도 적혀 있다). 별개로 사이트에 Google AdSense 광고가 붙어 있어 광고 쿠키가 쓰이며, 광고에는 입력한 문장이나 학습 기록이 전달되지 않는다. 외부로 가는 요청 전체는 앱의 /privacy(개인정보 처리방침)에 정리해 두었다. 개인 학습용 프로젝트이며 서비스 출시용이 아니다. PWA라서 브라우저의 "앱 설치"(iOS Safari는 공유 → 홈 화면에 추가)로 홈 화면에 둘 수 있다. 한 번 열어본 화면은 오프라인에서도 열린다. 사전·한자 데이터는 용량이 커서 그 화면을 처음 열 때 저장되므로, 한 번도 안 연 화면(예: 한자 획순)은 오프라인에서 안 된다. 새 버전이 배포되면 바로 바꾸지 않고 "새로고침할까요?"를 먼저 묻는다.Read the full README ↗
브라우저 안에서 도는 온디바이스 AI를 활용한 개인용 일본어 학습 웹앱. 서버 없이 순수
프론트엔드로 동작하며, 사전 뜻풀이·읽기·JLPT 급수·한자 정보 같은 "정답이 정해진 정보"는
AI가 만들지 않고 공개 데이터셋을 가공한 정적 JSON에서만 가져온다. 입력한 문장과 학습 기록은
어디로도 전송되지 않는다 — 예외는 오십음도 발음 게임 하나로, 발음 판정 모델(약 190MB — 사이트를 열면
백그라운드에서 받는다)을 아직 못 받았으면 Chrome의 음성 인식이 목소리를 구글 서버로 보낸다(게임 첫 화면에도
적혀 있다). 모델이 있으면 판정도 기기 안에서 한다. 별개로 사이트에 Google AdSense 광고가 붙어
있어 광고 쿠키가 쓰이며, 광고에는 입력한 문장이나 학습 기록이 전달되지 않는다. 외부로 가는
요청 전체는 앱의 /privacy(개인정보 처리방침)에 정리해 두었다.
개인 학습용 프로젝트이며 서비스 출시용이 아니다.
npm install
npm run dev
기타 스크립트:
npm run typecheck # 타입 체크
npm test # vitest
npm run lint # oxlint
npm run build # 프로덕션 빌드
PWA라서 브라우저의 "앱 설치"(iOS Safari는 공유 → 홈 화면에 추가)로 홈 화면에 둘 수 있다. 한 번 열어본 화면은 오프라인에서도 열린다. 사전·한자 데이터는 용량이 커서 그 화면을 처음 열 때 저장되므로, 한 번도 안 연 화면(예: 한자 획순)은 오프라인에서 안 된다. 새 버전이 배포되면 바로 바꾸지 않고 "새로고침할까요?"를 먼저 묻는다.
오프라인 동작은 개발 서버(npm run dev)에서는 확인할 수 없다 — npm run build && npm run preview로
띄워 둘러본 뒤 서버를 끄고 새로고침해 본다.
회화 연습·작문 첨삭·선생님에게 질문은 온디바이스 AI가 필요하다. 두 가지 방법이 있고, 브라우저에 맞는 쪽을 앱이 알아서 안내한다.
chrome://flags의 관련 플래그를 켜고 재시작한다. 크로미움 기반이어도
Whale·Edge·Opera 등에는 구글이 모델을 배포하지 않아 동작하지 않는다.둘 다 안 되더라도 오십음도·사전·한자·단어장은 그대로 사용할 수 있다. 앱 안의
/diagnostics(자가진단) 페이지에서 지금 브라우저가 어느 쪽을 쓸 수 있는지 확인할 수 있다.
각 화면이 따로 놀지 않도록 아래가 밑에 깔려 있다. 전부 브라우저 안에만 저장된다.
/memory에서 언제든 보고 지울 수 있다.React + TypeScript + Vite + Tailwind CSS, react-router-dom, Zustand(설정·학습 상태는
localStorage persist), IndexedDB(끝없이 쌓이는 학습 기록·기억·대화), Framer Motion,
WanaKana(로마자→히라가나 변환), react-markdown + remark-gfm(선생님 답변),
@litert-lm/core(Gemma 4 / WebGPU), vite-plugin-pwa(설치·오프라인), vitest.
/test로 지금 단원 점검, /level로 레벨 진단그 밖에 대문(오늘의 학습), 학습 로드맵(/curriculum), 레벨 진단(/level), 선생님의 기억(🧠 /memory), 정보(ⓘ —
출처·백업·화면 모드), 자가진단(/diagnostics) 페이지가 있다. 화면 모드는 기기 설정·밝게·어둡게
중에 고를 수 있다. 아래 출처는 정보 페이지에서도 확인할 수 있다.
| 데이터 | 출처 | 라이선스 |
|---|---|---|
| 사전 뜻풀이·읽기·JLPT 급수·후리가나 | Bluskyo/JMDict_Extended (JMDict 기반) | CC BY-SA (EDRDG) |
| 단어의 한국어 뜻풀이 | 한국어 위키낱말사전 (kaikki.org 가공본) | CC BY-SA 3.0 |
| 한자 음독·훈독·뜻·획수 | scriptin/jmdict-simplified의 KANJIDIC2 JSON | CC BY-SA (EDRDG) |
| 한자 JLPT 급수 매칭 | AnchorI/jlpt-kanji-dictionary | MIT |
| 한자 획순 벡터 경로 | KanjiVG | CC BY-SA 3.0 |
| 발음 판정 모델(오십음도 발음 게임) | prj-beatrice/japanese-hubert-base-phoneme-ctc-v3 — ONNX·fp16으로 변환해 사용 | Apache-2.0 |
가공 스크립트와 상세 스키마는 scripts/data/README.md에 있다.
학습 로드맵(src/data/curriculum.json)은 위 데이터셋이 아니라 직접 정리한 자료다.
급수별 언어능력 기준은 JLPT 공식 요약을,
문법 목록은 jlptsensei를, 단어·한자 목표치는
migaku의 JLPT 어휘 정리를 참고했다.
목표치는 JLPT가 공식 발표하는 수치가 아니라 통용되는 추정치이고, 문법도 각 급수의 핵심만
추린 것이라 실제 시험 범위는 더 넓다.
레벨 진단(/level)과 단원 점검(선생님 /test)의 문제 은행(src/data/level-test-bank.json)도
직접 만든 문제다. 위 커리큘럼의 문형을 바탕으로 새로 썼고, JLPT 공식 문제가 아니며 기출·시판
문제집의 문장을 옮기지 않았다. 어휘 뜻·한자 읽기 문제는 위 사전 데이터에서 만든다. 진단 결과도 공식
급수 판정이 아니라 공부를 시작할 단계를 고르기 위한 추정이다.
개발자를 위한 상세 규칙과 구현 노트는 CLAUDE.md에 정리되어 있다.