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
5 changes: 5 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ jobs:
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Java 21 설정
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"
- name: Node.js 설정
uses: actions/setup-node@v4
with:
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

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

현재 구현 범위는 **0~6차와 확장 검증 게이트**입니다. JavaScript·HTML·CSS 3개 언어를 정식 과정으로, Java를 언어 독립성 검증용 샘플로 제공합니다. 전체 콘텐츠는 교안 19개(JavaScript 7·HTML 5·CSS 6·Java 1), 객관식 39문항(14·12·12·1), Code Quest 14개(JavaScript 5·HTML 5·CSS 4), JavaScript 코딩테스트 6문제와 HTML·CSS Web Project 1개입니다.
현재 구현 범위는 **0~7차와 확장 검증 게이트**입니다. JavaScript·HTML·CSS·Java 4개 언어를 정식 과정으로 제공합니다. 전체 콘텐츠는 교안 24개(JavaScript 7·HTML 5·CSS 6·Java 6), 객관식 50문항(14·12·12·12), Code Quest 19개(JavaScript 5·HTML 5·CSS 4·Java 5), JavaScript·Java 코딩테스트 6문제와 HTML·CSS Web Project 1개입니다.

Code Quest에서는 언어의 실제 작성 단위를 그대로 편집합니다. JavaScript는 함수를, HTML은 JavaScript 래퍼 없는 마크업을, CSS는 JavaScript 래퍼 없는 스타일시트를 작성합니다. HTML은 소스를 실행하지 않고 inert DOM과 doctype을 공개 검사하며, CSS는 안전 검사를 통과한 고정 HTML fixture에 스타일을 적용해 CSSOM 규칙·미디어 조건·계산 스타일을 공개 검사합니다. Web Project에서는 HTML과 CSS 두 파일을 함께 편집하고 안전 미리보기, 공개 자동 검사 70점과 자가평가 30점으로 결과를 점검합니다. 코딩테스트의 `테스트 실행`과 `제출 및 채점`을 포함해 브라우저에 전달되는 모든 테스트와 assertion은 공개됩니다.
Code Quest에서는 언어의 실제 작성 단위를 그대로 편집합니다. JavaScript는 함수를, HTML은 JavaScript 래퍼 없는 마크업을, CSS는 JavaScript 래퍼 없는 스타일시트를, Java는 `public class Solution`의 `public static` 메서드를 작성합니다. HTML은 inert DOM과 doctype을, CSS는 고정 HTML fixture에 적용한 CSSOM 규칙·미디어 조건·계산 스타일을 공개 검사합니다. Java는 로컬 개발 서버가 Java 21 호환 소스로 컴파일한 뒤 매 테스트를 분리 프로세스에서 실행합니다. Web Project에서는 HTML과 CSS 두 파일을 함께 편집하고 안전 미리보기, 공개 자동 검사 70점과 자가평가 30점으로 결과를 점검합니다. 화면에 전달되는 모든 테스트와 assertion은 공개됩니다.

## 바로 실행하기

Node.js 20 이상만 필요합니다. 외부 패키지나 외부 서버는 사용하지 않습니다.
Node.js 20 이상이 필요합니다. Java 코드 실행에는 실행 중인 Docker Desktop과 로컬에 미리 준비된 고정 Java 21 이미지 `maven@sha256:3a4ab3276a087bf276f79cae96b1af04f53731bec53fb2e651aca79e4b10211e`가 필요합니다. 실행기는 이미지를 자동으로 pull하지 않으며 Docker daemon 또는 이미지가 없으면 Java 실행만 명시적으로 거부합니다. host JDK, 외부 채점 API, 클라우드 계정이나 유료 리소스는 사용하지 않습니다.

```bash
npm run dev
Expand All @@ -29,12 +29,12 @@ npm run check
```text
content/ 언어 비종속 메타데이터, 교안·fixture, 객관식·Quest·코딩테스트·Web Project
src/core/ 콘텐츠·내비게이션·평가 도메인 로직
src/grading/ Workerinert DOM·CSSOM 기반 Quest·코딩테스트 채점 어댑터
src/grading/ Worker·Java API·inert DOM·CSSOM 기반 채점 어댑터
src/repositories/ 사용자 진도 저장소 추상화와 localStorage 구현
src/ui/ 안전한 제한형 Markdown·평가 화면 렌더러
src/workers/ 공개 JavaScript 테스트를 실행하는 일회성 Worker
styles/ 디자인 토큰과 반응형 앱 UI
scripts/ 로컬 서버, 콘텐츠 검증, 정적 빌드
scripts/ 로컬 서버·Java 격리 채점기, 콘텐츠 검증, 정적 빌드
tests/ Node 내장 테스트 러너 기반 단위 테스트
docs/ 아키텍처·결정·참고자료 기록
```
Expand All @@ -47,4 +47,4 @@ docs/ 아키텍처·결정·참고자료 기록

## 참고 자료

UI 참고 코드에서는 구조, 색상, 간격, 사용자 흐름만 분석했습니다. React, MUI, Tailwind 구성요소나 의존성은 복사하지 않았습니다. JavaScript 교안은 사용자가 제공한 읽기 전용 학습자료를 프로젝트 내부에 복제한 뒤, 오프라인 실행·접근성·설명 정확성을 위해 필요한 부분만 보완했습니다. HTML·CSS 정식 교안은 교안에 명시한 WHATWG·W3C·MDN 표준 및 가이드를, Java 샘플은 언어 명세를 근거로 프로젝트에서 새로 작성했습니다. 원본과 변경 내용, 프로젝트가 직접 작성한 문제·기준 답안·대표 오답 fixture의 출처는 [참고자료 감사 기록](docs/reference-audit.md)에 남겼습니다.
UI 참고 코드에서는 구조, 색상, 간격, 사용자 흐름만 분석했습니다. React, MUI, Tailwind 구성요소나 의존성은 복사하지 않았습니다. JavaScript 교안은 사용자가 제공한 읽기 전용 학습자료를 프로젝트 내부에 복제한 뒤, 오프라인 실행·접근성·설명 정확성을 위해 필요한 부분만 보완했습니다. HTML·CSS 정식 교안은 교안에 명시한 WHATWG·W3C·MDN 표준 및 가이드를, Java 정식 교안은 Java SE 25 언어 명세와 API 문서를 근거로 프로젝트에서 새로 작성했으며 예제는 Java 21 호환 범위로 제한했습니다. 원본과 변경 내용, 프로젝트가 직접 작성한 문제·기준 답안·대표 오답 fixture의 출처는 [참고자료 감사 기록](docs/reference-audit.md)에 남겼습니다.
Loading
Loading