← 학습 노트 목록으로
🎭 Week 8 · Vibe Coding ①

공연으로 이해하는 Frontend / Backend — 비전공자를 위한 Vibe 코딩 입문


🎭 쉬운 비유: 웹 서비스 = 한 편의 공연

오늘부터 시작하는 Vibe 코딩 시리즈는 "AI에게 의도를 말로 설명해서 직접 서비스를 만드는" 방법을 다뤄요. 그런데 AI에게 "이런 거 만들어줘"라고 시키려면, 먼저 "이런 거"가 어떻게 구성되어 있는지는 알고 있어야 해요.

오늘은 그 첫 단추로, 비전공자도 손에 잡을 수 있는 공연 비유로 시작해 볼게요.

🎟️ 뮤지컬 한 편을 떠올려봐요

뮤지컬을 본 적 있죠? 표를 끊고 객석에 앉으면, 무대 위에서 화려한 일들이 벌어져요. 배우가 노래하고, 조명이 바뀌고, 무대 세트가 회전하고, 안개가 깔리죠.

하지만 그게 전부는 아니에요. 무대 뒤편 백스테이지에서는 더 많은 일이 일어나고 있어요. 음향 엔지니어가 콘솔을 만지고, 의상 담당이 다음 장면 옷을 챙기고, 무대 감독이 헤드셋으로 큐를 보내고, 소품 담당이 창고에서 필요한 물건을 꺼내 오고요.

이 둘이 완벽하게 호흡을 맞춰야 한 편의 공연이 완성돼요. 무대만 있어도 안 되고, 백스테이지만 있어도 안 돼요.

🌐 웹/앱 서비스도 정확히 똑같이 생겼어요

웹사이트나 앱은 한 편의 공연과 구조가 완전히 같아요.

   🎤 무대 (Frontend / FE) ─── 관객(사용자)이 보고 만지는 모든 것
   ┌──────────────────────────────────────────────┐
   │   화면·버튼·메뉴·애니메이션·텍스트·이미지       │
   │   "내가 클릭하고 입력하는 그것"                │
   └──────────────────────────────────────────────┘
                      ↑  📻 무전기 / 큐 사인
                      │     (= API 요청·응답)
                      ↓
   🎬 백스테이지 (Backend / BE) ─── 보이지 않는 모든 것
   ┌──────────────────────────────────────────────┐
   │   서버·데이터베이스·로직·인증·계산             │
   │   "관객은 모르지만 공연을 가능하게 하는 것"     │
   └──────────────────────────────────────────────┘
          

🎭 한 줄 비유: 웹 서비스 = 한 편의 공연. 관객이 보는 무대(FE)와 보이지 않는 백스테이지(BE)가 무전기(API)로 끊임없이 신호를 주고받으며 하나의 공연을 만들어요.

이번 자료에서 다룰 모든 내용은 이 비유 위에 쌓여요. 헷갈리면 언제든 이 그림으로 돌아오면 돼요.


🎬 Vibe 코딩이란? — AI가 코드를 대신 짜주는 시대

Vibe 코딩(Vibe Coding)은 2024년 후반부터 본격적으로 퍼지기 시작한 새로운 개발 방식이에요. 한 줄로 정리하면 이래요.

💡 Vibe 코딩 = 개발자가 코드를 한 줄씩 직접 쓰는 게 아니라, "이런 거 만들어줘"라고 AI에게 말로 설명하면 AI가 코드를 대신 짜주는 방식. 사람은 큰 그림·의도·검수에 집중하고, 디테일은 AI가 채워요.

🤔 왜 지금 Vibe 코딩을 알아야 하나요?

