{"id":478,"date":"2026-05-17T07:00:15","date_gmt":"2026-05-16T23:00:15","guid":{"rendered":"https:\/\/junai.ai\/blog\/pg-intro-install-1\/"},"modified":"2026-05-17T07:00:15","modified_gmt":"2026-05-16T23:00:15","slug":"pg-intro-install-1","status":"publish","type":"post","link":"https:\/\/junai.ai\/blog\/pg-intro-install-1\/","title":{"rendered":"PostgreSQL\uc774\ub780? \uc6b0\ubd84\ud22c\u00b7\ub9e5\u00b7\ub3c4\ucee4\ub85c \uc124\uce58 (\uc785\ubb38 1\ud3b8)"},"content":{"rendered":"\n<!-- WordPress REST API \ubc1c\ud589\uc6a9 HTML (\uc790\ub3d9 \uc0dd\uc131) -->\n<!-- WP-FEATURED-MEDIA-ID: 256 -->\n<div style=\"max-width:800px;margin:0 auto;\">\n<style>\n:root {\n  --color-primary: #336791;\n  --color-accent: #60a5fa;\n  --color-bg: #fafafa;\n  --color-bg-card: #ffffff;\n  --color-text: #1e293b;\n  --color-text-muted: #64748b;\n  --hero-start: #0f172a;\n  --hero-end: #336791;\n  --font-body: -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Noto Sans KR', sans-serif;\n  --size-body: 17px;\n  --line-height: 1.75;\n}\n* { box-sizing: border-box; }\n.container { max-width: 760px; margin: 0 auto; padding: 0 22px 80px; }\n.hero { background: linear-gradient(135deg, var(--hero-start) 0%, var(--hero-end) 100%); color: #fff; padding: 72px 22px 56px; text-align: center; }\n.hero .badge { display: inline-block; background: rgba(96,165,250,0.18); color: var(--color-accent); padding: 6px 14px; border-radius: 999px; font-size: 13px; font-weight: 600; letter-spacing: 0.5px; margin-bottom: 18px; }\n.hero h1 { margin: 0 0 18px; font-size: 36px; line-height: 1.3; letter-spacing: -0.3px; }\n.hero p.sub { margin: 0 auto; max-width: 580px; font-size: 17px; color: #bfdbfe; }\n.hero img { width: 100%; max-width: 720px; height: auto; margin: 36px auto 0; display: block; border-radius: 10px; box-shadow: 0 8px 32px rgba(0,0,0,0.3); }\n.meta { display: flex; gap: 14px; justify-content: center; margin-top: 20px; font-size: 13px; color: #93c5fd; flex-wrap: wrap; }\n.meta span::before { content: \"\u00b7\"; margin-right: 14px; color: #1e3a8a; }\n.meta span:first-child::before { content: \"\"; margin: 0; }\narticle { background: var(--color-bg-card); margin-top: -36px; padding: 44px 28px; border-radius: 14px; box-shadow: 0 2px 18px rgba(0,0,0,0.06); }\narticle p { margin: 0 0 18px; }\nh2 { font-size: 28px; line-height: 1.35; letter-spacing: -0.3px; margin: 48px 0 18px; padding-bottom: 10px; border-bottom: 2px solid var(--color-primary); }\nh2:first-of-type { margin-top: 8px; }\nh3 { font-size: 21px; line-height: 1.4; margin: 30px 0 12px; color: var(--color-primary); }\ncode { background: #f1f5f9; color: #0f172a; padding: 2px 6px; border-radius: 4px; font-family: 'SFMono-Regular', Menlo, Consolas, monospace; font-size: 0.92em; }\npre { background: #0f172a; color: #e2e8f0; padding: 18px 20px; border-radius: 10px; overflow-x: auto; font-size: 14.5px; line-height: 1.65; margin: 18px 0; }\npre code { background: transparent; color: inherit; padding: 0; }\nul, ol { margin: 0 0 18px; padding-left: 24px; }\nli { margin-bottom: 8px; }\nstrong { color: #0f172a; }\n.databox { background: #eff6ff; border-left: 4px solid var(--color-primary); padding: 18px 20px; border-radius: 6px; margin: 22px 0; }\n.databox p { margin: 0 0 8px; }\n.databox p:last-child { margin: 0; }\n.databox strong { color: var(--color-primary); }\n.warnbox { background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%); border-left: 4px solid #d97706; padding: 18px 20px; border-radius: 6px; margin: 22px 0; }\n.warnbox strong { color: #92400e; }\n.tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 22px 0; }\ntable { width: 100%; border-collapse: collapse; font-size: 15px; background: var(--color-bg-card); }\nth, td { padding: 11px 12px; text-align: left; border-bottom: 1px solid #e2e8f0; vertical-align: top; }\nth { background: #f1f5f9; font-weight: 700; color: #0f172a; }\ntd:first-child, th:first-child { font-weight: 700; }\n.cta { background: linear-gradient(135deg, #336791 0%, #60a5fa 100%); color: #fff; padding: 30px 24px; border-radius: 12px; margin-top: 44px; text-align: center; }\n.cta h3 { color: #fff; margin: 0 0 10px; }\n.cta p { margin: 0; color: #dbeafe; }\n.series-nav { background: #eff6ff; padding: 18px 22px; border-radius: 10px; margin-top: 24px; font-size: 14.5px; color: var(--color-text-muted); }\n.series-nav strong { color: var(--color-primary); }\n@media (max-width: 480px) {\n  .hero { padding: 52px 18px 44px; }\n  .hero h1 { font-size: 26px; }\n  .hero p.sub { font-size: 15px; }\n  article { padding: 28px 18px; border-radius: 10px; }\n  h2 { font-size: 22px; }\n  h3 { font-size: 18px; }\npre { font-size: 13px; padding: 14px 16px; }\n}\n@media (max-width: 560px) {\n  .tablewrap table, .tablewrap thead, .tablewrap tbody, .tablewrap tr, .tablewrap th, .tablewrap td { display: block; width: auto; }\n  .tablewrap thead { display: none; }\n  .tablewrap tr { margin: 0 0 14px; border: 1px solid #e2e8f0; border-radius: 10px; overflow: hidden; }\n  .tablewrap td { border: none; border-bottom: 1px solid #f1f5f9; padding: 9px 14px; }\n  .tablewrap td:first-child { background: #eff6ff; font-weight: 800; font-size: 15.5px; }\n  .tablewrap td:last-child { border-bottom: none; }\n  .tablewrap td[data-label]::before { content: attr(data-label) \" \u2014 \"; font-weight: 700; color: var(--color-primary); }\n}\n<\/style>\n<header class=\"hero\">\n  <span class=\"badge\">PostgreSQL \uad50\uc7ac \u00b7 1\ud3b8 \/ 24\ud3b8<\/span>\n  <h1>PostgreSQL\uc774\ub780? \uc6b0\ubd84\ud22c\u00b7\ub9e5\u00b7\ub3c4\ucee4\ub85c \uc124\uce58<\/h1>\n  <p class=\"sub\">\uc65c PostgreSQL \uc778\uc9c0\u00b7OS \ubcc4 5\ubd84 \uc124\uce58\u00b7\uccab \uc811\uc18d\uae4c\uc9c0. 24\ud3b8 \uad50\uc7ac\uc758 \uc2dc\uc791.<\/p>\n  <div class=\"meta\"><span>\uc785\ubb38<\/span><span>\uc77d\ub294 \uc2dc\uac04 7\ubd84<\/span><span>2026-05-16<\/span><\/div>\n  <img decoding=\"async\" src=\"https:\/\/junai.ai\/blog\/wp-content\/uploads\/2026\/05\/hero-36.jpg\" alt=\"\uac80\uc740 \ud654\uba74\uc5d0 \ud30c\ub780\uc0c9 \ucf54\ub07c\ub9ac(PostgreSQL \ub9c8\uc2a4\ucf54\ud2b8) \uc640 psql \ud504\ub86c\ud504\ud2b8\uac00 \ubcf4\uc774\ub294 \uc77c\ub7ec\uc2a4\ud2b8\">\n<\/header>\n\n<div class=\"container\">\n<article>\n\n<p>\ub370\uc774\ud130\ub97c \uc5b4\ub514\uc5d0 \uc800\uc7a5\ud558\ub098\uc694? \uc5d1\uc140? JSON \ud30c\uc77c? \uadf8\uac74 100\uac74\uae4c\uc9c0\ub294 \ub429\ub2c8\ub2e4. 1\ub9cc \uac74\uc774 \ub418\uba74 \uac80\uc0c9\uc774 \ub290\ub824\uc9c0\uace0, \ub3d9\uc2dc\uc5d0 \ub450 \uc0ac\ub78c\uc774 \uc4f0\uba74 \uae68\uc9d1\ub2c8\ub2e4. <strong>\uad00\uacc4\ud615 \ub370\uc774\ud130\ubca0\uc774\uc2a4(RDBMS)<\/strong> \uac00 \ub4f1\uc7a5\ud558\ub294 \uc9c0\uc810\uc774 \uac70\uae30\uc785\ub2c8\ub2e4. 1\ud3b8\uc740 \uadf8\uc911\uc5d0\uc11c \uac00\uc7a5 \uac15\ub825\ud55c \uc624\ud508\uc18c\uc2a4 \u2014 <strong>PostgreSQL<\/strong> \uc744 \ub0b4 \ucef4\ud4e8\ud130\uc5d0 \uc124\uce58\ud558\uace0 <code>psql<\/code> \ub85c \uccab \uc811\uc18d\uae4c\uc9c0 \ud569\ub2c8\ub2e4.<\/p>\n\n<div class=\"databox\">\n  <p><strong>\uc774 \uc2dc\ub9ac\uc988\uc758 \ubaa9\ud45c.<\/strong> 24\ud3b8\uc744 \ub9c8\uce58\uba74 SELECT \ubd80\ud130 JOIN\u00b7\ud2b8\ub79c\uc7ad\uc158\u00b7\uc778\ub371\uc2a4\u00b7\uc131\ub2a5 \ud29c\ub2dd\u00b7\ubc31\uc5c5\/\ubcf5\uad6c\u00b7\ubcf5\uc81c\uae4c\uc9c0 \u2014 \uc791\uc740 \uc11c\ube44\uc2a4\uc758 DB \ub97c \ud63c\uc790 \uc6b4\uc601\ud560 \uc218 \uc788\ub294 \uc218\uc900\uc774 \ub429\ub2c8\ub2e4.<\/p>\n  <p><strong>1\ud3b8\uc758 \ub3c4\ucc29\uc810.<\/strong> <code>psql -d postgres<\/code> \uae4c\uc9c0 \ub4e4\uc5b4\uac00\uc11c <code>SELECT version();<\/code> \uacb0\uacfc\ub97c \ubcf4\ub294 \uac83.<\/p>\n<\/div>\n\n<h2>\uc65c PostgreSQL \uc778\uac00 \u2014 MySQL \uacfc\uc758 \ucc28\uc774 \ud55c \uc904<\/h2>\n\n<p>2026\ub144 \uae30\uc900 \uc624\ud508\uc18c\uc2a4 RDBMS \uc591\ub300 \uc0b0\ub9e5\uc740 <strong>PostgreSQL<\/strong> \uacfc <strong>MySQL\/MariaDB<\/strong> \uc785\ub2c8\ub2e4. \ub458 \ub2e4 \ud6cc\ub96d\ud558\uc9c0\ub9cc \uacb0\uc774 \ub2e4\ub985\ub2c8\ub2e4.<\/p>\n\n<div class=\"tablewrap\">\n<table>\n  <thead>\n    <tr><th>\uae30\uc900<\/th><th>PostgreSQL<\/th><th>MySQL<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr><td data-label=\"\uae30\uc900\">\ud45c\uc900 SQL \ucda9\uc2e4\ub3c4<\/td><td data-label=\"Postgres\">\ub9e4\uc6b0 \ub192\uc74c<\/td><td data-label=\"MySQL\">\uc911\uac04 (\ubc29\uc5b8 \ub9ce\uc74c)<\/td><\/tr>\n    <tr><td data-label=\"\uae30\uc900\">JSON\u00b7\uc9c0\ub9ac\u00b7\uac80\uc0c9 \ud655\uc7a5<\/td><td data-label=\"Postgres\">jsonb\u00b7PostGIS\u00b7full-text \ud45c\uc900 \ub0b4\uc7a5<\/td><td data-label=\"MySQL\">JSON \uc9c0\uc6d0 \uc788\uc9c0\ub9cc \uc57d\ud568<\/td><\/tr>\n    <tr><td data-label=\"\uae30\uc900\">\ub3d9\uc2dc\uc131 \uc81c\uc5b4<\/td><td data-label=\"Postgres\">MVCC \uc815\ud1b5, \ub77d \uac70\uc758 \uc548 \uc7a1\ud798<\/td><td data-label=\"MySQL\">InnoDB \ub3c4 MVCC \uc9c0\ub9cc \ubcf4\uc218\uc801<\/td><\/tr>\n    <tr><td data-label=\"\uae30\uc900\">\ub2e8\uc21c OLTP \uc18d\ub3c4<\/td><td data-label=\"Postgres\">\ube44\uc2b7<\/td><td data-label=\"MySQL\">\ub9e4\uc6b0 \ube60\ub984 (\uc5ed\uc0ac\uc801)<\/td><\/tr>\n    <tr><td data-label=\"\uae30\uc900\">\uace0\uae09 \ubd84\uc11d SQL<\/td><td data-label=\"Postgres\">\uc708\ub3c4\uc6b0\u00b7CTE\u00b7\uc7ac\uadc0 \uac15\ub825<\/td><td data-label=\"MySQL\">8.0 \uc774\ud6c4 \ub530\ub77c\uc7a1\ub294 \uc911<\/td><\/tr>\n  <\/tbody>\n<\/table>\n<\/div>\n\n<p>\ud55c \uc904 \uc694\uc57d: <strong>&#8220;\uae30\ub2a5 \ud48d\ubd80\ud568\uacfc \uc815\ud569\uc131\uc774\uba74 Postgres, \ub2e8\uc21c\ud55c \ud0a4-\uac12\/\uc870\ud68c \uc704\uc8fc\ub85c \ube60\ub984\uc774\uba74 MySQL&#8221;<\/strong>. \uadf8\ub9ac\uace0 \ucd5c\uadfc\uc5d0\ub294 LLM \uc784\ubca0\ub529(<code>pgvector<\/code>) \ub54c\ubb38\uc5d0 Postgres \uc810\uc720\uc728\uc774 \ube60\ub974\uac8c \uc62c\ub77c\uc624\uace0 \uc788\uc2b5\ub2c8\ub2e4. 24\ud3b8\uc5d0\uc11c \ub2e4\ub8f0 \ub0b4\uc6a9\ub3c4 \uadf8 \ud750\ub984\uc744 \ub530\ub77c\uac11\ub2c8\ub2e4.<\/p>\n\n<h2>\uc124\uce58 1 \u2014 \uc6b0\ubd84\ud22c \/ \ub370\ube44\uc548 (apt)<\/h2>\n\n<p>\uac00\uc7a5 \ud754\ud55c \uc11c\ubc84 \ud658\uacbd\uc785\ub2c8\ub2e4. \ud55c \uc904\uc774\uba74 \ub05d\ub0a9\ub2c8\ub2e4.<\/p>\n\n<pre><code>sudo apt update\nsudo apt install -y postgresql postgresql-contrib\n\n# \uc790\ub3d9\uc73c\ub85c systemd \uc11c\ube44\uc2a4 \ub4f1\ub85d\u00b7\uc2dc\uc791\ub429\ub2c8\ub2e4\nsystemctl status postgresql\n# active (running) \uc774 \ubcf4\uc774\uba74 OK<\/code><\/pre>\n\n<p>\uc124\uce58\ud558\uba74 \uc790\ub3d9\uc73c\ub85c <code>postgres<\/code> \ub77c\ub294 OS \uc0ac\uc6a9\uc790\uc640 <code>postgres<\/code> \ub370\uc774\ud130\ubca0\uc774\uc2a4\uac00 \uc0dd\uae41\ub2c8\ub2e4. \uccab \uc811\uc18d\uc740:<\/p>\n\n<pre><code>sudo -u postgres psql\n# postgres=# \u2190 \uc774 \ud504\ub86c\ud504\ud2b8\uac00 \ub728\uba74 \ub4e4\uc5b4\uc628 \uac83<\/code><\/pre>\n\n<h2>\uc124\uce58 2 \u2014 macOS (Homebrew)<\/h2>\n\n<pre><code>brew install postgresql@16\nbrew services start postgresql@16\n\n# psql \uba85\ub839\uc744 \uc5b4\ub514\uc11c\ub098 \uc4f0\ub824\uba74 PATH \ucd94\uac00 (zsh \uae30\uc900)\necho 'export PATH=\"\/opt\/homebrew\/opt\/postgresql@16\/bin:$PATH\"' >> ~\/.zshrc\nsource ~\/.zshrc\n\npsql postgres\n# postgres=# \u2190 \ub4e4\uc5b4\uc634<\/code><\/pre>\n\n<h2>\uc124\uce58 3 \u2014 \ub3c4\ucee4 (\uac00\uc7a5 \ube60\ub974\uace0 \uae68\ub057)<\/h2>\n\n<p>\uc2e4\uc81c \uc6b4\uc601\uc740 \ub3c4\ucee4\ub85c \ub744\uc6b0\ub294 \uacbd\uc6b0\uac00 \ub9ce\uc2b5\ub2c8\ub2e4. \ud55c \uc904\uc774\uba74 \ucee8\ud14c\uc774\ub108\uac00 \ub728\uace0, \ub05d\ub098\uba74 \ud55c \uc904\ub85c \uae68\ub057\ud558\uac8c \uc9c0\uc6c1\ub2c8\ub2e4.<\/p>\n\n<pre><code>docker run -d \\\n  --name pg-learn \\\n  -e POSTGRES_PASSWORD=mysecret \\\n  -p 5432:5432 \\\n  -v pg-learn-data:\/var\/lib\/postgresql\/data \\\n  postgres:16\n\n# \uc811\uc18d\ndocker exec -it pg-learn psql -U postgres<\/code><\/pre>\n\n<p>\uc635\uc158 \uc124\uba85: <code>-e POSTGRES_PASSWORD<\/code> \uac00 \uc288\ud37c\uc720\uc800 \ube44\ubc00\ubc88\ud638, <code>-p 5432:5432<\/code> \uac00 \ud638\uc2a4\ud2b8 \ud3ec\ud2b8, <code>-v pg-learn-data:\/var\/lib\/postgresql\/data<\/code> \uac00 \ucee8\ud14c\uc774\ub108\ub97c \uc9c0\uc6cc\ub3c4 \ub370\uc774\ud130\ub294 \uc0b4\uc544\ub0a8\uac8c \ud558\ub294 \uc601\uad6c \ubcfc\ub968\uc785\ub2c8\ub2e4.<\/p>\n\n<div class=\"warnbox\">\n  <p><strong>\ube44\ubc00\ubc88\ud638 \uc8fc\uc758.<\/strong> <code>mysecret<\/code> \uc740 \ud559\uc2b5\uc6a9\uc785\ub2c8\ub2e4. \uc2e4\uc81c \uc11c\ubc84\uc5d0 \ub744\uc6b8 \ub54c\ub294 <strong>\uae34 \ubb34\uc791\uc704 \ubb38\uc790\uc5f4<\/strong>\uc744 \uc4f0\uace0, \ud658\uacbd\ubcc0\uc218 \ud30c\uc77c(<code>.env<\/code>) \ub85c \ubd84\ub9ac\ud558\uc138\uc694. 20\u00b723\ud3b8(\ubc31\uc5c5\/\ubcf5\uad6c\u00b7\ud29c\ub2dd) \uc5d0\uc11c \ubcf4\uc548 \uad8c\uc7a5\ub3c4 \ud568\uaed8 \ub2e4\ub8f9\ub2c8\ub2e4.<\/p>\n<\/div>\n\n<h2>\uccab \uc811\uc18d \u2014 SELECT version();<\/h2>\n\n<p>\uc5b4\ub5a4 \ubc29\uc2dd\uc73c\ub85c \uc124\uce58\ud588\ub4e0 <code>psql<\/code> \ub85c \ub4e4\uc5b4\uc654\ub2e4\uba74 \ub2e4\uc74c 3\uac1c \uba85\ub839\ub9cc \uccd0\ubcf4\uba74 1\ud3b8\uc758 \ub3c4\ucc29\uc810\uc785\ub2c8\ub2e4.<\/p>\n\n<pre><code>postgres=# SELECT version();\n                                          version\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n PostgreSQL 16.x on x86_64-pc-linux-gnu, compiled by gcc ...\n\npostgres=# \\l            -- \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubaa9\ub85d\npostgres=# \\du           -- \uc0ac\uc6a9\uc790(\uc5ed\ud560) \ubaa9\ub85d\npostgres=# \\q            -- \uc885\ub8cc<\/code><\/pre>\n\n<p><code>\\<\/code> \ub85c \uc2dc\uc791\ud558\ub294 \uac74 <strong>psql \uc758 \ub2e8\ucd95 \uba85\ub839<\/strong>(\uba54\ud0c0 \ucee4\ub9e8\ub4dc) \uc785\ub2c8\ub2e4. SQL \ud45c\uc900\uc774 \uc544\ub2c8\ub77c psql \ub9cc\uc758 \ud3b8\uc758 \uae30\ub2a5 \u2014 2\ud3b8\uc5d0\uc11c \uc790\uc8fc \uc4f0\ub294 10\uac1c\ub97c \uc815\ub9ac\ud569\ub2c8\ub2e4.<\/p>\n\n<h2>\uad50\uc7ac 24\ud3b8 \ub85c\ub4dc\ub9f5<\/h2>\n\n<div class=\"tablewrap\">\n<table>\n  <thead>\n    <tr><th>\ud30c\ud2b8<\/th><th>\ud3b8\uc218<\/th><th>\uc8fc\uc81c<\/th><th>\ub05d\ub098\uba74<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr><td data-label=\"\ud30c\ud2b8\">Part 1 \uc785\ubb38<\/td><td data-label=\"\ud3b8\uc218\">1~5<\/td><td data-label=\"\uc8fc\uc81c\">\uc124\uce58\u00b7psql\u00b7DB\/\uc2a4\ud0a4\ub9c8\u00b7\uc790\ub8cc\ud615\u00b7\uccab CRUD<\/td><td data-label=\"\ub05d\ub098\uba74\">\ud14c\uc774\ube14 \ub9cc\ub4e4\uace0 \ub370\uc774\ud130 INSERT\/SELECT<\/td><\/tr>\n    <tr><td data-label=\"\ud30c\ud2b8\">Part 2 SQL \uae30\ucd08<\/td><td data-label=\"\ud3b8\uc218\">6~13<\/td><td data-label=\"\uc8fc\uc81c\">WHERE\u00b7ORDER\u00b7GROUP\u00b7JOIN\u00b7\uc11c\ube0c\ucffc\ub9ac\u00b7CTE\u00b7\uc708\ub3c4\uc6b0\u00b7jsonb\u00b7\ubdf0<\/td><td data-label=\"\ub05d\ub098\uba74\">\uc2e4\ubb34\uc5d0\uc11c \ub9c8\uc8fc\uce58\ub294 90% \uc758 \ucffc\ub9ac<\/td><\/tr>\n    <tr><td data-label=\"\ud30c\ud2b8\">Part 3 \uc911\uae09<\/td><td data-label=\"\ud3b8\uc218\">14~19<\/td><td data-label=\"\uc8fc\uc81c\">\ud2b8\ub79c\uc7ad\uc158\u00b7\ub77d\u00b7\uc778\ub371\uc2a4\u00b7EXPLAIN\u00b7\ud568\uc218\u00b7\ud2b8\ub9ac\uac70<\/td><td data-label=\"\ub05d\ub098\uba74\">\uc131\ub2a5 \ubb38\uc81c \uc9c4\ub2e8\u00b7\uc778\ub371\uc2a4 \uc124\uacc4<\/td><\/tr>\n    <tr><td data-label=\"\ud30c\ud2b8\">Part 4 \uace0\uae09<\/td><td data-label=\"\ud3b8\uc218\">20~24<\/td><td data-label=\"\uc8fc\uc81c\">\ubc31\uc5c5\/\ubcf5\uad6c\u00b7\ubcf5\uc81c\u00b7\ud30c\ud2f0\uc154\ub2dd\u00b7\ud29c\ub2dd\u00b7\ud655\uc7a5(pgvector\u00b7PostGIS)<\/td><td data-label=\"\ub05d\ub098\uba74\">\uc791\uc740 \uc11c\ube44\uc2a4 DB \ub2e8\ub3c5 \uc6b4\uc601<\/td><\/tr>\n  <\/tbody>\n<\/table>\n<\/div>\n\n<div class=\"cta\">\n  <h3>2\ud3b8 \u2014 psql \ud575\uc2ec \uba85\ub839 10\uac1c<\/h3>\n  <p>\\l, \\dt, \\d, \\du, \\timing, \\x, \\?, \\q, \\i, \uadf8\ub9ac\uace0 \ucffc\ub9ac \uacb0\uacfc \ud615\uc2dd \ubc14\uafb8\uae30. psql \ub9cc \uc798 \ub2e4\ub904\ub3c4 \uc791\uc5c5 \uc18d\ub3c4\uac00 \ub450 \ubc30\uac00 \ub429\ub2c8\ub2e4.<\/p>\n<\/div>\n\n<div class=\"series-nav\">\n  <strong>\ud83d\udcda PostgreSQL \ubc30\uc6b0\uae30 \uad50\uc7ac<\/strong><br>\n  \ud604\uc7ac: <strong>1\ud3b8 (\uc785\ubb38)<\/strong> \u00b7 \ub2e4\uc74c \u2192 2\ud3b8 psql \uccab \uc0ac\uc6a9 \u00b7 \uc9c4\ud589: <strong>1\/24<\/strong>\n<\/div>\n\n<\/article>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\uc65c PostgreSQL \uc778\uc9c0, \uc6b0\ubd84\ud22c\u00b7\ub9e5\u00b7\ub3c4\ucee4 3\uac00\uc9c0 5\ubd84 \uc124\uce58, psql \uccab \uc811\uc18d. 24\ud3b8 \uad50\uc7ac 1\ud3b8.<\/p>\n","protected":false},"author":1,"featured_media":256,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19],"tags":[],"class_list":["post-478","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-postgresql"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/posts\/478","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/comments?post=478"}],"version-history":[{"count":0,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/posts\/478\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/media\/256"}],"wp:attachment":[{"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/media?parent=478"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/categories?post=478"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/tags?post=478"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}