DESIGNER × CODE
디자이너의 첫 바이브 코딩 — #2
vibe-codingbeginnertutorial

HTML, CSS, JavaScript — AI와 함께 처음부터 이해하기

웹을 이루는 세 가지 언어, 외울 필요 없어요. AI에게 물어보면서 패턴을 익히는 방법을 알려드려요.

2026. 2. 26.조회 1101
Share

지난 글에서 바이브 코딩이 뭔지 알아봤어요. 이번엔 한 단계 더 들어가 볼게요.

AI에게 "웹사이트 만들어줘"라고 하면 코드가 나오는데, 그 코드가 대체 뭔지 모르면 답답하잖아요. 전부 외울 필요는 없지만, 큰 그림을 이해하면 AI와의 대화가 훨씬 수월해져요.


웹의 세 기둥

웹사이트를 만드는 코드는 크게 세 종류예요.

언어역할비유
HTML구조와 내용건물의 뼈대와 벽
CSS스타일과 디자인페인트, 가구, 인테리어
JavaScript동작과 상호작용엘리베이터, 자동문, 전기 시스템

디자이너에게 익숙한 비유로 바꾸면:

  • HTML = Figma의 레이어 구조 (프레임, 텍스트, 이미지 배치)
  • CSS = Figma의 오른쪽 패널 (색상, 폰트, 여백, 정렬)
  • JavaScript = Figma의 프로토타입 인터랙션 (클릭하면 뭔가 일어나는 것)

HTML — 구조를 잡는 뼈대

HTML은 **태그(tag)**로 이루어져 있어요. 태그는 <> 안에 이름을 쓰고, 닫을 때는 </>를 써요.

<h1>큰 제목</h1>
<p>문단 텍스트입니다.</p>
<button>클릭하세요</button>

자주 보게 될 태그들:

태그의미Figma 대응
<div>범용 컨테이너Frame
<h1>~<h6>제목 (1이 가장 큼)Text (Heading)
<p>문단Text (Body)
<img>이미지Image Fill
<a>링크Prototype Link
<button>버튼Button Component
<input>입력 필드Input Component

핵심은 **"태그 = 역할"**이에요. <button>이라고 쓰면 "이건 버튼이야"라고 브라우저에게 알려주는 거예요.

AI에게 이렇게 물어보세요

"이 HTML 코드에서 각 태그가 무슨 역할을 하는지 한 줄씩 설명해줘."

AI가 생성한 코드를 다시 AI에게 설명해 달라고 하는 거예요. 이게 바이브 코딩에서 배우는 방법이에요.


CSS — 눈에 보이는 모든 것

CSS는 디자이너에게 가장 친숙한 영역이에요. Figma에서 하는 거의 모든 작업이 CSS와 대응돼요.

.card {
  background-color: #18181b;    /* 배경색 */
  border: 1px solid #27272a;   /* 테두리 */
  padding: 20px;               /* 안쪽 여백 */
  margin-bottom: 16px;         /* 아래쪽 바깥 여백 */
  font-size: 14px;             /* 글자 크기 */
  color: #d4d4d8;              /* 글자 색 */
}

Figma ↔ CSS 대응표

Figma 속성CSS 속성예시
Fillbackground-color#E5FD52
Strokeborder1px solid #27272a
Auto Layout → Paddingpadding20px
Auto Layout → Gapgap16px
Auto Layout → Directionflex-directionrow 또는 column
Corner Radiusborder-radius8px
Font Sizefont-size14px
Font Weightfont-weightbold (700)
Opacityopacity0.5
Effects → Drop Shadowbox-shadow0 4px 12px rgba(0,0,0,0.3)

Auto Layout = Flexbox라는 것만 기억하세요. Figma에서 Auto Layout을 쓸 줄 알면, CSS Flexbox의 개념을 이미 알고 있는 거예요.

Tailwind CSS — 디자이너 친화적 CSS

요즘 AI가 생성하는 코드에서 이런 걸 자주 볼 거예요:

<div class="bg-zinc-900 border border-zinc-800 p-5 mb-4 text-sm text-zinc-300">
  카드 내용
</div>

이건 Tailwind CSS라는 건데, CSS를 별도 파일에 쓰는 대신 클래스 이름으로 바로 스타일을 적용하는 방식이에요.

Tailwind 클래스의미CSS 대응
bg-zinc-900배경색 어두운 회색background-color: #18181b
p-5패딩 20pxpadding: 20px
text-sm작은 글자font-size: 14px
mb-4아래 마진 16pxmargin-bottom: 16px
flexFlexbox 활성화display: flex
gap-3요소 간격 12pxgap: 12px

패턴이 보이죠? bg = background, p = padding, m = margin, t = top, b = bottom. 약어 규칙만 알면 금방 읽을 수 있어요.


JavaScript — 움직임을 만드는 힘

JavaScript(줄여서 JS)는 "뭔가 일어나게" 만드는 언어예요.

  • 버튼을 클릭하면 메뉴가 열린다
  • 스크롤하면 애니메이션이 재생된다
  • 서버에서 데이터를 가져와서 화면에 보여준다

솔직히, 바이브 코딩 초반에는 JS를 깊이 이해할 필요 없어요. AI가 잘 처리해주거든요. 하지만 자주 보이는 패턴 두 가지만 알아두면 좋아요.

패턴 1: 이벤트 핸들러

function handleClick() {
  alert("버튼이 클릭되었어요!");
}

function은 "동작을 정의한다"는 뜻이에요. handleClick은 이름이고, { } 안이 실제로 실행될 내용이에요.

패턴 2: 상태 (State)

const [count, setCount] = useState(0);
// count = 현재 값 (0부터 시작)
// setCount = 값을 바꾸는 함수

이건 React라는 프레임워크에서 쓰는 패턴인데, "화면에 보이는 데이터를 관리"하는 거예요. setCount(1)을 하면 화면에 1이 표시되는 식이죠.


AI와 함께 배우는 실전 팁

1. 코드를 받으면 바로 질문하기

AI가 코드를 생성하면, 이해 안 되는 부분을 바로 물어보세요:

"이 코드에서 className이랑 class는 뭐가 달라?"
"useState가 정확히 뭘 하는 건지 쉽게 설명해줘."
"이 flex gap-4가 Figma에서 어떤 설정이랑 같아?"

2. 하나씩 바꿔보기

AI가 만든 코드에서 숫자를 하나 바꿔보세요:

  • p-5p-10으로 → 패딩이 커짐
  • text-smtext-2xl로 → 글자가 커짐
  • bg-zinc-900bg-red-500으로 → 배경이 빨간색으로

직접 바꾸고 결과를 보면, 코드와 화면의 관계가 몸에 익어요.

3. Figma 시안을 말로 설명하는 연습

내가 만든 Figma 시안을 AI에게 설명하는 연습을 해보세요. 이게 곧 프롬프트 실력이에요:

"카드 컴포넌트를 만들어줘.
- 배경: #18181b
- 테두리: 1px #27272a
- 패딩: 위아래 24px, 좌우 20px
- 제목: 16px, 볼드, 흰색
- 설명: 14px, #a1a1aa
- 호버 시 테두리가 #52525b로 변경"

이렇게 구체적으로 설명할수록, AI는 정확한 코드를 만들어줘요.


정리

오늘 배운 것핵심
HTML태그로 구조를 만든다. <div> = Frame
CSS스타일을 입힌다. Figma 속성과 거의 1:1 대응
TailwindCSS를 클래스 이름으로 쓴다. 약어 규칙만 익히면 OK
JavaScript동작을 만든다. 초반엔 AI에게 맡겨도 됨
학습법코드를 받고 → 질문하고 → 직접 바꿔보기

전부 외울 필요 없어요. AI와 대화하면서 자연스럽게 익히는 거예요. 다음 글에서는 AI와의 대화를 더 잘하는 방법, 프롬프트의 기술을 다뤄볼게요.

다음 글에서 만나요!