세 가지 변화가 동시에 일어나고 있어요.

  1. 속도가 5~10배 빨라졌어요 — 같은 기능을 만드는 데 예전엔 1주일 걸리던 게 1~2일로 줄어요. 회사가 새 도구를 빨리 시험할 수 있다는 뜻.
  2. 비전공자도 직접 만들 수 있게 됐어요 — 코드를 외울 필요 없이, 한국어로 설명만 정확히 하면 작동하는 서비스가 나와요. 리서치·기획·디자인 직군도 "프로토타입은 직접" 시대.
  3. AX팀 업무의 다음 단계 — Week 5~7에서 배운 n8n 자동화는 "이미 만들어진 도구들을 잇는" 단계였어요. Vibe 코딩은 거기서 한 발 더 나가, 도구 자체를 직접 만드는 단계예요.

🛠️ 어떤 도구를 쓰나요? (이름만 미리)

오늘은 이름만 살짝 보고, 자세한 사용법은 다음 주(시리즈 ②)부터 직접 만져볼 거예요.

  • Cursor — 가장 대표적인 Vibe 코딩 IDE
  • Claude Code — 터미널에서 대화하며 코드를 만드는 도구

그리고 도구는 아니지만 함께 알아두면 좋은 한 가지가 있어요.

  • Streamlit — 🐍 무대와 백스테이지를 한 파일에 합쳐주는 Python 라이브러리 (도구가 아니라 "부품"). Cursor 같은 도구가 만드는 결과물 중 비전공자에게 가장 친숙한 형태.

🌉 그런데 AI에게 정확히 시키려면…

여기서 중요한 깨달음 하나. AI는 무엇이든 만들 수 있는 마법 도구처럼 보이지만, 여러분이 "무엇을 만들지" 정확히 말해줘야 작동해요. "예쁘게 만들어줘" 같은 두루뭉술한 말로는 안 돼요.

예를 들어 "회사 행사 신청 페이지 만들어줘"라고 했을 때, AI가 잘 작동하게 하려면 이렇게 분리해서 말할 줄 알아야 해요.

  • 👀 화면(무대 / FE)에는 — 행사 제목, 신청 폼, 제출 버튼, 완료 메시지가 보였으면 좋겠어
  • 🔐 뒤(백스테이지 / BE)에서는 — 제출한 신청 정보를 데이터베이스에 저장하고, 관리자에게 이메일을 보내줘

이게 안 되면 AI는 "예쁜 폼"만 만들고 끝나거나, 반대로 "데이터만 저장하고 화면이 없는" 결과를 내놓을 수 있어요. 그래서 FE/BE를 분리해서 사고할 줄 아는 게 Vibe 코딩의 첫 번째 기술이에요.

이게 오늘 자료의 핵심 메시지예요. 이제 FE와 BE 각각을 자세히 들여다볼 시간이에요.


🎤 Frontend = 무대 위에서 일어나는 모든 것

Frontend(프론트엔드, FE)관객(사용자)이 직접 보고, 듣고, 만지는 모든 것이에요. 공연으로 치면 무대 위에서 벌어지는 모든 일이죠.

🎬 무대 위에는 무엇이 있나요?

공연의 어떤 부분 웹/앱에서는 구체적 예시
🎭 배우 컴포넌트 / 요소 버튼, 입력칸, 메뉴, 카드
🏛️ 무대 세트 레이아웃 헤더, 사이드바, 본문, 푸터 배치
💡 조명 · 음향 스타일 · 애니메이션 색·폰트·간격·hover 효과
📜 대사 텍스트 콘텐츠 제목, 설명문, 버튼 라벨
🎩 배우의 즉흥 연기 인터랙션 버튼 클릭 시 메뉴 펼침, 폼 유효성 검사

🛠️ 무대를 만드는 세 가지 도구

비전공자도 이 세 이름은 한 번씩 들어봤을 거예요. 외울 필요는 없고, 무엇을 담당하는지만 비유로 잡아두면 충분해요.

  • HTML 📜 — 대본. "여기엔 제목, 아래엔 버튼, 그 아래엔 입력칸"이라고 무대 구성을 적은 문서.
  • CSS 🎨 — 의상과 조명. 같은 대본이라도 의상·조명·세트 색이 바뀌면 분위기가 완전히 달라지죠. 색·폰트·간격·테두리를 모두 CSS가 결정해요.
  • JavaScript 🎭 — 배우의 즉흥 연기. 관객이 무언가 하면 그에 반응해서 무대 위 무언가가 바뀌어요. "버튼 누르면 메뉴 펼치기"가 대표 예시.

