🧠 새로 배운 것
L-01 상태 관리
배열 하나로 게임판 추상화. board[0~8]에 '', 'X', 'O' 저장. 실제 DOM과 분리해서 생각하는 습관.
L-02 이벤트 위임
9개 셀에 각각 리스너 붙이지 않고, 부모 #board에 하나만 붙여 e.target으로 구분. 성능 효율 향상.
L-03 승리 알고리즘
WIN_LINES 배열에 8가지 경우의 수 정의. 매 턴마다 순회하며 3개 일치 여부 확인.
L-04 Minimax
재귀적으로 모든 경우의 수를 탐색. AI가 +1(승)을 최대화하고 -1(패)을 최소화. 완벽한 플레이 보장.
L-05 localStorage
브라우저를 닫아도 점수 유지. JSON.stringify/parse로 객체를 문자열로 변환하여 저장.
L-06 DOM 조작
textContent vs innerHTML 차이. classList.add/remove로 상태별 스타일 토글. 선언적 패턴.
L-07 재귀 함수
minimax()가 자기 자신을 호출. 깊이(depth)로 탈출 조건 설정. 스택 오버플로 방지 원리.