<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Backend on ICE-ICE-BEAR-BLOG</title><link>https://ice-ice-bear.github.io/tags/backend/</link><description>Recent content in Backend on ICE-ICE-BEAR-BLOG</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Fri, 17 Apr 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://ice-ice-bear.github.io/tags/backend/index.xml" rel="self" type="application/rss+xml"/><item><title>The 20-Minute Mental Model of Full-Stack — Frontend, Backend, Database</title><link>https://ice-ice-bear.github.io/posts/2026-04-17-vibecoding-fullstack/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0900</pubDate><guid>https://ice-ice-bear.github.io/posts/2026-04-17-vibecoding-fullstack/</guid><description>&lt;img src="https://ice-ice-bear.github.io/" alt="Featured image of post The 20-Minute Mental Model of Full-Stack — Frontend, Backend, Database" /&gt;&lt;h2 id="overview"&gt;Overview
&lt;/h2&gt;&lt;p&gt;A Korean YouTube talk by &lt;strong&gt;GiSolute Alex&lt;/strong&gt; (기솔루트 알렉) titled &amp;ldquo;프론트엔드 백엔드 데이터베이스 전체를 20분만에 보이게 해드립니다&amp;rdquo; — &amp;ldquo;I&amp;rsquo;ll make the whole frontend / backend / database visible to you in 20 minutes&amp;rdquo; — is a small masterclass in scope compression. In roughly 20 minutes he walks through the complete request path from a browser address bar down to a MySQL row, naming every protocol and component with just enough technical weight to stick. The video sits in a category I&amp;rsquo;d call &lt;strong&gt;operational literacy for vibe coders&lt;/strong&gt;: it doesn&amp;rsquo;t teach you to build, but it teaches you to read what you&amp;rsquo;re building.&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;flowchart TD
 A["User opens browser"] --&gt; B["Type URL — e.g. example.com"]
 B --&gt; C["DNS resolves domain to IP"]
 C --&gt; D{"Client type?"}
 D --&gt;|"Web"| E["HTTP(S) request to Web Server"]
 D --&gt;|"App"| F["API call to WAS"]
 E --&gt; G["Web Server returns HTML/CSS/JS/images"]
 F --&gt; H["WAS runs backend app code"]
 H --&gt; I["SQL query to Database"]
 I --&gt; J["Database returns rows"]
 J --&gt; K["WAS formats response as JSON/XML"]
 K --&gt; L["Client renders the data"]
 G --&gt; L&lt;/pre&gt;&lt;h2 id="the-structural-claim"&gt;The Structural Claim
&lt;/h2&gt;&lt;p&gt;Alex opens with a structural claim that frames the entire talk: &lt;strong&gt;most systems are frontend + backend, where backend is server + database, and communication between them happens over a network protocol&lt;/strong&gt;. From there he unrolls each layer.&lt;/p&gt;
&lt;p&gt;The frontend does three things and three things only:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Renders screens&lt;/strong&gt; — web pages in a browser, or native screens on a phone&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Handles events&lt;/strong&gt; — button clicks, form submissions, touches&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sends and receives data&lt;/strong&gt; — over HTTP(S) to a server&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That&amp;rsquo;s it. He resists the temptation to dive into React vs Vue debates, frontend build systems, or design-system chatter. The point is the &lt;em&gt;role&lt;/em&gt;, not the flavor.&lt;/p&gt;
&lt;h2 id="dns-and-the-domain-to-ip-bridge"&gt;DNS and the Domain-to-IP Bridge
&lt;/h2&gt;&lt;p&gt;One detail I liked: he explicitly calls out that &lt;strong&gt;you can&amp;rsquo;t connect to a domain directly — you can only connect to an IP&lt;/strong&gt;. DNS is the translation layer. He names the protocol too: HTTP is &amp;ldquo;HyperText Transfer Protocol&amp;rdquo; and the S in HTTPS is security on top. For viewers building with vibe-coded AI assistants, this is genuinely useful — when Claude or Cursor generates an &lt;code&gt;.env&lt;/code&gt; referencing &lt;code&gt;API_URL=https://...&lt;/code&gt;, the viewer now has a mental model for what that string becomes at runtime.&lt;/p&gt;
&lt;h2 id="web-server-vs-application-server"&gt;Web Server vs Application Server
&lt;/h2&gt;&lt;p&gt;This is the part of the talk I think lands hardest for beginners. Alex distinguishes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Web server&lt;/strong&gt; (Apache, Nginx): serves &lt;strong&gt;static&lt;/strong&gt; files. HTML, CSS, JavaScript, images. Fixed content, returned as-is.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Web Application Server — WAS&lt;/strong&gt;: serves &lt;strong&gt;dynamic&lt;/strong&gt; content. Code runs, data is queried, a response is composed fresh per request.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The web server handles cases where the content is predetermined — a landing page, a marketing image, a JS bundle. The WAS is where your business logic lives — API endpoints, database queries, auth checks, everything that differs per user or per request.&lt;/p&gt;
&lt;p&gt;Then he names the stack choices most viewers will actually see:&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;The naming is intentional. A vibe coder reading &lt;code&gt;server.py&lt;/code&gt; with &lt;code&gt;from flask import Flask&lt;/code&gt; now knows &amp;ldquo;this is the WAS part of the stack.&amp;rdquo; Vocabulary unlocks comprehension.&lt;/p&gt;
&lt;h2 id="crud-and-sql--the-data-vocabulary"&gt;CRUD and SQL — The Data Vocabulary
&lt;/h2&gt;&lt;p&gt;The database section introduces the acronym &lt;strong&gt;CRUD&lt;/strong&gt; — Create, Read, Update, Delete — and maps it to the four HTTP methods most REST APIs use:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;HTTP method&lt;/th&gt;
 &lt;th&gt;CRUD operation&lt;/th&gt;
 &lt;th&gt;SQL keyword&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;He also introduces the &lt;strong&gt;table / row / column&lt;/strong&gt; vocabulary using the familiar analogy of an Excel spreadsheet. Rows = records (one user, one product). Columns = fields (id, email, name). New user registration = one new row. This keeps the abstraction grounded. Anyone who has opened Excel can picture what a SELECT returns.&lt;/p&gt;
