<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Full Stack on ICE-ICE-BEAR-BLOG</title><link>https://ice-ice-bear.github.io/ko/tags/full-stack/</link><description>Recent content in Full Stack on ICE-ICE-BEAR-BLOG</description><generator>Hugo -- gohugo.io</generator><language>ko</language><lastBuildDate>Fri, 17 Apr 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://ice-ice-bear.github.io/ko/tags/full-stack/index.xml" rel="self" type="application/rss+xml"/><item><title>20분 안에 보이게 하는 풀스택 — 프론트엔드, 백엔드, 데이터베이스의 멘탈 모델</title><link>https://ice-ice-bear.github.io/ko/posts/2026-04-17-vibecoding-fullstack/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0900</pubDate><guid>https://ice-ice-bear.github.io/ko/posts/2026-04-17-vibecoding-fullstack/</guid><description>&lt;img src="https://ice-ice-bear.github.io/" alt="Featured image of post 20분 안에 보이게 하는 풀스택 — 프론트엔드, 백엔드, 데이터베이스의 멘탈 모델" /&gt;&lt;h2 id="개요"&gt;개요
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;기솔루트 알렉&lt;/strong&gt;의 유튜브 영상 &amp;ldquo;프론트엔드 백엔드 데이터베이스 전체를 20분만에 보이게 해드립니다&amp;quot;는 스코프 압축의 작은 마스터클래스다. 약 20분 동안 브라우저 주소창에서 MySQL 행까지, 전체 요청 경로를 한 번에 훑으면서 모든 프로토콜과 컴포넌트를 — 기억에 남을 만큼만 — 기술적 무게를 실어 이름 붙인다. 영상은 내가 &lt;strong&gt;바이브 코더를 위한 운영 리터러시&lt;/strong&gt;라 부를 카테고리에 속한다 — 만들기를 가르치는 영상이 아니라, 지금 만들고 있는 것을 읽는 법을 가르치는 영상이다.&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;flowchart TD
 A["사용자가 브라우저를 연다"] --&gt; B["URL 입력 — 예: example.com"]
 B --&gt; C["DNS가 도메인을 IP로 변환"]
 C --&gt; D{"클라이언트 종류?"}
 D --&gt;|"웹"| E["HTTP(S)로 웹 서버에 요청"]
 D --&gt;|"앱"| F["API로 WAS에 요청"]
 E --&gt; G["웹 서버가 HTML/CSS/JS/이미지 반환"]
 F --&gt; H["WAS가 백엔드 앱 코드 실행"]
 H --&gt; I["DB에 SQL 쿼리"]
 I --&gt; J["DB가 레코드 반환"]
 J --&gt; K["WAS가 응답을 JSON/XML로 포맷"]
 K --&gt; L["클라이언트가 데이터 렌더링"]
 G --&gt; L&lt;/pre&gt;&lt;h2 id="구조적-주장"&gt;구조적 주장
