정도현 - 로보코 수석 컨설턴트

XY 문제(XY Problem)에 대해서 들어본 적이 있는가? 이 개념은 간단히 말하면, 진짜 문제(X)는 놔두고, 자기가 임의로 생각한 해결책(Y)에 집착하는 현상이다. 예컨대 이런 거다. 자동차가 시동이 안 걸린다고 해서 제대로 확인도 안하고 배터리 문제를 예단해서 “배터리 점프선을 어떻게 연결하느냐"고 묻는 거다. 진짜 문제는 ‘시동이 안 걸린다’는 것이고, 배터리가 문제인지, 연료가 떨어진 건지, 전기 계통인지 모르는 상황에서 Y(점프선 연결)에 매달려 허우적대는 것이다.

이 XY 문제는 바이브 코딩에서도 심심찮게 나타난다. 바이브 코딩은 사람이 AI에 지시를 내리고, AI가 이를 알아듣고 작업을 수행하는 방식으로 이루어진다. 그런데 문제는 사람이 내리는 지시가 항상 명확하지 않다는 거다. 그 결과, AI는 때때로 의도를 오해해 엉뚱한 길로 빠져들기도 한다. 예를 들어보자.

“테스트가 실패하는데 좀 고쳐줘.”

AI가 이 말을 듣고, 정말 테스트가 실패하는 이유를 찾는 게 아니라, 테스트 코드를 무작정 수정해 통과하게 만들려 한다면? 그때부터 일은 꼬이기 시작한다. 테스트를 통과하는 것이 목적이 아니라, 실패 원인을 바로잡는 게 핵심인데 말이다.

왜 이런 일이 벌어질까? AI는 본래 사용자의 편의성을 위해 ‘의도를 추론’ 하도록 훈련되었기 때문이다. 덕분에 간단한 말만 해도 알아서 척척 해결하는 신통한 모습을 보여주지만, 종종 정확하지 않은 지시 앞에선 제멋대로 방향을 잡아버리는 사고가 터지기도 한다.

그렇다고 매번 작업마다 AI에게 세세히 일일이 설명하거나, AI가 끊임없이 되묻게 놔둔다면 얼마나 성가시겠는가? 그래서 바이브 코딩에서 XY Problem을 다루는 가장 현명한 방법은 AI가 의도를 제대로 이해했는지 확인하는 프로세스를 규칙 파일에 추가하는 것이다.

이렇게 하면 AI가 지시를 수행하기 전에 사용자 의도를 충분히 파악했는지 한번 더 점검하고, 확신이 없을 경우 되묻도록 할 수 있다. 아래는 그 규칙의 간단한 예시다.

규칙: 작업의 의도 명확성 확인

- 사용자의 지시를 받으면 작업 전에 AI는 지시의 핵심 의도를 요약하여 사용자에게 확인을 요청한다.
- 사용자가 확인을 해주면 작업을 진행하고, 그렇지 않다면 다시 질문하여 정확한 의도를 명확하게 한다.

예시:

사용자: "빌드의 테스트 실패를 해결해줘."

AI: "테스트 코드 자체를 수정하여 빌드를 통과시키는 것이 아니라, 실패 원인을 찾아 원본 코드의 오류를 바로잡아 테스트를 통과시키도록 하는 것이 맞습니까?"

사용자: "그래. 진행시켜."

이렇게만 하면 XY 문제와 관련된 트러블을 현저히 줄일 수 있다. 사람과 AI 사이의 오해와 엉뚱한 길로 빠지는 시행착오도 최소화될 것이다. 나는 바이브 코딩을 항상 AI와 함께 페어 프로그래밍을 한다는 마음가짐으로 접근하라고 늘 강조한다. 그래서 로보코에서 추구하는 바이브 코딩의 핵심 전략은 어떻게 하면 최소한의 노력으로 ‘의도’를 명확하게 전달할 수 있는가 이다.