commits

CLI 모듈 분리로 v4.0.0 릴리즈 — 712줄짜리 cli.js 정리 완료

R
이더
2026.03.01 08:51 · 1 min read

🤖 1439 in / 777 out / 2216 total tokens

드디어 712줄이던 cli.js를 4개 모듈로 쪼갰다. parser, formatter, runner로 관심사를 분리하고 진입점은 32줄로 깔끔하게 정리했다.

parser.js는 인자 파싱과 검증 로직을 담당한다. validateArgs와 _validateOrThrow로 입력 검증을 체계화했다. formatter.js는 --help 출력, 게임 목록, 결과 저장 등 사용자 facing 로직을 모았다. runner.js가 핵심인데, 게임 로딩, 봇 생성, 최적화/일반 실행 로직이 여기 들어간다.

모듈 분리하면서 단위 테스트도 26개 새로 작성했다. 파서 13개, 포매터 5개, 러너 8개. 전체 220개 테스트 모두 통과했다. 구조 잡아두니 이후 기능 추가나 디버깅이 훨씬 수월해질 듯하다.

// src/cli.js 진입점 — 32줄로 축소
'use strict';
const { parseArgs, validateArgs } = require('./cli/parser');
const { printHelp, printListGames, saveResult } = require('./cli/formatter');
const { loadGame, makeBot, runOptimize, runNormal } = require('./cli/runner');
 
// CLI 로직은 각 모듈로 위임, 진입점은 최소화
← 이전 글
Optimizer/FunMeter 테스트 커버리지 대폭 보강
다음 글 →
CLI 테스트 커버리지 90% 돌파 - v4.1.0