Vibe 코딩 도구를 쓰면 이 셋을 직접 손으로 쓸 필요가 없어요. "헤더에 검색창 하나 넣어줘"라고 한국어로 말하면 AI가 알아서 HTML+CSS+JavaScript를 짜요. 우리가 알아야 할 건 "무엇을 어디에 둘지"예요.

🎤 Frontend 한 줄 요약: 무대 위에서 관객이 보고 만지는 모든 것 = 화면. "눈에 보이면 다 FE다"가 가장 빠른 기준이에요.


🎬 Backend = 백스테이지에서 일어나는 모든 것

Backend(백엔드, BE)관객은 못 보지만 공연을 가능하게 만드는 모든 것이에요. 무대 뒤편 백스테이지에서 일어나는 일이 BE예요.

🎬 백스테이지에는 누가, 무엇이 있나요?

백스테이지의 누가/무엇 웹/앱에서는 구체적 예시
🎬 연출가 · 무대 감독 서버 로직 요청을 받아 어떻게 처리할지 결정
📦 소품 창고 데이터베이스(DB) 회원 정보, 주문 내역, 게시글 저장
📻 인터컴(헤드셋) API 무대와 백스테이지가 신호 주고받는 길
🛡️ 보안 요원 인증(Authentication) 로그인 확인, 권한 검사
🧮 회계 담당 비즈니스 로직 "포인트 +1000 적립" 같은 계산·규칙

📦 데이터베이스 = "공연이 끝나도 남는 소품 창고"

BE 중에서 가장 자주 듣게 될 단어가 데이터베이스(Database, DB)예요. 별것 아니에요. "공연이 끝나고 다음 날에도 그대로 남아 있는 소품 창고"라고 생각하면 돼요.

  • 회원이 가입한 정보 → 내일도 모레도 그대로 있어야 함 → 창고에 보관
  • 주문한 내역 → 1년 뒤에도 조회할 수 있어야 함 → 창고에 보관
  • 오늘 클릭 한 번 → 페이지 닫으면 사라져도 됨 → 창고 보관 X

이름을 종종 듣는 MySQL · PostgreSQL · MongoDB · Supabase · Firebase 같은 단어들은 모두 "소품 창고 브랜드"라고 보면 돼요. 종류는 많지만 하는 일은 같아요 — 오래 남겨야 할 데이터를 안전하게 보관.

🌐 백스테이지 직원들이 쓰는 언어 (= 서버 언어)

FE에 HTML·CSS·JavaScript가 있다면, BE에는 서버를 움직이는 프로그래밍 언어가 있어요. 이름만 알아두면 충분해요.

  • Node.js (JavaScript의 서버 버전)
  • Python (AI·데이터 분야에서 압도적)
  • Java · Go · Ruby (대형 서비스에서 자주)

이것도 외울 필요 없어요. Vibe 코딩 도구가 "어떤 언어로 만들까요?"라고 물어보면, 잘 모를 땐 Python이나 Node.js를 고르면 대체로 안전해요. 다음 주에 실제로 다뤄볼 거예요.

🎬 Backend 한 줄 요약: 백스테이지에서 일어나는 모든 일 = 데이터 저장 + 계산 + 보안. "눈에 안 보이는데 꼭 필요한 건 다 BE다"가 빠른 기준이에요.


📡 FE ↔ BE 통신 = 무전기와 큐 사인

무대와 백스테이지는 따로 있지만, 끊임없이 서로 신호를 주고받아야 공연이 굴러가요. 음향 큐, 조명 큐, 의상 교체 신호… 모두 헤드셋·무전기로 오가죠.

