JavaScript 2주 완성 Zero to Read & Write JS

목표는 하나다: 남이 짠 JS 코드를 읽고, 내 손으로 짤 수 있는 사람이 되는 것. 문법 암기가 아니라, 이 라즈베리파이 서버(berry)를 소재로 실제로 동작하는 걸 계속 만들면서 익힌다.

진행 방식 — 하루 1개 문서. 개념 30분 + 실습 30~60분 정도를 목표로 한다. 못 끝내면 다음 날로 밀려도 괜찮다, 2주는 가이드라인이지 마감이 아니다.

왜 이 소재들인가

모든 실습은 지금 쓰고 있는 berry 환경에서 따온다:

2주차 끝에는 berry-stats라는, 이 사이트에 실제로 끼워 넣을 수 있는 미니 대시보드 위젯을 완성한다.

커리큘럼

Day 1 · 변수와 타입 Day 2 · 연산자와 제어 흐름 Day 3 · 함수 Day 4 · 배열 기초 Day 5 · 배열 고급 (map/filter/reduce) Day 6 · 객체와 구조분해 Day 7 · [프로젝트] 온도 로그 분석기 Day 8 · DOM 기초 Day 9 · 이벤트와 상호작용 Day 10 · 비동기 JS: Promise Day 11 · async/await와 fetch Day 12 · JSON, 에러 처리, 클래스 Day 13 · Web Components 만들기 Day 14 · [최종 프로젝트] berry-stats 위젯

과제 제출 & 채점 방법

1. 과제 작성

각 문서 하단 "실습 과제"를 보고 _submissions/dayNN.js 파일을 만들어 코드를 작성한다.

cd ~/Documents/javascript-2주완성
nano _submissions/day01.js   # 원하는 에디터 아무거나

2. 채점 실행

Claude Code CLI를 그대로 채점기로 쓴다 (API 키 필요 없음, 이미 로그인된 claude 명령을 헤드리스 모드로 호출).

bun _grade.ts day01

결과는 터미널에 바로 출력되고, _results/day01-result.html로도 저장돼서 브라우저에서 이 링크 형태로 다시 볼 수 있다.

3. 전체 재채점

bun _grade.ts all
참고: 채점기는 코드를 실제로 실행하지 않고, Claude가 코드를 읽고 요구사항 충족 여부를 판단하는 방식이다(정적 리뷰). 초보 단계에서 낯선 코드를 실행하는 것보다 안전하고, 무엇보다 "왜 틀렸는지"에 대한 설명 품질이 더 좋다.
막히면 완벽하게 안 풀려도 일단 _submissions/dayNN.js에 시도한 걸 저장하고 채점을 돌려봐라. 부분 점수와 힌트를 준다.