바이브 코딩 사전
린트
바이브 코딩 사전

린트

코드를 실행하기 전에 문법 오류, 스타일 불일치, 위험한 패턴을 자동으로 찾아 주는 정적 검사 과정이다. 린트는 테스트처럼 기능 결과를 검증하지는 않지만, AI가 만든 코드에서 사용하지 않는 변수, 잘못된 import, 접근성 누락, 위험한 any 타입 같은 문제를 빠르게 잡아낸다. 바이브 코딩에서는 AI에게 기능을 맡긴 뒤 린트를 통과시키는 것을 첫 품질 게이트로 두면, 사람이 모든 줄을 읽기 전에 기본 위생 문제를 제거할 수 있다.

예시

Next.js 기능을 AI가 만든 뒤 npm run lint를 실행해 사용하지 않는 import와 이미지 alt 누락을 확인한다. 실패하면 에러 메시지를 AI에게 그대로 전달하기보다, 어떤 규칙이 왜 필요한지 설명하게 하고 최소 수정만 적용한다.

참고

린트는 버그를 모두 잡는 도구가 아니라 코드 품질의 기본 위생을 자동 확인하는 첫 단계다.

카테고리

테스트·디버깅

난이도

basic

태그

린트 · 정적분석

함께 읽기

연관 용어

하네스 엔지니어링

품질 게이트

AI 에이전트의 작업 결과가 다음 단계로 넘어가기 전에 반드시 통과해야 하는 자동화된 검증 지점이다. 공항의 보안 게이트가 탑승 전 필수 검사를 수행하듯, 품질 게이트는 코드가 프로덕션으로 가기 전에 필수 검증을 수행한다. 에이전틱 엔지니어링에서 품질 게이트는 AI가 생성한 코드의 품질을 인간의 직접 검토 없이도 자동으로 보장하는 핵심 메커니즘이다. 일반적인 품질 게이트 체인: Agent 코드 생성 → [린트 통과?] → [타입 체크 통과?] → [단위 테스트 통과?] → [통합 테스트 통과?] → [보안 스캔 통과?] → [코드 커버리지 기준 충족?] → 인간 리뷰. 각 대괄호가 하나의 Quality Gate이며, 어느 하나라도 실패하면 AI 에이전트에게 피드백이 돌아가 수정을 시도한다. Stripe의 Minions 시스템에서는 CI(지속적 통합) 파이프라인 통과가 필수 품질 게이트로, AI가 작성한 코드가 모든 테스트를 통과해야만 PR이 생성된다. 품질 게이트가 촘촘할수록 AI Slop이 프로덕션에 도달할 확률이 낮아지지만, 너무 과도하면 하네스 부채(Harness Debt)가 발생할 수 있다.

테스트·디버깅

단위 테스트

개별 함수, 메서드, 모듈이 예상대로 올바르게 동작하는지 검증하는 가장 작은 범위의 자동화된 테스트이다. '단위(unit)'는 테스트할 수 있는 가장 작은 코드 조각을 의미하며, 외부 의존성(데이터베이스, 네트워크, 파일 시스템)을 모킹(mocking)하여 해당 함수 자체의 로직만 순수하게 검증한다. 바이브 코딩에서 단위 테스트는 AI가 생성한 코드의 정확성을 보장하는 첫 번째 방어선이다. AI에게 'calculateTax 함수의 단위 테스트를 작성해줘'라고 하면 Jest, Vitest 등의 프레임워크로 다양한 입력 값과 경계 조건에 대한 테스트 코드를 생성한다. 그러나 AI가 생성한 테스트에는 주의가 필요하다: AI는 종종 정상 경로(happy path)만 테스트하고, 에지 케이스(경계 값, null, 빈 문자열, 음수 등), 에러 상황, 동시성 문제 등을 간과하는 경향이 있다. 따라서 AI가 생성한 테스트를 검토하고 에지 케이스를 추가하는 것이 인간의 중요한 역할이다. 에이전틱 엔지니어링에서는 Test Generator 에이전트가 자동으로 테스트를 생성하고, 품질 게이트에서 테스트 통과를 필수로 요구한다.

테스트·디버깅

통합 테스트

여러 모듈이나 서비스가 결합(integration)되어 함께 올바르게 동작하는지 검증하는 테스트이다. 단위 테스트가 개별 부품(함수)의 정상 동작을 확인한다면, 통합 테스트는 부품들이 조립되었을 때 전체가 기대한 대로 동작하는지 확인한다. 바이브 코딩에서 통합 테스트가 특히 중요한 이유: AI는 개별 함수 단위에서는 올바른 코드를 생성하더라도, 함수 간 데이터 전달, API와 데이터베이스 연동, 서비스 간 통신에서 미묘한 불일치를 만들어낼 수 있다. 예를 들어, 사용자 서비스가 반환하는 사용자 ID 형식(숫자 vs 문자열)과 결제 서비스가 기대하는 형식이 다른 경우, 단위 테스트는 각각 통과하지만 통합 테스트에서 실패한다. 테스트 범위 예시: API 엔드포인트 → 비즈니스 로직 → 데이터베이스 쿼리가 함께 동작하는지, 인증 미들웨어와 라우터가 올바르게 연결되는지, 외부 API 연동이 예상대로 동작하는지 등. Supertest(Node.js), pytest(Python) 등의 도구가 사용된다.