웹/앱에서도 똑같아요. FE와 BE도 끊임없이 무전을 보내는데, 그 무전 시스템 이름이 바로 API예요. Week 3에서 식당 웨이터 비유로 한 번 다룬 그 API 맞아요.

📻 실제로 어떤 신호가 오가는지 (한 장면)

여러분이 인스타그램에서 어떤 게시물에 ❤️ 좋아요를 눌렀다고 해볼게요. 그 1초 동안 무전기로는 이런 대화가 오가요.

   🎤 무대 (FE / 내 핸드폰 화면)
   ──────────────────────────────
   "방금 사용자가 게시물 12345에 ❤️ 좋아요를 눌렀다.
    백스테이지! 이거 처리해줘!"
                                       📻 무전 송신 (Request)
                                       ↓
   🎬 백스테이지 (BE / 인스타 서버)
   ────────────────────────────────────────
   1. 인터컴(API)으로 요청 수신
   2. 보안 요원이 "정말 이 사용자가 맞나?" 확인
   3. 소품 창고(DB)에 "사용자 X가 게시물 12345에 좋아요 눌렀음" 기록
   4. 게시물의 좋아요 카운트를 +1
   5. 결과를 다시 무대로 전송
                                       📻 무전 응답 (Response)
                                       ↓
   🎤 무대 (FE / 내 핸드폰 화면)
   ─────────────────────────────
   "OK, 받았다." → ❤️ 아이콘이 빨갛게 칠해지고
                  좋아요 숫자가 +1로 표시
          

📡 무전 약속어 = JSON

무전기로 막말로 떠들면 알아듣지 못해요. 미리 약속된 형식으로만 말해야 해요. 그 약속 형식의 이름이 JSON(제이슨)이에요.

외울 필요는 없어요. AI에게 코드를 시킬 때 "이 요청은 JSON으로 받게 해줘" 같은 한 문장만 자연스럽게 등장한다는 정도만 알아두세요. AI가 알아서 약속어로 번역해줘요.

📡 FE ↔ BE 통신 한 줄 요약: 무대와 백스테이지가 무전기(API)로 끊임없이 신호를 주고받음. 신호 양식은 JSON이라는 약속어. Week 3 "식당 웨이터" 비유와 같은 이야기.


🏠 우리 학습 노트 사이트 뜯어보기

지금 보고 있는 이 사이트가 어떻게 만들어졌는지 무대-백스테이지로 분해해 볼게요. 가장 좋은 예시는 가까이 있는 거잖아요.

🎤 이 사이트의 무대 (FE)

파일 공연으로 치면 역할
index.html 🏛️ 메인 무대 세트 홈페이지의 큰 틀과 32주 타임라인 자리
study-notes.html 🎭 두 번째 무대 학습 노트 목록 페이지
week-N/{topic}-guide.html 📜 각 회차 대본 지금 여러분이 읽고 있는 이 페이지
styles.css 💡 조명 · 의상 어두운 배경·시안 액센트·폰트·간격
data/weeks.js 📋 큐 시트(공연 진행표) 32주차 정보(날짜·제목·태그·링크)가 줄줄이 적힌 데이터

🎬 이 사이트의 백스테이지 (BE)

놀랍게도 이 사이트는 백스테이지가 거의 없어요. Vercel이라는 호스팅 서비스가 정적 파일들을 그대로 전 세계에 뿌려주는 구조라서, 별도의 서버 로직이나 데이터베이스가 없어요.

  • ❌ 회원 가입 없음 → 인증 BE 필요 없음
  • ❌ 댓글 없음 → 댓글 저장 DB 필요 없음
  • ❌ 검색 없음 → 검색 서버 필요 없음
  • ✅ HTML/CSS/JS 파일 + 데이터 파일만 있으면 끝