&lt;h2 id="what-the-talk-deliberately-skips"&gt;What the Talk Deliberately Skips
&lt;/h2&gt;&lt;p&gt;The talk runs about 20 minutes, and what Alex &lt;em&gt;doesn&amp;rsquo;t&lt;/em&gt; cover is as instructive as what he does:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No mention of microservices, queues, or caches.&lt;/strong&gt; Too early — these are optimizations on top of the baseline.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No framework opinions.&lt;/strong&gt; He names stacks but doesn&amp;rsquo;t prescribe.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No ORM vs raw SQL debate.&lt;/strong&gt; CRUD via SQL is the concept; Prisma or Hibernate is a detail.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No deployment or DevOps.&lt;/strong&gt; Making it work beats making it scale.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This restraint is the reason the talk stays useful at 20 minutes. Every minute spent on &amp;ldquo;cloud providers&amp;rdquo; or &amp;ldquo;container orchestration&amp;rdquo; would displace a minute of the core mental model.&lt;/p&gt;
&lt;h2 id="why-this-matters-for-ai-coded-apps"&gt;Why This Matters for AI-Coded Apps
&lt;/h2&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;graph TD
 A["Vibe coder prompts AI"] --&gt; B["AI generates frontend + backend + DB code"]
 B --&gt; C{"Does the coder understand what was generated?"}
 C --&gt;|"No"| D["Bugs = opaque, debugging = impossible"]
 C --&gt;|"Yes, via this 20-min model"| E["Can read errors, adjust prompts, ship"]&lt;/pre&gt;&lt;p&gt;The rise of AI-generated code shifts the developer&amp;rsquo;s job from authoring to &lt;strong&gt;auditing&lt;/strong&gt;. That job requires exactly the vocabulary Alex&amp;rsquo;s talk installs — knowing what a WAS is, what CRUD is, what a JSON response is, what DNS does. Without that vocabulary, vibe-coded apps become black boxes where every error is a mystery. With it, the AI becomes a coworker you can actually review.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s a reason this channel&amp;rsquo;s previous &amp;ldquo;IT overview&amp;rdquo; video performed well, and Alex explicitly frames this follow-up as &amp;ldquo;taking that to the next level of technical depth.&amp;rdquo; His audience is clearly people who are building with AI and need literacy fast — not CS undergrads on a four-year track.&lt;/p&gt;
&lt;h2 id="quick-links"&gt;Quick Links
&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;YouTube: 프론트엔드 백엔드 데이터베이스 전체를 20분만에 보이게 해드립니다&lt;/a&gt; — the original video&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://developer.mozilla.org/en-US/docs/Web/HTTP" target="_blank" rel="noopener"
 &gt;HTTP MDN overview&lt;/a&gt; — a deeper dive on the protocol&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 tutorial&lt;/a&gt; — a clean place to learn SQL hands-on&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="insights"&gt;Insights
&lt;/h2&gt;&lt;p&gt;The most valuable part of Alex&amp;rsquo;s talk isn&amp;rsquo;t any single fact — it&amp;rsquo;s the &lt;strong&gt;commitment to scope&lt;/strong&gt;. A complete mental model in 20 minutes is a design choice, and the choice is to trade depth for coverage. That trade is correct for the audience. A vibe coder who understands the shape of the stack can prompt an AI to fix a backend bug; a vibe coder who knows React in depth but has never heard the word &amp;ldquo;WAS&amp;rdquo; will ship broken APIs and not know why. The educational bet Alex is placing — that &lt;strong&gt;operational literacy compounds faster than framework mastery in the AI era&lt;/strong&gt; — feels right. Framework knowledge decays as tooling changes; the HTTP-DNS-SQL triangle has been stable for 25 years and will outlive another 25 frameworks. Every vibe-coded app is ultimately standing on that triangle, whether the person prompting it knows it or not.&lt;/p&gt;</description></item></channel></rss>