ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻訳待ち
Loading the full README. The saved excerpt is shown below.
일본어 원서/웹소설 학습자를 위한 자동 단어장 생성 웹서비스입니다. Use the hosting provider environment variable UI for production settings. NEXT_PUBLIC_API_BASE_URL must be the https:// Render backend URL, and CORS_ORIGINS or CORS_ALLOW_ORIGINS must include the Vercel frontend origin with https://. Do not commit .env files or document real DATABASE_URL, JWT_SECRET_KEY, API keys, or service URLs.Read the full README ↗
일본어 원서/웹소설 학습자를 위한 자동 단어장 생성 웹서비스입니다.
2026-10-07 기준, 0fb5a0f까지 홈·읽기·복습·단어·덱·학습 계획·통계의 7개 탭 리디자인과 로컬 안정화가 반영되었습니다. 분류 전용 탭은 학습 계획 탭으로 대체되었습니다.
이 날짜와 커밋은 문서 작성 기준입니다. 작업을 시작할 때 현재 브랜치와 변경 상태를 다시 확인하세요. 과거 시안·게이트 자료가 로컬에만 있으면 클라우드 작업에서는 보이지 않습니다.
Use the hosting provider environment variable UI for production settings. NEXT_PUBLIC_API_BASE_URL must be the https:// Render backend URL, and CORS_ORIGINS or CORS_ALLOW_ORIGINS must include the Vercel frontend origin with https://. Do not commit .env files or document real DATABASE_URL, JWT_SECRET_KEY, API keys, or service URLs.
backend/data/dictionary/jmdict_sample.json is for development and tests.backend/data/dictionary/en_ko_sample.json is a small English-to-Korean fallback sample.backend/data/dictionary/jmdict_full.json; it is ignored by Git and should not be committed.backend/data/dictionary/en_ko_full.json; it is ignored by Git and should not be committed.en_ko_full.json (or .gz/.zip) automatically at startup via EN_KO_DICTIONARY_URL, the same way JMDICT_FULL_JSON_URL works for JMdict.meaning_ko is limited to 1-3 short, clean Korean candidates; archaic/broken forms are filtered out.backend/data/dictionary/krdict_reverse_sample.json, optionally krdict_reverse_full.json) can boost/rank the Kaikki-based candidates. It is auxiliary-only, built and loaded from a local file with no runtime API calls, and krdict_reverse_full.json is not committed.See docs/dictionary-data.md for supported JSON formats, validation scripts, production placement options, and source notice requirements.
덱/공유 관리 접이식 메뉴 안에서 사용합니다.jp_vocab_reader_deck JSON 패키지로 내보내고, 다른 사용자가 같은 JSON을 가져와 새 개인 덱으로 복사할 수 있습니다.status, correct_count, wrong_count, review_level, next_review_at, last_reviewed_at, 내부 id, deck_id, 생성/수정 시각은 포함하지 않습니다.덱 이름 (가져옴), 덱 이름 (가져옴 2)처럼 중복되지 않게 저장됩니다.unknown, 맞음/틀림 횟수와 복습 레벨은 0, 복습 날짜는 비어 있는 상태로 시작합니다.여러 사용자가 각자의 덱, 단어장, 사용자 정의 용어, 학습 기록을 분리해 쓰고 공개 덱을 공유/가져오기 할 수 있는 서비스형 구조를 사용한다. docs/service-architecture.md는 이 전환의 **초기 설계 초안(historical)**이며, 이후 실제로 바뀐 부분과 어긋나는 서술이 남아 있다. 현재 기준 문서는 용도별로 다음을 참고한다: 공유덱 lexeme/subscription 정책은 docs/architecture/shared-lexeme-progress-storage.md, 베타/릴리스 점검 항목은 docs/beta-release-checklist.md.
백엔드 DB 접근 로직은 backend/app/repositories의 기능별 repository로 1차 분리했다.
백엔드는 회원가입/로그인 API와 JWT access token을 지원한다. 개발 모드에서는 토큰이 없는 요청이 기존처럼 [email protected] 사용자로 fallback한다. 운영 환경에서 익명 요청의 권한은 별도로 확인해야 하며, 개발 fallback을 운영 정책으로 간주하지 않는다.
토큰을 보내면 해당 사용자 기준으로 개인 덱, 단어장, 사용자 정의 용어를 조회/수정한다.
프론트엔드는 상단 계정 영역에서 로그인/회원가입/로그아웃을 제공하고, 로그인 성공 시 access token만 localStorage에 저장해 이후 API 요청에 사용한다.
저장된 토큰이 만료되었거나 잘못되면 프론트엔드는 현재 토큰에 해당하는 만료 응답인지 확인하고 계정 경계를 초기화한다. 이전 계정의 늦은 조회 응답은 버리고, 복습 세션과 덱 선택도 즉시 비운다. 개발 환경에서는 개발 사용자 데이터를 다시 불러온다. 읽기 원문의 기기 저장은 아직 계정별로 분리되지 않았다.
cd backend
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
copy .env.example .env
$env:DATABASE_URL = "sqlite:///./qa_local_session.db"
$env:APP_ENV = "development"
uvicorn app.main:app --reload
위 환경변수 두 줄은 PowerShell 예시입니다. 로컬 검증에서는 .env에 남은 연결값을 믿지 말고 세션 전용 SQLite를 명시하세요. 로컬에서 Neon/운영 DB에 접근하지 않습니다. 생성한 임시 DB는 서버 종료 후 정리합니다. 데이터 보존이 필요한 개발 DB는 별도로 지정합니다.
Production backend start command, run from backend:
uvicorn app.main:app --host 0.0.0.0 --port $PORT
Before deployment, set environment variables from backend/.env.example in the hosting platform. Do not commit real .env files. See docs/production-deployment.md for production setup details.
This is the beginning of the README. Read the rest at the original. Read the full README ↗