본문 바로가기
카테고리 없음

바이브코딩 입문자가 이해하면 무조건 좋은 프로그램 개념 [1]

by tamasblog 2026. 4. 10.

1. 공부를 해야겠다고 마음먹었습니다


AI한테 "이거 만들어줘" 하면 코드가 뚝딱 나오는 세상이에요. 저도 그렇게 Antigravity랑 Claude Code 써가면서 프로그램도 만들었어요.

 

근데 어느 날 작업 도중에 오류가 하나 났는데... 기분이 이상했어요.

 

AI가 "이 부분에서 리스트를 순회하다가 인덱스 오류가 났다"고 설명해 주는데, 저는 리스트가 뭔지, 순회가 뭔지를 몰랐던 거예요. 그냥 "고쳐줘"라고 했고 고쳐지긴 했는데, 같은 문제가 조금 다른 모양으로 또 나타났어요.

 

그때 느꼈어요. AI는 자신이 만들어주는 코드를 저에게 문장으로 설명해주지만, 내가 그 문장을 읽을 줄 알아야 제대로 쓸 수 있겠다고요.

 

사실 이런 답답함은 저만 겪은 게 아닐 거예요. AI 툴을 쓰다 보면 묘한 벽을 느껴요. 코드가 생성되는 건 쉬운데, 그게 왜 안 되는지, 어디서 멈췄는지를 AI한테 제대로 설명을 못 하는 거예요. 뭔가 이상한데 어떻게 말해야 할지 모르는 상태랄까요.

 

저는 그게 코딩 실력의 문제라고 생각했는데, 알고 보니 개념의 문제였어요. 코딩은 어차피 AI가 다 해주니까 상관없지만, 그 프로그램이 어떤 구조로 돌아가는지를 모른 채 계속 달리고 있었던 거죠.

 

2. 프로그램의 뼈대, 4가지만 알면 된다


그래서 찾아보다가 알게 된 게 있어요. 프로그램은 기본적으로 "데이터를 받아서, 처리하고, 내보내는" 구조인데, 그 안에서 거의 모든 걸 처리하는 핵심 도구가 딱 4가지라는 거예요. 변수, 리스트, 반복문, 조건문. 이 4개만 제대로 머릿속에 잡으면 코드를 '읽을 수 있는 상태'가 된다는 말에 혹해서 Antigravity에게 계속 물어보며 공부해봤어요.

 

변수: 상자에 이름표 붙이기

처음 '변수라는 말을 들었을 때 왠지 어렵게 느껴졌어요. 근데 설명을 들으니까 그냥 이름표 붙은 상자예요. 데이터를 아무데나 던져두면 나중에 못 찾으니까, 이름을 붙여서 메모리에 저장해두는 것.

 

예를 들면 이런 거예요.

  • product_name = "순면 티셔츠" → "상품명"이라는 상자에 "순면 티셔츠"를 넣은 것
  • price = 15000 → "가격"이라는 상자에 15000을 넣은 것

이걸 보고 나니까, 제가 만든 툴에서도 처음 입력하는 도매 사이트 주소가 target_site_url이라는 변수에 담겨 있던 게 갑자기 눈에 들어왔어요. "아, 저게 그 상자구나." 하고요.

'변수' 이름표 붙은 상자

 

리스트: URL 기차 만들기

도매 사이트에서 상품 주소를 긁어올 때 하나만 가져오는 건 아니잖아요. 수십, 수백 개씩 가져오는데, 이걸 하나하나 변수로 만들면 말이 안 되죠. 그래서 쓰는 게 리스트예요.

 

기차에 비유하면 딱 맞아요. 기차 칸마다 데이터 하나씩 타고 있는 거예요. urls = ["url1", "url2", "url3"...] 이렇게요. 기차니까 순서도 있고, 나중에 "첫 번째 칸 꺼내줘", "세 번째 칸 꺼내줘"도 됩니다.

 

