Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

BAM.dev는 프로그래밍 문법을 읽는 데서 멈추지 않고, 개념을 설명하고 직접 구현하며 한 명의 개발자로 성장하도록 돕는 학습 가이드입니다.

현재 구현 범위는 **0~3차 JavaScript 학습 기반과 확장 검증 게이트**입니다. JavaScript 교안 7개, 교안별 기초·적용 객관식 14개, Code Quest 5개를 탐색할 수 있으며 HTML·CSS·Java에는 교안과 객관식 샘플이 각각 1개씩 있습니다. 사이드바에서 네 언어를 전환할 수 있고, 학습 진도와 객관식 결과뿐 아니라 Quest 코드 초안·실행 기록·완료 상태도 새로고침 뒤 유지됩니다. Quest는 브라우저의 공개 테스트를 실제로 실행하고 테스트별 결과, 실패 원인과 단계별 힌트를 제공합니다.
현재 구현 범위는 **0~4차와 확장 검증 게이트**입니다. JavaScript 교안 7개, 교안별 기초·적용 객관식 14개, Code Quest 5개와 코딩테스트 6개를 탐색할 수 있으며 HTML·CSS·Java에는 교안과 객관식 샘플이 각각 1개씩 있습니다. 코딩테스트 목록은 검색, 난이도·언어·유형·풀이 여부 필터를 제공하고 문제 화면은 설명·편집기·실행 결과를 분할해 표시합니다. `테스트 실행`은 빠른 공개 테스트만 확인하고, `제출 및 채점`은 브라우저에 포함된 공개 테스트 전체를 평가해 풀이 상태를 저장합니다.

## 바로 실행하기

Expand All @@ -25,9 +25,9 @@ npm run check
## 프로젝트 구조

```text
content/ 언어 비종속 메타데이터, 교안·로컬 fixture, 객관식·Quest 컬렉션
content/ 언어 비종속 메타데이터, 교안·fixture, 객관식·Quest·코딩테스트
src/core/ 콘텐츠·내비게이션·평가 도메인 로직
src/grading/ Code Quest 실행 요청 검증과 브라우저 채점 어댑터
src/grading/ 공통 실행 요청 검증과 Quest·코딩테스트 브라우저 채점 어댑터
src/repositories/ 사용자 진도 저장소 추상화와 localStorage 구현
src/ui/ 안전한 제한형 Markdown·평가 화면 렌더러
src/workers/ 공개 JavaScript 테스트를 실행하는 일회성 Worker
Expand All @@ -41,7 +41,7 @@ docs/ 아키텍처·결정·참고자료 기록

## 저장 정책

학습 완료, 최근 교안, 최근 객관식 시도 20개, 오답 재도전 대상, Quest 초안 20개와 최근 실행 50개·완료 ID는 현재 `bam.dev.progress.v1` 키로 `localStorage`에 저장됩니다. 사용자 소스는 실행 기록에 중복 저장하지 않고 초안 저장소에만 보관합니다. 화면 코드는 브라우저 저장소를 직접 다루지 않고 `ProgressRepository` 계약을 사용하므로, 8차에서 Supabase 저장소로 교체하거나 로컬 데이터를 마이그레이션할 수 있습니다. 브라우저 저장소가 차단되면 현재 탭의 메모리 저장소로 계속 동작하고 비영속 상태를 화면에 알립니다.
학습 완료, 최근 교안, 최근 객관식 시도 20개, 오답 재도전 대상, Quest 초안 20개와 최근 실행 50개·완료 ID, 코딩테스트 초안 20개와 최근 제출 50개·리비전별 완료 상태는 현재 `bam.dev.progress.v1` 키로 `localStorage`에 저장됩니다. 사용자 소스는 실행·제출 기록에 중복 저장하지 않고 초안 저장소에만 보관합니다. 화면 코드는 브라우저 저장소를 직접 다루지 않고 `ProgressRepository` 계약을 사용하므로, 8차에서 Supabase 저장소로 교체하거나 로컬 데이터를 마이그레이션할 수 있습니다. 브라우저 저장소가 차단되면 현재 탭의 메모리 저장소로 계속 동작하고 비영속 상태를 화면에 알립니다.

## 참고 자료

Expand Down
Loading
Loading