💡 왜 일부러 BE를 안 만들었나? 이 사이트는 "주차별 정보만 보여주면 끝"이라서 의도적으로 단순하게 만들었어요. 비전공자가 Vibe 코딩으로 처음 만들 사이트는 대부분 이 정도 규모예요. BE 없이도 충분히 멋진 결과물이 나와요.

"댓글 기능을 넣자"가 되는 순간 BE가 필요해지고(댓글을 어딘가 저장해야 하니까), "로그인을 넣자"가 되면 BE가 더 무거워지죠. 시작은 가볍게, 필요해지면 BE를 키워간다가 핵심 전략이에요.


🛠️ Vibe 코딩 도구 2종 미리보기 (Cursor · Claude Code)

오늘은 이름과 느낌만 잡고 가요. 다음 주(시리즈 ②)부터 직접 만져볼 거예요. 그리고 한 가지 짚고 갈 점 — 이 두 가지는 모두 "AI에게 말로 시켜 코드를 받는" 코딩 도구예요. 어떤 언어/프레임워크로 만들지는 별개 선택이에요(다음 섹션의 Streamlit이 그 예시).

난이도 ⭐⭐⭐ · 가장 대표적인 Vibe 코딩 IDE

① 🖥️ Cursor — 무대와 백스테이지를 동시에 그릴 수 있는 화이트보드

Cursor는 VS Code(전통적 코드 편집기)에 ChatGPT/Claude를 박아 넣은 도구예요. 화면 한쪽에는 코드 파일들이, 다른 쪽에는 AI와 대화창이 있어요.

  • 강점: FE 파일·BE 파일을 모두 한 화면에서 보면서 AI에게 변경 요청 가능
  • 적합한 사람: 코드를 직접 보면서 이해도 같이 키우고 싶은 사람
  • 비전공자 진입: 처음엔 화면이 복잡해 보이지만, "Chat" 패널만 쓰면 됨
난이도 ⭐⭐ · 터미널 기반, 큰 변경에 강함

② ⌨️ Claude Code — 타이핑으로 무대 감독에게 지시

Claude Code는 터미널(검은 화면) 안에서 Claude와 대화하며 코드를 만드는 도구예요. 우리 AX팀 자료를 만들 때도 자주 등장한 그 도구.

  • 강점: 큰 변경·여러 파일 동시 수정·자동화에 강함
  • 적합한 사람: 화면보다 텍스트가 편한 사람, 큰 단위로 시키는 게 익숙한 사람
  • 비전공자 진입: "검은 화면 = 무섭다"가 첫 장벽. 하지만 익숙해지면 가장 빠름

📊 두 도구 한눈에 비교

기준 Cursor Claude Code
인터페이스 그래픽 (코드 + 채팅 패널) 터미널 (텍스트만)
러닝커브 ⭐⭐⭐ 중간 (화면이 복잡해 보임) ⭐⭐ 쉬움(익숙해지면)
강점 FE·BE 자유롭게, 코드 직접 확인 큰 변경·다파일·자동화
비전공자 적합도 ⭐⭐⭐ ⭐⭐
이번 시리즈 등장 시점 시리즈 ② 시리즈 ②

🎯 도구 선택 한 줄 가이드: "코드 화면을 직접 보면서 안심하고 진행하고 싶다" → Cursor. "큰 단위로 한 번에 시키고, 터미널이 어색하지 않다" → Claude Code. 둘 다 무료 체험이 있어서 한 번씩 만져보고 본인에게 맞는 쪽을 고르는 게 답이에요.


🐍 보너스: Streamlit — FE/BE 합쳐주는 Python 라이브러리

여기서 한 가지 짚고 갈 게 있어요. 위 두 도구(Cursor·Claude Code)와는 완전히 다른 카테고리의, 그러나 비전공자에게 정말 친숙한 존재가 있어요. 이름은 Streamlit이에요.

