Vibe Coding이 아닌 "Guru-Aided Coding"

Guru-Aided Coding은 GPT를 ‘정답 제조기’가 아닌 비판적 사고를 이끄는 디지털 멘토(Guru)로 삼아, 코드의 의미를 묻고, 다시 쓰고, 자기 것으로 만드는 학습 중심의 개발 방식이에요.

추헌남
추헌남
2025년 8월 7일
7
#AI

📌 한 줄 요약

Guru-Aided Coding은 GPT를 ‘정답 제조기’가 아닌 **비판적 사고를 이끄는 디지털 멘토(Guru)**로 삼아, 코드의 의미를 묻고, 다시 쓰고, 자기 것으로 만드는 학습 중심의 개발 방식이에요.


🙋‍♀️ 왜 하필 ‘Guru’일까요?

우리는 종종 GPT를 자동완성기처럼 쓰곤 해요.
하지만 진짜 실력을 키우고 싶다면, GPT를 “가르쳐주는 존재”, 즉 디지털 멘토로 바라봐야 해요.

‘Guru’는 단순한 선생님이 아니에요.
질문을 던지고, 생각을 확장시키며, 스스로 더 나은 질문을 할 수 있게 도와주는 존재죠.
그래서 이 방식은 단순한 AI 활용이 아니라,
GPT와 함께 사고하고 성장하는 개발 루틴이라 할 수 있어요.


🧠 Guru-Aided Coding이란?

“GPT에게 코드를 요청하되, 그냥 믿지 않는다.
한 줄 한 줄 의심하고, 구조를 묻고, 다시 써본다.”

이 방식은 다음 세 가지 단계를 반복하면서 발전해요:

  1. Prompt – GPT에게 코드를 요청하고 관찰해요.
  2. Taught – “왜 이렇게 짰는지” 이유를 묻고 구조를 해부해요.
  3. Learn – 직접 다시 구현해보고 자기 것으로 만들어요.

🔁 핵심 루프: Prompt → Taught → Learn

단계 행동 성장 포인트
Prompt GPT에게 기능 구현을 요청한다 빠르게 시작할 수 있다
Taught 구조를 분석하고 “왜 이렇게 짰는지” GPT에게 묻는다 설계와 보안, 선택지에 대한 맥락을 이해
Learn 스스로 코드를 다시 짜보며 정리한다 자기화된 코드로 실력과 사고력이 성장

💣 실전 예제: 사용자 입력을 화면에 렌더링하기

🧑‍💻 Step 1. Prompt – “그냥 되는 코드겠지?” 하고 받아들인 첫 번째 코드

GPT에게 이렇게 물어봅니다.

“사용자 입력을 받아 화면에 표시하는 자바스크립트 코드를 짜줘.”

GPT는 이렇게 대답하죠:

function renderComment(input) {
  const container = document.getElementById('comment-box');
  container.innerHTML = `<p>${input}</p>`;
}

처음 보면 별 생각이 안 들 수도 있어요.
“오? 이렇게 간단하게 댓글 기능이 되네?” 하며 넘어가죠.

하지만 코드를 천천히 들여다보면, 아주 기본적인 의문이 생길 수 있어요.

  • 굳이 innerHTML을 써야 할까?
  • 그냥 텍스트를 보여주는 거면 다른 방법은 없을까?
  • 사용자 입력이니까 뭔가 위험할 수도 있지 않을까?

이런 막연한 의심이 바로 Guru-Aided Coding의 시작점이에요.
아무것도 몰라도 괜찮아요. "이 코드 정말 괜찮은가?"라는 질문 하나면 충분해요.


🧠 Step 2. Taught – “이 구조, 안전한가요?” 하고 GPT에게 묻는다

그래서 GPT에게 이렇게 물어봅니다:

“이 코드, 구조적으로 괜찮은가요?”
“혹시 문제 생길 만한 부분이 있을까요?”
“사용자가 <script> 같은 걸 입력하면 어떻게 되죠?”

