버튼은 눌리는데 왜 아무 일도 안 일어날까
동작 트리거 이해하기 – 실행은 ‘언제’ 시작되는가
바이브코딩으로 도구를 만들다 보면
이상하게 가장 당황스러운 순간이 찾아옵니다.
버튼은 분명히 눌립니다.
화면도 멀쩡합니다.
에러 메시지도 없습니다.
그런데 아무 일도 일어나지 않습니다.
처음 이 상황을 겪었을 때는
도구가 고장 난 줄 알았습니다.
프롬프트를 다시 쓰고,
AI에게 “왜 동작을 안 하냐”고 묻기도 했습니다.
하지만 문제는 기능이 아니라
실행 시점, 즉 동작 트리거에 있었습니다.
초보자가 가장 자주 빠지는 오해
바이브코딩을 처음 배우면
이런 식으로 생각하기 쉽습니다.
“이 기능을 만들어달라고 했으니
버튼을 누르면 당연히 실행되겠지.”
하지만 AI는
‘당연히’를 이해하지 않습니다.
AI에게 중요한 것은
이 코드가 언제 실행되어야 하는지입니다.
이 지점을 명확히 하지 않으면
버튼은 만들어지지만
버튼과 동작은 서로 연결되지 않은 상태로 남게 됩니다.
동작 트리거란 무엇인가
동작 트리거는 간단히 말해
실행이 시작되는 계기입니다.
대표적인 트리거는 다음과 같습니다.
-
화면이 열리자마자 자동 실행
-
버튼을 눌렀을 때 실행
-
특정 조건이 만족되었을 때 실행
문제는
초보자가 이 차이를 인식하지 못한 채
“기능”만 설명한다는 점입니다.
그 결과
AI는 실행 시점을 추측하게 되고,
그 추측은 매번 동일하지 않습니다.
실습 ① 자동 실행 vs 버튼 실행의 차이
먼저 가장 기본적인 비교부터 해보겠습니다.
자동 실행 예시
프롬프트에 이렇게 요청했다고 가정합니다.
“숫자를 입력하면 합계를 계산해서 보여주는 화면을 만들어주세요.”
이 경우 AI는
입력값이 바뀔 때마다
자동으로 계산이 실행되도록 만들 가능성이 큽니다.
즉,
화면 변화 = 즉시 실행 구조입니다.
간단한 예제에서는 편하지만,
입력이 많아지면
의도하지 않은 계산이 계속 발생할 수 있습니다.
버튼 실행 예시
이번에는 실행 조건을 명확히 합니다.
“계산 버튼을 누르면
입력된 숫자들의 합계를 계산하여
결과 영역에 표시합니다.”
이 문장이 추가되는 순간
실행 트리거는 명확해집니다.
-
언제 실행되는가 → 버튼 클릭 시
-
무엇을 기준으로 실행되는가 → 현재 입력값
이 차이가
“버튼은 있는데 아무 일도 안 일어나는 문제”를
근본적으로 해결해줍니다.
버튼이 눌리는데 동작하지 않는 진짜 이유
이 현상의 대부분은
버튼이 ‘장식’으로만 존재하기 때문입니다.
-
버튼은 생성되었지만
-
버튼 클릭과 계산 로직이 연결되지 않았고
-
실행 조건이 코드에 정의되지 않은 상태
사람 눈에는
“버튼이 있으니 누르면 되겠지”이지만
AI에게는
“이 버튼이 뭘 하라는 건지” 정보가 없습니다.
실습 ② 조건에 따른 실행 분기 이해하기
한 단계 더 나아가 보겠습니다.
조건이 없는 실행의 문제
버튼을 눌렀을 때
무조건 계산이 실행되도록 만들면
입력이 잘못되어도 그대로 진행됩니다.
이전 회차에서 배운
입력값 검증과도 연결되는 지점입니다.
조건이 있는 실행 구조
프롬프트에 다음 흐름을 추가합니다.
-
버튼 클릭 시
-
입력값이 비어 있지 않다면 계산 실행
-
조건을 만족하지 않으면 안내 메시지 표시
이렇게 조건을 붙이면
실행은 단순한 동작이 아니라
판단을 거친 행동이 됩니다.
이 구조가 들어간 순간
도구는 훨씬 사람처럼 행동하기 시작합니다.
“언제 실행되는가”를 반드시 말로 적어야 하는 이유
바이브코딩에서
실행 시점을 명시하지 않는다는 것은
AI에게 결정권을 넘기는 것과 같습니다.
AI가 대신 판단해주길 기대할수록
결과는 흔들립니다.
반대로
실행 조건을 문장으로 적어주는 순간
결과는 눈에 띄게 안정됩니다.
이것은 코딩 실력의 문제가 아니라
설명 습관의 문제였습니다.
프롬프트 점검용 질문 하나
프롬프트를 보내기 전에
다음 질문을 스스로에게 던져보면 좋습니다.
“이 동작은 언제 실행되는가?”
-
화면이 열리자마자인가
-
버튼을 눌렀을 때인가
-
특정 조건이 만족되었을 때인가
이 질문에 답이 떠오르지 않는다면
프롬프트에도 그 정보가 빠져 있을 가능성이 큽니다.
요약 / 정리
-
버튼이 눌리는데 동작하지 않는 이유는 대부분 실행 트리거 문제입니다
-
바이브코딩에서는 ‘무엇을’보다 ‘언제’를 먼저 정리해야 합니다
-
자동 실행과 버튼 실행은 명확히 다른 구조입니다
-
조건에 따른 실행 분기를 추가하면 도구는 훨씬 안정됩니다
이번회를 지나면서 바이브코딩은
단순히 화면을 만드는 단계를 넘어
동작 흐름을 설계하는 단계로 진입합니다.
이 감각을 익히면
“왜 안 되지?”라는 질문은 줄어들고,
“아, 실행 조건을 빼먹었구나”라는
차분한 점검이 가능해지기 시작합니다.
댓글
댓글 쓰기