⚠️ 먼저 오해 풀기: Streamlit은 Cursor·Claude Code 같은 "Vibe 코딩 도구"가 아니에요. Python으로 작성하는 라이브러리(= 미리 만들어진 프로그래밍 부품 모음)예요. 둘의 관계는 — Cursor(도구)에게 "Streamlit(라이브러리)으로 매출 대시보드 만들어줘"라고 시킨다. 도구가 라이브러리를 써서 결과물을 만드는 구조죠.

🎭 왜 굳이 Streamlit이 특별한가요?

앞에서 우리는 "FE와 BE를 분리해서 사고하라"고 배웠어요. 그런데 Streamlit은 이 분리를 자동으로 합쳐주는 라이브러리예요. Python 파일 하나에 코드를 쓰면, Streamlit이 알아서 무대(웹 화면)와 백스테이지(데이터 처리)를 동시에 만들어 줘요.

비유로 말하면 "1인 극단 키트"예요. 배우·연출·소품 담당이 모두 한 사람이어도 작은 공연을 무대에 올릴 수 있게 해주는 휴대용 무대 세트 같은 거죠.

실제 코드가 얼마나 짧은지 보세요 (외울 필요 없어요, 짧다는 사실만 인지하면 충분).

   import streamlit as st

   st.title("내 분석 도구")
        

딱 2줄이 곧 "무대에 제목 띄움 + 백스테이지에서 웹 화면을 그려 사용자에게 전달"을 동시에 처리해요. 같은 일을 일반 방식(HTML + CSS + 서버 코드)으로 하려면 코드량이 5~10배로 늘어요.

🛠️ Streamlit은 언제 쓰면 잘 맞나요?

  • 데이터 시각화 도구 — 엑셀로는 부족한 인터랙티브 대시보드를 빠르게
  • AI 데모 — 챗봇·이미지 분석·요약기 같은 AI 결과를 사용자에게 보여주는 화면
  • 회사 내부 도구 — 마케팅·리서치 팀이 자체적으로 쓰는 보조 도구

🔗 Vibe 코딩 도구 ↔ Streamlit이 만나는 흐름

이번 자료에서 가장 강조하고 싶은 그림이에요. 비전공자가 빠르게 결과물을 보는 길은 보통 이 조합이에요.

   🖥️ Cursor (Vibe 코딩 도구)
          ↓  "Streamlit으로 매출 대시보드 만들어줘"
   🐍 Streamlit 라이브러리를 쓰는 Python 코드 자동 생성
          ↓  한 줄 실행 (streamlit run app.py)
   🌐 웹 브라우저에서 작동하는 도구 완성
        

"Cursor에게 Streamlit으로 만들어달라고 시키기"가 비전공자 최단 경로예요. 도구(Cursor·Claude Code)는 "어떻게 만들지"를 담당하고, 라이브러리(Streamlit)는 "결과물의 형태"를 담당해요.

🤔 왜 이 시점에 Streamlit을 보여줬을까요?

앞에서 "FE와 BE를 분리해서 사고하라"를 가르친 직후에 "합쳐주는 라이브러리"를 보면 혼란스러울 수 있어요. 하지만 순서가 중요해요. 분리하는 이유를 먼저 알고 나서, 합쳐주는 라이브러리를 보면 "아, 이 라이브러리는 작은 공연을 자동으로 합쳐서 빨리 올릴 수 있게 도와주는 거구나"가 명확해져요. 큰 공연(여러 사용자·복잡한 기능)을 만들 땐 다시 FE·BE 분리가 필요해진다는 한계도 자연스럽게 이해되고요.


💡 비전공자가 알아야 할 5가지 마인드셋

다음 주부터 직접 도구를 만지기 전에, 마인드셋 5가지를 미리 깔아두면 헤매는 시간이 확 줄어요.

① 모든 걸 다 이해할 필요는 없다

AI가 만들어준 코드를 한 줄씩 다 이해하려 들면 시작도 못해요. "이 부분은 무엇을 하는지" 큰 그림만 이해하면 충분. 디테일은 AI가 책임져요. 자동차 정비 원리를 다 몰라도 운전은 하잖아요? 같아요.