여기서 처음으로 눈이 좀 트였어요. 제 툴에서 crawled_urls가 뭔지 몰랐는데, 사이트에서 긁어온 URL들을 한데 담아둔 기차였던 거더라고요.

'리스트' 상자들을 줄세운 기차

 

반복문: 컴퓨터의 유일한 초능력

솔직히 이게 제일 신기했어요. 사람은 같은 걸 100번 반복하면 지치는데, 컴퓨터는 그게 없잖아요. 반복문은 그 특성을 활용하는 거예요.

 

리스트에서 데이터를 하나씩 꺼내서 같은 작업을 쭉 돌리는 것. 기차에 비유하면 "첫 번째 칸부터 마지막 칸까지 내리면서, 각 역마다 이미지 다운로드해!" 하는 명령이에요.

 

for url in crawled_urls:
    이미지 다운로드하기

 

겨우 이거에요. 이 내용가지고 수동으로 100번 할 일을 대신한다는 거죠. 해내는 기능에 비해 너무 짧아서 오히려 "이게 다야?" 소리가 나왔어요.

'반복문' 지치지 않는 알바생

 

조건문: 프로그램이 멈추지 않으려면

이건 제가 직접 경험한 거라서 더 와닿았어요. 제 툴이 중간에 이상한 행동을 하는 경우가 있었는데, 알고 보면 거의 다 이 조건문 처리가 빠진 케이스였어요.

 

예를 들면 이런 거예요. 상세 페이지를 하나씩 돌다가 이미지가 없는 페이지를 만나면 그냥 뻗어버리는 거예요. 거기서 조건문이 필요한 거였어요.

 

"만약 이미지가 있으면 저장하고, 없으면 '이미지 없음'이라고 적고 다음으로 넘어가."

 

이렇게 분기를 만들어줘야 프로그램이 예외 상황에서도 멈추지 않고 계속 돌아가요. 이외에도 따로 조건을 설정하지 않은 상품을 만났을 때도 마찬가지였고요.

'조건문' 똑똑한 판단 기준

 

3. 공부하고 나서 실제로 달라진 것


솔직히 말하면, 처음에 이걸 공부하면서 완전히 이해됐다기보다는 "이런 게 있구나" 정도로 받아들였어요. 근데 그것만으로도 달라지는 게 있었어요.

 

이제 거의 2주 정도 사용해가는데, 이전이랑 달리 AI한테 질문하는 방식 자체가 바뀌었어요. 예전엔 "오류가 났어요"였다면, 지금은 "크롤링 URL 리스트 돌다가 특정 조건에서 멈추는 것 같은데"라고 물어볼 수 있게 된 거예요.

 

AI 답변도 훨씬 정확하게 돌아왔어요. 같은 문제인데 해결까지 걸리는 대화 횟수가 눈에 띄게 줄었달까요. 대략 5번씩 주고받던 게 2번 안에 끝나는 경우가 많아졌어요.

 

막혔던 순간 하나

그래도 초반엔 좀 헤맸어요. 이해했다고 생각했는데, 막상 AI한테 "내 코드에서 반복문이 어디야?"라고 물었더니 설명이 너무 길게 나와서 오히려 멘붕이 온 거예요.

 

"for 루프가 이 라인에서 시작해서 저 라인까지 이어지고, 내부에서는 이런 작업이 수행되며, 외부 변수를 이렇게 참조하고..."

머릿속에 있는 기차 비유랑 완전히 달라서 잠깐 "내가 잘못 이해한 건가?" 싶었어요. 그래서 다시 물어봤어요.

 

"초보자인 나한테 비유로만 설명해줘. 기차 예시 같은 걸로."

그랬더니 훨씬 이해가 됐어요. AI한테 물어볼 때 "어떻게 설명해줘"라는 조건을 붙이는 게 은근히 중요하다는 걸 그때 처음 알았어요.

 