&lt;/h2&gt;&lt;p&gt;알렉은 전체 강의의 프레임을 잡는 구조적 주장으로 연다 — &lt;strong&gt;대부분의 시스템은 프론트엔드 + 백엔드로 구성되고, 백엔드는 서버 + 데이터베이스로 이루어지며, 둘 사이는 네트워크 프로토콜로 통신한다&lt;/strong&gt;. 거기서부터 각 계층을 펼친다.&lt;/p&gt;
&lt;p&gt;프론트엔드가 하는 일은 세 가지뿐이다.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;화면 렌더링&lt;/strong&gt; — 브라우저의 웹 페이지 또는 폰의 네이티브 화면&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;이벤트 처리&lt;/strong&gt; — 버튼 클릭, 폼 제출, 터치&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;데이터 송수신&lt;/strong&gt; — HTTP(S)로 서버와 주고받기&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;끝. React 대 Vue 논쟁으로 빠지지도, 프론트엔드 빌드 시스템이나 디자인 시스템 이야기로 새지도 않는다. 요점은 &lt;em&gt;역할&lt;/em&gt;이지 취향이 아니다.&lt;/p&gt;
&lt;h2 id="dns와-도메인-ip-다리"&gt;DNS와 도메인-IP 다리
&lt;/h2&gt;&lt;p&gt;좋았던 디테일 — 알렉은 &lt;strong&gt;도메인으로는 접속할 수 없고, 오직 IP로만 접속할 수 있다&lt;/strong&gt;는 점을 명시적으로 짚는다. DNS가 번역 레이어다. 프로토콜 이름도 제대로 붙인다. HTTP는 &amp;ldquo;HyperText Transfer Protocol&amp;quot;이고 HTTPS의 S는 그 위에 얹힌 보안. 바이브 코드된 AI 어시스턴트로 빌드하는 시청자에게 이건 진짜로 쓸모가 있다 — Claude나 Cursor가 생성한 &lt;code&gt;.env&lt;/code&gt;에 &lt;code&gt;API_URL=https://...&lt;/code&gt;가 있을 때, 그 문자열이 런타임에 무엇이 되는지에 대한 멘탈 모델이 이제 생긴다.&lt;/p&gt;
&lt;h2 id="웹-서버-vs-애플리케이션-서버"&gt;웹 서버 vs 애플리케이션 서버
&lt;/h2&gt;&lt;p&gt;초보에게 가장 꽂힐 지점이라고 본다. 알렉은 구분한다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;웹 서버&lt;/strong&gt; (Apache, Nginx): &lt;strong&gt;정적&lt;/strong&gt; 파일을 서빙. HTML, CSS, JavaScript, 이미지. 고정된 콘텐츠를 있는 그대로 반환.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;웹 애플리케이션 서버 — WAS&lt;/strong&gt;: &lt;strong&gt;동적&lt;/strong&gt; 콘텐츠를 서빙. 코드가 실행되고, 데이터가 쿼리되고, 응답이 요청마다 새로 조립된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;웹 서버는 콘텐츠가 미리 정해진 경우를 담당한다 — 랜딩 페이지, 마케팅 이미지, JS 번들. WAS는 비즈니스 로직이 사는 곳이다 — API 엔드포인트, DB 쿼리, 인증 체크, 사용자별/요청별로 달라지는 모든 것.&lt;/p&gt;
&lt;p&gt;그다음 시청자가 실제로 마주할 스택 선택지를 짚어 준다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Java&lt;/strong&gt; → Spring / Spring Boot&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python&lt;/strong&gt; → Django / Flask&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; → Node.js + Express&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;이름을 붙인 건 의도적이다. &lt;code&gt;from flask import Flask&lt;/code&gt;가 적힌 &lt;code&gt;server.py&lt;/code&gt;를 보는 바이브 코더는 이제 &amp;ldquo;아, 이게 스택의 WAS 부분이구나&amp;quot;를 안다. 어휘가 이해를 연다.&lt;/p&gt;
&lt;h2 id="crud와-sql--데이터-어휘"&gt;CRUD와 SQL — 데이터 어휘
&lt;/h2&gt;&lt;p&gt;데이터베이스 섹션은 &lt;strong&gt;CRUD&lt;/strong&gt; — Create, Read, Update, Delete — 약어를 소개하고, 대부분의 REST API가 쓰는 네 가지 HTTP 메서드와 매핑한다.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;HTTP 메서드&lt;/th&gt;
 &lt;th&gt;CRUD 연산&lt;/th&gt;
 &lt;th&gt;SQL 키워드&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;POST&lt;/td&gt;
 &lt;td&gt;Create&lt;/td&gt;
 &lt;td&gt;INSERT&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;GET&lt;/td&gt;
 &lt;td&gt;Read&lt;/td&gt;
 &lt;td&gt;SELECT&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;PUT&lt;/td&gt;
 &lt;td&gt;Update&lt;/td&gt;
 &lt;td&gt;UPDATE&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;DELETE&lt;/td&gt;
 &lt;td&gt;Delete&lt;/td&gt;
 &lt;td&gt;DELETE&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;또한 친숙한 엑셀 시트 비유로 &lt;strong&gt;테이블 / 로우 / 컬럼&lt;/strong&gt; 어휘를 도입한다. 로우 = 레코드(한 사용자, 한 상품). 컬럼 = 필드(id, email, name). 신규 가입 = 로우 하나 추가. 추상화를 현실에 붙여 준다. 엑셀을 열어 본 사람이라면 SELECT가 뭘 반환하는지 그려 볼 수 있다.&lt;/p&gt;