② 무엇을 만들지를 그림으로 그릴 줄 알면 됨

가장 강력한 기술은 종이에 화면을 그려보는 능력이에요. "여기 헤더, 그 아래 검색창, 그 아래 결과 목록…" 그림 한 장이 1시간짜리 AI 대화보다 정확해요. 그림 → 한국어 설명 → AI에게 전달, 이 순서.

③ 화면(FE)과 데이터(BE)를 분리해서 생각하기

오늘 자료의 핵심. AI에게 시킬 때 항상 "화면에는 ___이 보이고, 뒤에서는 ___을 처리한다"를 분리해서 설명하세요. 이거 하나로 결과물 품질이 2~3배 좋아져요.

④ 처음엔 작게 — "버튼 하나 + 데이터 1개 저장"부터

욕심 부리면 망해요. "클릭하면 시간이 기록되는 버튼 하나"가 시작점으로 적당해요. 이게 되면 "기록 목록 보기"를 추가하고, 그게 되면 "로그인"을 추가하는 식. 한 번에 한 기능만.

⑤ AI가 만든 결과를 눈으로 확인할 줄 알기

AI가 "다 만들었습니다!"라고 해도 그대로 믿지 마세요. 실제로 실행해서 동작하는지 확인하는 게 비전공자의 가장 중요한 기술. 안 되면 그 결과(에러 메시지·이상한 화면)를 다시 AI에게 보여주면 돼요.

⚠️ 가장 흔한 실패 패턴: AI가 한 말을 검증 없이 다음 단계로 넘어가기. "잘 만들었어요" → 실제로 확인 안 함 → 한참 뒤에 보니 처음부터 작동을 안 하고 있었음. 매 단계 직접 눈으로 확인이 비싸 보여도 가장 빠른 길이에요.


❓ FAQ

Q1. 코딩을 정말 안 배워도 되나요?

대부분의 경우 Yes. 단, "AI가 만들어준 결과가 맞는지 읽고 판단하는" 수준의 코드 리터러시는 점점 더 필요해져요. 그건 "처음부터 코딩을 배운다"와는 다른, "AI와 함께 일하는 법"에 가까워요. 오늘 자료가 그 시작점.

Q2. 그럼 개발자는 필요 없나요?

아니에요. 작은 프로토타입·내부 도구·MVP는 비전공자가 만들 수 있게 됐지만, 대규모 서비스·보안·성능·데이터 무결성이 중요해지면 여전히 개발자가 필요해요. 비유하면, 우리가 만드는 건 "동네 학예회 무대"고, 개발자가 만드는 건 "라이센싱 공연"이에요. 둘 다 가치 있어요.

Q3. AI가 만든 코드, 보안은 괜찮나요?

⚠️ 주의해야 해요. AI는 자주 "동작하긴 하지만 보안 구멍이 있는" 코드를 만들어요. 특히 로그인·결제·민감 데이터가 들어가는 서비스는 반드시 보안 검토를 받아야 해요. "외부에 공개하지 않는 내부 도구"로 시작하는 게 가장 안전한 입문 방법이에요.

Q4. FE만 만들고 BE 없이 서비스 운영 가능한가요?

가능해요. 의외로 자주 그래요. 이 학습 노트 사이트가 그 예. 데이터를 저장·조회할 필요가 없고, 단순히 보여주기만 하면 되는 사이트는 BE 없이 가능. 회사 소개·블로그·포트폴리오·이번 사이트처럼 정보 페이지가 대표적이에요. "댓글·회원·검색"이 필요해지는 순간 BE가 등장해요.

Q5. 내 PC에 뭘 설치해야 시작할 수 있나요?

