바이브 코딩 사전

러버덕 디버깅

바이브 코딩 사전

러버덕 디버깅

문제를 제3자(또는 무생물)에게 상세히 설명하는 과정에서 스스로 해결책을 발견하는 디버깅 기법이다. Andrew Hunt와 David Thomas의 1999년 저서 『The Pragmatic Programmer』에서 대중화된 개념으로, 책상 위의 고무 오리(rubber duck)에게 코드를 한 줄씩 설명하다 보면 논리적 오류를 스스로 깨닫게 된다는 것이 핵심이다. AI 시대에 이 기법은 새로운 차원으로 진화했다. 고무 오리 대신 AI가 '설명을 듣는 상대'가 되었으며, AI는 수동적으로 듣기만 하는 고무 오리와 달리 '이해한 바로는 여기서 null이 반환될 수 있는데, 그 경우를 처리하고 있나요?'와 같은 유용한 질문이나 단서를 제공할 수 있다. AI에게 '이 함수가 왜 null을 반환하는지 모르겠어. 내가 이해한 데이터 흐름을 설명해볼게…'라고 말하면서 문제를 정리하는 과정에서, 설명하는 행위 자체가 사고를 구조화하여 문제의 근본 원인을 발견하게 된다. 러버덕 프롬프팅(Rubber Duck Prompting)은 이를 학습 목적으로 확장한 개념이다.

예시

AI에게 '이 함수가 왜 null을 반환하는지 모르겠어. 데이터 흐름을 설명해줘'라고 하다가 스스로 문제를 파악.

카테고리

테스트·디버깅

난이도

basic

태그

러버덕 · 설명디버깅

함께 읽기

연관 용어

테스트·디버깅

단위 테스트

개별 함수, 메서드, 모듈이 예상대로 올바르게 동작하는지 검증하는 가장 작은 범위의 자동화된 테스트이다. '단위(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) 등의 도구가 사용된다.

테스트·디버깅

엔드투엔드 테스트

실제 사용자의 관점에서 전체 애플리케이션 흐름을 처음(End)부터 끝(End)까지 시뮬레이션하여 검증하는 최상위 레벨의 테스트이다. 실제 브라우저를 자동 제어하여 클릭, 입력, 네비게이션 등의 사용자 행동을 재현하고, 전체 시스템(프론트엔드 → API → 데이터베이스 → 외부 서비스)이 통합적으로 올바르게 동작하는지 확인한다. 바이브 코딩에서 E2E 테스트는 '바이브 체크(Vibe Check)의 자동화된 버전'이라고 볼 수 있다. 인간이 수동으로 브라우저에서 확인하는 것을 자동화한 것이며, AI가 전체 앱을 생성한 후 E2E 테스트로 사용자 시나리오를 검증하면 바이브 체크보다 훨씬 체계적이다. 테스트 시나리오 예시: '회원가입 → 이메일 인증 → 로그인 → 상품 검색 → 장바구니 추가 → 결제 → 주문 확인' 전체 흐름. Playwright(Microsoft, 크로스 브라우저), Cypress(개발자 친화적) 등이 대표적 도구이며, AI에게 'Playwright로 로그인 → 대시보드 접근 E2E 테스트를 작성해줘'라고 요청할 수 있다.