&lt;h2 id="의도적으로-생략한-것"&gt;의도적으로 생략한 것
&lt;/h2&gt;&lt;p&gt;강의는 약 20분이다. 알렉이 &lt;em&gt;다루지 않는&lt;/em&gt; 것이 다루는 것만큼 시사적이다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;마이크로서비스, 큐, 캐시 언급 없음.&lt;/strong&gt; 너무 이르다 — 이것들은 베이스라인 위에 얹는 최적화다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;프레임워크 취향 없음.&lt;/strong&gt; 스택을 나열하지만 처방하지는 않는다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ORM vs 생 SQL 논쟁 없음.&lt;/strong&gt; SQL을 통한 CRUD가 개념이고, Prisma냐 Hibernate냐는 디테일.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;배포·DevOps 없음.&lt;/strong&gt; 돌아가게 만드는 것이 확장보다 먼저다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;이 절제 덕분에 강의가 20분 안에서 쓸모 있게 유지된다. &amp;ldquo;클라우드 제공자&amp;quot;나 &amp;ldquo;컨테이너 오케스트레이션&amp;quot;에 1분을 쓰는 순간, 핵심 멘탈 모델의 1분이 밀려난다.&lt;/p&gt;
&lt;h2 id="ai-코딩-앱에-왜-중요한가"&gt;AI 코딩 앱에 왜 중요한가
&lt;/h2&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;graph TD
 A["바이브 코더가 AI에 프롬프트"] --&gt; B["AI가 프론트+백+DB 코드 생성"]
 B --&gt; C{"코더가 생성물을 이해하는가?"}
 C --&gt;|"아니오"| D["버그는 불투명, 디버깅 불가"]
 C --&gt;|"예, 이 20분 모델로"| E["에러 해석, 프롬프트 조정, 배포 가능"]&lt;/pre&gt;&lt;p&gt;AI 생성 코드의 부상은 개발자의 일을 작성에서 **감사(audit)**로 옮긴다. 그 일은 정확히 알렉의 강의가 설치해 주는 어휘를 요구한다 — WAS가 뭔지, CRUD가 뭔지, JSON 응답이 뭔지, DNS가 뭘 하는지. 그 어휘 없이는 바이브 코드된 앱이 블랙박스가 되어 에러마다 미스터리가 된다. 있으면 AI는 실제로 리뷰 가능한 동료가 된다.&lt;/p&gt;
&lt;p&gt;이 채널의 이전 &amp;ldquo;IT 개요&amp;rdquo; 영상이 잘 된 데는 이유가 있고, 알렉은 이 후속 영상을 &amp;ldquo;기술적 깊이를 한 단계 더 올린 것&amp;quot;이라고 명시적으로 포지셔닝한다. 청중은 분명 AI로 빌드하며 리터러시를 빨리 필요로 하는 사람들이지 — 4년제 CS 학부생이 아니다.&lt;/p&gt;
&lt;h2 id="빠른-링크"&gt;빠른 링크
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://www.youtube.com/watch?v=l5z6UNa-ons" target="_blank" rel="noopener"
 &gt;유튜브: 프론트엔드 백엔드 데이터베이스 전체를 20분만에 보이게 해드립니다&lt;/a&gt; — 원본 영상&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://developer.mozilla.org/ko/docs/Web/HTTP" target="_blank" rel="noopener"
 &gt;HTTP MDN 개요&lt;/a&gt; — 프로토콜 심화&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.postgresql.org/docs/current/tutorial.html" target="_blank" rel="noopener"
 &gt;PostgreSQL 튜토리얼&lt;/a&gt; — SQL을 손으로 익히기 좋은 곳&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="인사이트"&gt;인사이트
&lt;/h2&gt;&lt;p&gt;알렉 강의의 가장 큰 가치는 어떤 특정한 사실이 아니라 — &lt;strong&gt;스코프에 대한 약속&lt;/strong&gt;이다. 20분 안에 완결된 멘탈 모델을 준다는 것은 설계 선택이고, 그 선택은 깊이 대신 커버리지를 사는 것이다. 청중에게는 그 트레이드가 맞다. 스택의 윤곽을 아는 바이브 코더는 AI에게 백엔드 버그를 고쳐 달라고 프롬프트할 수 있다. React는 깊게 알지만 &amp;ldquo;WAS&amp;quot;라는 단어를 들어 본 적 없는 바이브 코더는 깨진 API를 배포하고 이유를 모를 것이다. 알렉이 거는 교육적 베팅은 — &lt;strong&gt;AI 시대에는 프레임워크 숙련도보다 운영 리터러시가 더 빨리 복리 이자를 낳는다&lt;/strong&gt; — 는 것이며, 옳아 보인다. 프레임워크 지식은 도구가 바뀌며 감가상각되지만 HTTP-DNS-SQL 삼각형은 25년째 안정이고 앞으로 25개 프레임워크보다 더 오래 살 것이다. 모든 바이브 코드된 앱은 결국 그 삼각형 위에 서 있다 — 프롬프트한 사람이 알든 모르든.&lt;/p&gt;</description></item></channel></rss>