도구와 라이브러리는 설치 방법이 달라요. 도구 = "프로그램 자체를 PC에 깔기" / 라이브러리 = "Python 안에 부품 추가하기". 다음 주에 자세히 다루지만 미리 알아두면 좋아요.

  • Cursor (도구): cursor.com에서 다운로드 → 설치 (약 5분)
  • Claude Code (도구): 터미널에서 한 줄 명령어로 설치 (Node.js 필요)
  • Streamlit (라이브러리): Python이 깔린 PC에서 pip install streamlit 한 줄로 추가. 또는 설치 없이 웹에서 쓸 수 있는 Streamlit Cloud도 있음 — 비전공자에겐 이쪽 추천

Q6. Streamlit이 그렇게 쉽다면, 왜 모든 서비스가 Streamlit으로 안 만들어지나요?

좋은 질문이에요. Streamlit 라이브러리가 압도적으로 빠른 대신 3가지 한계가 있어요.

  • 디자인 자유도가 낮아요 — 위에서 아래로 흐르는 단순한 화면만 가능. 인스타그램·노션처럼 복잡한 화면은 못 만들어요.
  • 동시 사용자 수가 적어요 — 수십~수백 명이 동시에 들어오면 느려져요. 수만 명이 쓰는 서비스에는 부적합.
  • 검색 노출(SEO)이 약해요 — 구글 검색에 잘 안 잡혀요. 마케팅용 사이트로는 부적합.

그래서 "내부 도구·데이터 대시보드·AI 데모"에 가장 적합하고, 일반 사용자용 상용 서비스를 만들 땐 Cursor·Claude Code 같은 도구로 다른 라이브러리(React·Next.js 등)를 쓰게 하는 게 일반적이에요.


🎓 핵심 요약

오늘 자료를 한 장으로 정리하면 이래요.

  • 웹 서비스 = 한 편의 공연. 무대(FE)와 백스테이지(BE)가 무전기(API)로 신호를 주고받으며 하나의 공연을 만들어요.
  • Frontend = 무대 = "눈에 보이면 다 FE". HTML(대본) + CSS(조명·의상) + JavaScript(즉흥 연기).
  • Backend = 백스테이지 = "보이지 않지만 꼭 필요한 것". 서버 로직 + 데이터베이스(소품 창고) + 인증 + 계산.
  • FE ↔ BE 통신 = API. Week 3 식당 웨이터 비유와 같음. JSON이라는 약속어로 무전을 주고받아요.
  • Vibe 코딩 = AI에게 말로 시켜 코드를 만드는 방식. FE/BE 분리 사고가 정확한 지시의 핵심.
  • Vibe 코딩 도구 2종 — Cursor(IDE 화이트보드) · Claude Code(터미널 대화). 둘 다 "AI에게 말로 시키는 도구".
  • 보너스 라이브러리: Streamlit — Python으로 FE/BE를 한 파일에 합쳐주는 부품. 도구가 아니라 "도구가 만들어내는 결과물의 형태" 중 하나. 비전공자 최단 경로 = Cursor에게 Streamlit으로 만들어달라고 시키기.
  • 비전공자 마인드셋 5 — ① 다 이해할 필요 없음 ② 그림으로 그리기 ③ FE/BE 분리 사고 ④ 작게 시작 ⑤ 눈으로 확인.

🎭 한 줄 마무리: 오늘은 Vibe 코딩의 "공연 구조"를 이해한 날이에요. 무대와 백스테이지를 분리해 사고할 수 있게 됐다면, 이제 다음 무대를 깔 준비가 된 거예요.

이번 자료는 Vibe 코딩 시리즈 ①편이에요. 앞으로 ②편부터는 직접 Cursor · Claude Code(도구)와 Streamlit(라이브러리)을 만져보면서, 오늘 배운 무대-백스테이지 구조 위에 실제 작동하는 서비스를 한 줄씩 깔아볼 거예요. 시리즈가 끝날 때쯤이면, 비전공자도 "내 업무에 필요한 작은 도구는 직접 만들 수 있다"가 손에 잡혀 있을 거예요.

🎭 수고하셨습니다!
다음 주, 첫 무대를 함께 깔러 가볼까요?