GPT는 이렇게 답해줘요:

innerHTML은 문자열을 HTML로 해석하기 때문에,
사용자 입력에 <script><img onerror=...> 같은 코드가 들어가면
실제로 브라우저에서 실행될 수 있어요.
이런 보안 위협을 **XSS(크로스사이트 스크립팅)**라고 해요.
안전하게 출력하려면 textContent를 사용하거나, DOM API로 조작하는 게 좋아요.”

이 설명을 듣고 나면, 이렇게 생각할 수 있어요:

  • “단순히 텍스트를 출력한다고 생각했는데, HTML로 해석된다고?”
  • “사용자가 태그를 삽입할 수 있다는 건 진짜 위험할 수도 있겠네.”
  • “앞으론 innerHTML은 조심해서 써야겠다.”

✍️ Step 3. Learn – 다시 짜보며, 내 코드로 만든다

이제 GPT의 설명을 반영해서 코드를 직접 다시 짜봅니다.

function renderComment(input) {
  const container = document.getElementById('comment-box');
  container.textContent = '';
  const p = document.createElement('p');
  p.textContent = input; // 안전하게 텍스트만 삽입됨
  container.appendChild(p);
}

이번엔 innerHTML 대신 textContent를 사용했기 때문에,
입력값이 <script><img>든 전부 그냥 글자로 출력돼요.
이제는 같은 기능을 더 안전하게, 더 책임감 있게 구현한 거죠.

그리고 이런 생각이 자연스럽게 따라와요:

“처음엔 그냥 되니까 좋았는데, GPT랑 대화해보면서 보안까지 고민하게 됐어.”
“앞으로는 그냥 되느냐보다, **어떻게 작동하고 어떤 위험이 있는지를 먼저 생각해야겠구나.”
“다음엔 이렇게 물어봐야겠다. ‘XSS를 방지하면서 사용자 입력을 안전하게 렌더링하려면 어떻게 하죠?’”


🧾 전체 루프 요약

단계 예시 배운 점
Prompt GPT가 innerHTML로 출력하는 코드를 생성 빠르게 구현은 되지만 의심이 생김
Taught 구조적으로 문제 있냐고 물어봄 → XSS 설명을 듣고 이해 보안 감각이 생김
Learn textContent로 안전하게 리팩토링 스스로 고치며 자기화에 성공

💡 Guru-Aided Coding이 전하는 가치

가치 설명
속도 GPT로 빠르게 감을 잡고 시작할 수 있어요
이해 “왜?”를 묻는 과정에서 설계 의도를 내면화해요
성장 질문과 구현의 수준이 점점 깊어져요
자기화 GPT 코드를 그대로 쓰지 않고 내 코드로 바꾸는 과정이 중심이에요

❌ 잘못된 GPT 사용 vs ✅ Guru-Aided 방식

항목 잘못된 방식 Guru-Aided 방식
코드 수용 맹신하고 복붙 질문하며 구조를 점검
사고 깊이 빠르지만 얕음 빠르면서도 깊이 있게
GPT의 역할 자동완성기 디지털 멘토(Guru)

🎯 마무리

Guru-Aided Coding은 코드를 복사하는 방식이 아니라,
GPT를 통해 질문하고, 이해하고, 자기화하는 루틴이에요.

아무것도 몰라도 괜찮아요.
“이 코드, 진짜 괜찮은 걸까?”라는 질문 하나면 충분해요.
그 질문에서 시작해 GPT와 함께 생각하고 성장하는 개발자가 될 수 있어요.


💬 이제 여러분도 GPT에게 단순히 “코드를 짜줘”라고만 묻지 말고,
“왜 이렇게 짰어?” “다른 방법은 없어?” “문제가 생길 수 있진 않을까?”
이렇게 물어보며 진짜 실력 있는 개발자 루틴을 만들어보세요.