CI 기초 — 모든 푸시마다 린트·테스트 실행
작은 CI를 설정합니다. npm ci로 설치하고 린트와 테스트를 실행해 빠른 피드백 순환을 유지합니다.
CI 기초 — 모든 푸시마다 린트·테스트 실행은(는) CoddyKit의 무료 JavaScript Academy 강의입니다. 이것은 3개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 JavaScript Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. JavaScript Academy 강의에는 총 3개의 강의가 포함되어 있습니다.
초보자에게 CI가 필요한 이유
목표: push할 때마다 확인을 실행합니다.
- npm ci로 설치합니다
- lint 및 test 스크립트를 실행합니다
- 빠른 피드백과 간단한 로그를 제공합니다
- 초보자를 위해 파이프라인을 작게 유지합니다

CI가 실행할 스크립트
CI가 실행할 수 있도록 package.json에 작은 lint 및 test 스크립트를 만드십시오.
// Minimal scripts your CI will call
const pkgScripts = {
lint: "eslint .",
test: "node test-runner.js"
};
console.log("scripts:", Object.keys(pkgScripts));
console.log("lint ->", pkgScripts.lint);
console.log("test ->", pkgScripts.test);

파이프라인 단계
작은 파이프라인은 소스 내려받기 → Node → npm ci → lint → test → 결과 순서로 진행됩니다.
// Simulate CI steps with prints
function runCI() {
console.log("🔹 Checkout code");
console.log("🔹 Use Node 20");
console.log("🔹 Install deps with npm ci");
console.log("🔹 Run: npm run lint");
console.log("🔹 Run: npm test");
console.log("✅ If all pass, mark build green");
}
runCI();

GH 작업(최소 구성)
이 작은 작업 흐름은 push와 풀 리퀘스트에서 실행되며, npm ci로 설치한 다음 lint와 test를 실행합니다.
// Print a minimal GitHub Actions workflow (as lines)
const gha = [
"name: ci",
"on: [push, pull_request]",
"jobs:",
" build:",
" runs-on: ubuntu-latest",
" steps:",
" - uses: actions/checkout@v4",
" - uses: actions/setup-node@v4",
" with:",
" node-version: 20",
" - run: npm ci",
" - run: npm run lint",
" - run: npm test"
];
for (const l of gha) console.log(l);

속도와 명확성
짧은 테스트와 명확한 출력은 초보자도 CI를 쉽게 사용하게 합니다. 나중에 단계를 더 추가하십시오.
// Keep CI snappy: small tests, small logs
function ciTips() {
console.log("• Keep tests small and fast");
console.log("• Fail early; print clear messages");
console.log("• Cache deps (advanced later)");
console.log("• Lint + unit tests first; more later");
}
ciTips();

CI가 실행할 테스트
처음에는 npm test로 작은 스크립트를 실행할 수 있습니다. 나중에 Jest/Vitest로 전환하십시오.
// A tiny local test runner you can call in CI
function assertEqual(actual, expected, name) {
if (actual === expected) console.log("✅", name);
else console.log("❌", name, "expected:", expected, "got:", actual);
}
function add(a, b) { return a + b; }
assertEqual(add(2, 3), 5, "add adds numbers");
function isAdult(age) { return age >= 18; }
assertEqual(isAdult(18), true, "adult boundary");

CI 설치 명령 퀴즈
빠른 확인: 잠금 파일을 따르는 CI 설치입니다.

복습
복습: CI는 각 push에서 실행됩니다: npm ci → lint → test. 초보자가 빠르게 피드백을 받을 수 있도록 확인 항목을 작고 명확하게 유지하십시오.

자주 묻는 질문
“CI 기초 — 모든 푸시마다 린트·테스트 실행” 강의는 무료인가요?
네 — “CI 기초 — 모든 푸시마다 린트·테스트 실행” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 JavaScript Academy 강의 전체를 잠금 해제할 수 있습니다. JavaScript Academy 강의에는 총 3개의 강의가 포함되어 있습니다.
“CI 기초 — 모든 푸시마다 린트·테스트 실행”에서 뭘 배우나요?
작은 CI를 설정합니다. npm ci로 설치하고 린트와 테스트를 실행해 빠른 피드백 순환을 유지합니다. 브라우저에서 직접 실행하는 실습 코드로 JavaScript Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
JavaScript Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 JavaScript Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 3개 중 3번째 강의입니다.
“CI 기초 — 모든 푸시마다 린트·테스트 실행” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 JavaScript Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 JavaScript Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 테스트 관점 — 작은 단정문, AAA, 실패→성공→리팩터링
- ESLint를 이용한 린팅과 Prettier 서식 지정
- CI 기초 — 모든 푸시마다 린트·테스트 실행