그리고 그렇게 이해하려고 노력하다보니, 문득 엑셀의 함수를 사용하는 것 같다는 생각이 들었어요. 이 글을 보고도 이해가 쉽지 않으신 분들은 엑셀 함수의 역할을 떠올리며 이해하시면 조금 더 수월할거예요. 코딩의 개념은 의외로 우리가 흔히 접하고 있었을지도 모르겠다는 생각도 드네요.

 

4. 이런 분들한테 맞는 글이에요


읽어보시면 좋을 분:

  • AI로 무언가 만들고 있는데 오류가 나면 그냥 "고쳐줘"만 할 수 있는 분
  • 코딩 공부를 시작하기엔 시간이 없고, 그냥 쓰면 되는 거 아닌가 싶은 분
  • 바이브코딩 중인데 뭔가 더 잘 쓰고 싶다는 막연한 느낌이 있는 분

이 글이 안 맞을 수 있는 분:

  • 이미 파이썬 기본 문법을 알고 있는 분
  • 개발자 수준의 코드 이해를 원하는 분

 

5. 총평


 

이해 난이도 ★★★★★ 비유가 잘 맞아서 생각보다 금방 됐어요
실전 체감 효과 ★★★★☆ 오류 대화 횟수가 확실히 줄었어요
AI 활용 향상도 ★★★★★ 질문이 달라지니까 답변도 달라지더라고요
시간 대비 가성비 ★★★★☆ 개념 4개 이해하는데 30분밖에 안 걸렸어요

 

6. 바로 따라해보기


지금 AI 툴로 만든 코드가 있다면, 아래 문장을 그대로 복사해서 물어보세요.

 

"지금 내 코드에서 '리스트'가 쓰인 부분과 '반복문'이 쓰인 부분을 찾아서, 각각 어떤 데이터를 처리하고 있는지 초보자인 나에게 비유로 설명해 줘."

 

코드를 통째로 붙여넣고 이 질문 하나면, AI가 코드를 '문장'으로 읽어줘요. 처음엔 낯설어도, 이게 쌓이면 대화 품질이 달라지기 시작해요.

 

 

Q & A


Q1. 파이썬을 전혀 모르는데 이 내용이 도움이 될까요?
저도 파이썬 코드는 몰라요. 근데 이 4가지는 코드를 쓰기 위한 게 아니라 코드를 이해하기 위한 거라서, 코드를 몰라도 이해 위주로 접근하면 충분해요. 바이브코딩은 문법부터 시작하는 것보다 이게 더 빠른 것 같아요.

 

Q2. AI가 다 해주는데 개념 공부가 의미 있나요?
솔직히 저는 AI 툴 쓰는 맥락에서 공부했어요. AI한테 더 잘 물어보기 위한 배경지식으로 접근하는 게 동기부여도 되고, 아무것도 모르니 기능을 추가하거나 오류를 수정하는데 AI가 하자는대로만 해야하는 답답함도 해소하고 싶고요.

 

Q3. 이거 따로 공부해야 하나요, 아니면 AI한테 물어봐도 돼요?
저는 둘 다 했어요. 정리된 글 하나 읽고, 모르는 부분은 AI한테 물어보는 식으로요. "이게 뭔지 비유로 설명해줘"라고 하면 꽤 잘 해줘요.

 

Q4. 이걸 알고 나서 코드 짜는 것도 할 수 있게 되나요?
짜는 건 또 다른 얘기예요. 저는 아직 직접 짜지는 않아요. 근데 AI가 만들어준 코드가 뭘 하고 있는지 파악하는 건 훨씬 잘 되더라고요. 그것만으로도 당장은 충분해요.

 

Q5. 오류가 날 때 이걸 알면 어떻게 달라져요?
예전엔 오류 메시지를 그냥 복붙해서 "이거 왜 났어요?"라고 물었어요. 지금은 "리스트 순회 중 조건 처리 빠진 것 같은데 이 부분 맞아요?"처럼 물어볼 수 있어요. AI가 훨씬 정확하게 답해줘요.