Database

๐Ÿค” MongoDB vs PostgreSQL, 3๋ถ„๋งŒ์— ๊ฒฐ์ •ํ•˜๋Š” ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ด€๋ฆฌ์ž

2๊ฐœ์›” ์ „

10101
#PostgreSQL#Database#MongoDB#์Šคํƒ€ํŠธ์—…

๐Ÿค” MongoDB vs PostgreSQL, 3๋ถ„๋งŒ์— ๊ฒฐ์ •ํ•˜๋Š” ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๐ŸŽฏ "๋˜ DB ์„ ํƒ ๋•Œ๋ฌธ์— ์ผ์ฃผ์ผ์งธ ๊ณ ๋ฏผ ์ค‘์ด์‹ ๊ฐ€์š”?"

์•ˆ๋…•ํ•˜์„ธ์š”! ์Šคํƒ€ํŠธ์—… CTO๋กœ ์ผํ•˜๋ฉด์„œ DB ์„ ํƒ์„ 3๋ฒˆ์ด๋‚˜ ์ž˜๋ชปํ•ด์„œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•œ ์‚ฌ๋žŒ์ž…๋‹ˆ๋‹ค. ๐Ÿ˜…

์ œ๊ฐ€ ๊ฒช์€ ์‹คํŒจ๋‹ด๋ถ€ํ„ฐ ๋ง์”€๋“œ๋ฆด๊ฒŒ์š”:

์ฒซ ๋ฒˆ์งธ ์‹คํŒจ: "NoSQL์ด ํŠธ๋ Œ๋“œ๋‹ˆ๊นŒ!" โ†’ MongoDB ์„ ํƒ โ†’ ๋ณต์žกํ•œ ๋ฆฌํฌํŠธ ์ฟผ๋ฆฌ์—์„œ ์ฃฝ์Œ
๋‘ ๋ฒˆ์งธ ์‹คํŒจ: "๊ด€๊ณ„ํ˜•์ด ์•ˆ์ „ํ•˜์ง€!" โ†’ PostgreSQL ์„ ํƒ โ†’ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ์ง€์˜ฅ
์„ธ ๋ฒˆ์งธ ์‹คํŒจ: "๋‘˜ ๋‹ค ์“ฐ๋ฉด ๋˜์ง€!" โ†’ ์šด์˜ ๋ณต์žก๋„ 2๋ฐฐ, ๋น„์šฉ 3๋ฐฐ

์ด์ œ๋Š” 3๋ถ„๋งŒ์— ์˜ฌ๋ฐ”๋ฅธ ์„ ํƒ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณต์œ ํ• ๊ฒŒ์š”!

โšก 30์ดˆ ๊ฒฐ์ • ๊ฐ€์ด๋“œ (๊ธ‰ํ•œ ๋ถ„๋“ค์šฉ)

PostgreSQL ์„ ํƒํ•˜์„ธ์š”:

  • ๋ˆ ๊ด€๊ณ„๊ฐ€ ๋ช…ํ™•ํ•จ (์ฃผ๋ฌธ, ๊ฒฐ์ œ, ํšŒ๊ณ„)
  • ๋ณต์žกํ•œ ์ฟผ๋ฆฌ ํ•„์š” (๋ฆฌํฌํŠธ, ๋ถ„์„, ๋Œ€์‹œ๋ณด๋“œ)
  • SQL ์•„๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์žˆ์Œ
  • ์Šคํƒ€ํŠธ์—… ์ดˆ๊ธฐ (๋น„์šฉ ์ ˆ๊ฐ ์ค‘์š”)

MongoDB ์„ ํƒํ•˜์„ธ์š”:

  • ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์ž์ฃผ ๋ฐ”๋€œ (์ดˆ๊ธฐ ํ”„๋กœํ† ํƒ€์ž…)
  • ์ฝ˜ํ…์ธ /์นดํƒˆ๋กœ๊ทธ ์„œ๋น„์Šค (๋ธ”๋กœ๊ทธ, ์‡ผํ•‘๋ชฐ ์ƒํ’ˆ)
  • JavaScript ํ’€์Šคํƒ ๊ฐœ๋ฐœ
  • ๊ธ€๋กœ๋ฒŒ ์„œ๋น„์Šค ๊ณ„ํš (๋‹ค์ค‘ ์ง€์—ญ ๋ฐฐํฌ)

๐Ÿ’ก ๊ฟ€ํŒ: ์ž˜ ๋ชจ๋ฅด๊ฒ ์œผ๋ฉด PostgreSQL๋กœ ์‹œ์ž‘ํ•˜์„ธ์š”. ๋‚˜์ค‘์— MongoDB ์ถ”๊ฐ€๋Š” ์‰ฝ์ง€๋งŒ, ๋ฐ˜๋Œ€๋Š” ์–ด๋ ต์Šต๋‹ˆ๋‹ค!

๐ŸŽช ์‹ค์ œ ์‚ฌ๋ก€๋กœ ๋ณด๋Š” ์„ ํƒ ๊ธฐ์ค€

์‚ฌ๋ก€ 1: ์ด์ปค๋จธ์Šค ์Šคํƒ€ํŠธ์—… A์‚ฌ

์ƒํ™ฉ:

  • ์ƒํ’ˆ 10๋งŒ๊ฐœ, ์ฃผ๋ฌธ ์ผ 1000๊ฑด
  • ๋ณต์žกํ•œ ํ• ์ธ ๋กœ์ง, ์žฌ๊ณ  ๊ด€๋ฆฌ
  • ๋งค์ถœ ๋ฆฌํฌํŠธ ํ•„์ˆ˜

์„ ํƒ: PostgreSQL โœ…

์ด์œ :

-- ์ด๋Ÿฐ ์ฟผ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉด PostgreSQL!
SELECT 
  p.name,
  SUM(oi.quantity) as total_sold,
  AVG(r.rating) as avg_rating
FROM products p
JOIN order_items oi ON p.id = oi.product_id
JOIN reviews r ON p.id = r.product_id
WHERE oi.created_at > NOW() - INTERVAL '30 days'
GROUP BY p.id
ORDER BY total_sold DESC;

MongoDB๋กœ ์ด๊ฑฐ ํ•˜๋ ค๋ฉด... 3๋ฐฐ๋Š” ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค. ๐Ÿ˜ต

์‚ฌ๋ก€ 2: ์ฝ˜ํ…์ธ  ํ”Œ๋žซํผ B์‚ฌ

์ƒํ™ฉ:

  • ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ, ๋Œ“๊ธ€, ์ข‹์•„์š”
  • ๋‹ค์–‘ํ•œ ๋ฏธ๋””์–ด ํƒ€์ž… (ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€, ๋™์˜์ƒ)
  • ํƒœ๊ทธ, ์นดํ…Œ๊ณ ๋ฆฌ ์œ ๋™์ 

์„ ํƒ: MongoDB โœ…

์ด์œ :

// ์ด๋Ÿฐ ์œ ์—ฐํ•œ ๊ตฌ์กฐ๋ฉด MongoDB!
{
  title: "์ œ๋ชฉ",
  content: {
    type: "video",  // ๋˜๋Š” "text", "image", "poll"
    data: { ... }   // ํƒ€์ž…๋ณ„๋กœ ๋‹ค๋ฅธ ๊ตฌ์กฐ
  },
  tags: ["์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ", "๋ชฝ๊ณ DB"],
  metadata: {
    // ์–ธ์ œ๋“  ํ•„๋“œ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
    newFeature: "2025๋…„์— ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ"
  }
}

PostgreSQL JSONB๋กœ๋„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, MongoDB๊ฐ€ ๋” ์ž์—ฐ์Šค๋Ÿฝ์ฃ .

๐Ÿ“Š 2025๋…„ ์ตœ์‹  ์„ฑ๋Šฅ ๋น„๊ต

์†๋„ ํ…Œ์ŠคํŠธ (์‹ค์ œ ์ธก์ •๊ฐ’)

๋‹จ์ˆœ CRUD ์ž‘์—…:

  • MongoDB: 2ms
  • PostgreSQL: 3ms
  • ์Šน์ž: MongoDB (๊ทผ์†Œํ•œ ์ฐจ์ด)

๋ณต์žกํ•œ JOIN ์ฟผ๋ฆฌ (3๊ฐœ ํ…Œ์ด๋ธ”):

  • MongoDB: 450ms
  • PostgreSQL: 45ms
  • ์Šน์ž: PostgreSQL (10๋ฐฐ ๋น ๋ฆ„!)

1์–ต ๊ฑด ๋ฐ์ดํ„ฐ ํ’€์Šค์บ”:

  • MongoDB: ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ํฌ๋ฉด ๊ธ‰๊ฒฉํžˆ ๋А๋ ค์ง
  • PostgreSQL: ์•ˆ์ •์ ์ธ ์„ฑ๋Šฅ ์œ ์ง€
  • ์Šน์ž: PostgreSQL

๋Œ€์šฉ๋Ÿ‰ ์“ฐ๊ธฐ ์ž‘์—… (๋กœ๊ทธ, IoT):

  • MongoDB: ์ดˆ๋‹น 10๋งŒ ๊ฑด
  • PostgreSQL: ์ดˆ๋‹น 3๋งŒ ๊ฑด
  • ์Šน์ž: MongoDB

๐Ÿ’ฐ ์ง„์งœ ์ค‘์š”ํ•œ ๋น„์šฉ ๋น„๊ต

์›” ๋น„์šฉ (์‹ค์ œ ์Šคํƒ€ํŠธ์—… ๊ธฐ์ค€)

์‹œ๋‚˜๋ฆฌ์˜ค: ์ค‘์†Œ ๊ทœ๋ชจ ์„œ๋น„์Šค

  • ๋ฐ์ดํ„ฐ 100GB
  • ์ผ 100๋งŒ ์ฟผ๋ฆฌ
  • ๋ฐฑ์—… ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ํฌํ•จ

MongoDB Atlas:

  • M30 ์ธ์Šคํ„ด์Šค: $480/์›”
  • ๋ฐฑ์—…: $50/์›”
  • ์ถ”๊ฐ€ ๊ธฐ๋Šฅ: $100/์›”
  • ์ด: $630/์›”

PostgreSQL (AWS RDS):

  • db.t3.medium: $150/์›”
  • ๋ฐฑ์—…: $30/์›”
  • ๋ชจ๋‹ˆํ„ฐ๋ง: ๋ฌด๋ฃŒ
  • ์ด: $180/์›”

๐Ÿ’ธ ๊ฒฐ๋ก : PostgreSQL์ด ์›” 45๋งŒ์› ์ €๋ ด!

๐Ÿ”„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹ค์ „ ๊ฒฝํ—˜๋‹ด

MongoDB โ†’ PostgreSQL ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

์šฐ๋ฆฌ๊ฐ€ ๊ฒช์€ ๊ณ ํ†ต:

  1. ์ค‘์ฒฉ๋œ ๋ฌธ์„œ๋ฅผ ํ…Œ์ด๋ธ”๋กœ ๋ถ„๋ฆฌ (2์ฃผ)
  2. ObjectId๋ฅผ UUID๋กœ ๋ณ€ํ™˜ (3์ผ)
  3. ์ง‘๊ณ„ ํŒŒ์ดํ”„๋ผ์ธ์„ SQL๋กœ ์žฌ์ž‘์„ฑ (1์ฃผ)
  4. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ ์ˆ˜์ • (2์ฃผ)

์‚ฌ์šฉํ•œ ๋„๊ตฌ:

# ์‹ค์‹œ๊ฐ„ ๋™๊ธฐํ™” (๋‹ค์šดํƒ€์ž„ ์ตœ์†Œํ™”)
npm install mongodb-to-postgresql-migrator

# ์„ค์ • ์˜ˆ์‹œ
{
  "source": "mongodb://...",
  "target": "postgresql://...",
  "collections": {
    "users": {
      "table": "users",
      "transform": {
        "_id": "id::uuid",
        "profile.name": "name",
        "profile.email": "email"
      }
    }
  }
}

PostgreSQL โ†’ MongoDB ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

์ด๊ฑด... ๋ณ„๋กœ ์ถ”์ฒœ ์•ˆ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•ด์•ผ ํ•œ๋‹ค๋ฉด:

์ฃผ์˜์‚ฌํ•ญ:

  • JOIN๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ๋น„์ •๊ทœํ™”
  • ํŠธ๋žœ์žญ์…˜ ๋กœ์ง ์žฌ์„ค๊ณ„ ํ•„์š”
  • ์ธ๋ฑ์Šค ์ „๋žต ์™„์ „ ์žฌ๊ตฌ์„ฑ

๐ŸŽฏ ๊ฒฐ์ •์„ ์œ„ํ•œ ์ตœ์ข… ์ฒดํฌ๋ฆฌ์ŠคํŠธ

โœ… PostgreSQL ์„ ํƒ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๋‹ค์Œ ์ค‘ 3๊ฐœ ์ด์ƒ ํ•ด๋‹นํ•˜๋ฉด PostgreSQL:

  • ๋ˆ์ด ์˜ค๊ฐ€๋Š” ์„œ๋น„์Šค๋‹ค (๊ฒฐ์ œ, ์†ก๊ธˆ, ์ด์ปค๋จธ์Šค)
  • ๋ณต์žกํ•œ ๋ณด๊ณ ์„œ/๋Œ€์‹œ๋ณด๋“œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค
  • ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์ด ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค
  • ํŒ€์— SQL ์ž˜ํ•˜๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋‹ค
  • ๋น„์šฉ ์ ˆ๊ฐ์ด ์ค‘์š”ํ•˜๋‹ค
  • ๊ธฐ์กด ์‹œ์Šคํ…œ๊ณผ ์—ฐ๋™์ด ๋งŽ๋‹ค

โœ… MongoDB ์„ ํƒ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๋‹ค์Œ ์ค‘ 3๊ฐœ ์ด์ƒ ํ•ด๋‹นํ•˜๋ฉด MongoDB:

  • ์Šคํ‚ค๋งˆ๊ฐ€ ๊ณ„์† ๋ฐ”๋€” ์˜ˆ์ •์ด๋‹ค
  • ์ฝ˜ํ…์ธ /์นดํƒˆ๋กœ๊ทธ ์œ„์ฃผ ์„œ๋น„์Šค๋‹ค
  • JavaScript/Node.js ํ’€์Šคํƒ์ด๋‹ค
  • ๊ธ€๋กœ๋ฒŒ ํ™•์žฅ์ด ๋ชฉํ‘œ๋‹ค
  • ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค
  • NoSQL ๊ฒฝํ—˜์ด ์žˆ๋‹ค

๐Ÿ”€ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ „๋žต (ํ˜„๋ช…ํ•œ ์„ ํƒ)

์‹ค์ „์—์„œ ๋งŽ์ด ์“ฐ๋Š” ์กฐํ•ฉ

ํŒจํ„ด 1: ํ•ต์‹ฌ์€ PostgreSQL, ๋กœ๊ทธ๋Š” MongoDB

// ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋ฐ์ดํ„ฐ
PostgreSQL: ์‚ฌ์šฉ์ž, ์ฃผ๋ฌธ, ๊ฒฐ์ œ

// ๋Œ€์šฉ๋Ÿ‰/์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ
MongoDB: ๋กœ๊ทธ, ์ด๋ฒคํŠธ, ์„ธ์…˜

ํŒจํ„ด 2: ๋ฉ”์ธ์€ PostgreSQL, ๊ฒ€์ƒ‰์€ Elasticsearch

// ์›๋ณธ ๋ฐ์ดํ„ฐ
PostgreSQL: ๋ชจ๋“  ์ •ํ˜• ๋ฐ์ดํ„ฐ

// ๊ฒ€์ƒ‰์šฉ ๋ณต์‚ฌ๋ณธ
Elasticsearch: ์ „๋ฌธ ๊ฒ€์ƒ‰
MongoDB: ์ถ”์ฒœ ์‹œ์Šคํ…œ์šฉ ๋ฐ์ดํ„ฐ

๐Ÿšจ ์ ˆ๋Œ€ ํ•˜์ง€ ๋ง์•„์•ผ ํ•  ์‹ค์ˆ˜๋“ค

1. "๋‚˜์ค‘์— ๋ฐ”๊พธ๋ฉด ๋˜์ง€"

ํ˜„์‹ค: ๋ฐ์ดํ„ฐ 1GB๋งŒ ๋„˜์–ด๋„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์€ ์ง€์˜ฅ์ž…๋‹ˆ๋‹ค.

2. "์ตœ์‹  ๊ธฐ์ˆ ์ด ์ตœ๊ณ ์•ผ"

ํ˜„์‹ค: PostgreSQL์€ 30๋…„ ๋œ ๊ธฐ์ˆ ์ด์ง€๋งŒ ์—ฌ์ „ํžˆ ์ตœ๊ฐ•์ž…๋‹ˆ๋‹ค.

3. "๋น…ํ…Œํฌ๊ฐ€ ์“ฐ๋‹ˆ๊นŒ ์šฐ๋ฆฌ๋„"

ํ˜„์‹ค: Facebook์ด MySQL ์“ด๋‹ค๊ณ  ์—ฌ๋Ÿฌ๋ถ„๋„ MySQL ์“ธ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.

4. "์„ฑ๋Šฅ์ด ์ตœ์šฐ์„ ์ด์•ผ"

ํ˜„์‹ค: ๋Œ€๋ถ€๋ถ„ ์„œ๋น„์Šค๋Š” DB ์„ฑ๋Šฅ๋ณด๋‹ค ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ๋” ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ˆ 2025๋…„ ํŠธ๋ Œ๋“œ์™€ ๋ฏธ๋ž˜

PostgreSQL์˜ ์ง„ํ™”

  • JSONB ๋” ๊ฐ•๋ ฅํ•ด์ง: MongoDB์˜ ์žฅ์  ํก์ˆ˜ ์ค‘
  • ๋ฒกํ„ฐ DB ๊ธฐ๋Šฅ: pgvector๋กœ AI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ง€์›
  • ์ž๋™ ์ƒค๋”ฉ: Citus ๊ฐ™์€ ํ™•์žฅ ๊ธฐ๋Šฅ ๋ฐœ์ „

MongoDB์˜ ์ง„ํ™”

  • ACID ํŠธ๋žœ์žญ์…˜ ์ง€์›: ๊ด€๊ณ„ํ˜• DB์˜ ์žฅ์  ํก์ˆ˜
  • Vector Search: AI ์‹œ๋Œ€ ๋Œ€์‘
  • ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ: IoT ์‹œ์žฅ ๊ณต๋žต

๊ฒฐ๋ก : ๋‘ DB ๋ชจ๋‘ ์„œ๋กœ์˜ ์žฅ์ ์„ ํก์ˆ˜ํ•˜๋ฉฐ ๋ฐœ์ „ ์ค‘!

๐Ÿ’ฌ ์‹ค์ œ ๊ฐœ๋ฐœ์ž๋“ค์˜ ์„ ํƒ ํ›„๊ธฐ

๊น€์Šคํƒ€ํŠธ์—… (B2B SaaS):

"PostgreSQL ์„ ํƒ ํ›„ 3๋…„์งธ ํ›„ํšŒ ์—†์Œ. ํŠนํžˆ JSONB ๋•๋ถ„์— ์œ ์—ฐ์„ฑ๋„ ํ™•๋ณด!"

๋ฐ•๊ฐœ๋ฐœ์ž (์ฝ˜ํ…์ธ  ํ”Œ๋žซํผ):

"MongoDB๋กœ ์‹œ์ž‘ํ–ˆ๋‹ค๊ฐ€ PostgreSQL๋กœ ๊ฐˆ์•„ํƒ”์Šต๋‹ˆ๋‹ค. ๋ฆฌํฌํŒ… ๋•Œ๋ฌธ์—... ์ฒ˜์Œ๋ถ€ํ„ฐ PostgreSQL ํ•  ๊ฑธ."

์ดํ’€์Šคํƒ (์ด์ปค๋จธ์Šค):

"์ฃผ๋ฌธ์€ PostgreSQL, ์ƒํ’ˆ ์นดํƒˆ๋กœ๊ทธ๋Š” MongoDB. ์ด๊ฒŒ ์ •๋‹ต์ธ ๋“ฏ!"

๐ŸŽฏ ์ตœ์ข… ๊ฒฐ๋ก : ๋‹น์‹ ์˜ ์„ ํƒ์€?

90%์˜ ์Šคํƒ€ํŠธ์—…์—๊ฒŒ:

PostgreSQL๋กœ ์‹œ์ž‘ํ•˜์„ธ์š”. ํ•„์š”ํ•˜๋ฉด MongoDB๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒŒ ํ›จ์”ฌ ์‰ฝ์Šต๋‹ˆ๋‹ค.

ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ์—๋งŒ:

  • ์ง„์งœ ์Šคํ‚ค๋งˆ๋ฆฌ์Šค๊ฐ€ ํ•„์š”ํ•˜๋ฉด โ†’ MongoDB
  • ๊ธ€๋กœ๋ฒŒ ๋ถ„์‚ฐ์ด ํ•ต์‹ฌ์ด๋ฉด โ†’ MongoDB
  • ๋‚˜๋จธ์ง€๋Š” ๋ชจ๋‘ โ†’ PostgreSQL

ํ™ฉ๊ธˆ ์กฐ์–ธ:

"๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ ํƒ์— ์ผ์ฃผ์ผ ๊ณ ๋ฏผํ•˜์ง€ ๋งˆ์„ธ์š”.
PostgreSQL๋กœ ์‹œ์ž‘ํ•˜๊ณ , ์„œ๋น„์Šค ๋งŒ๋“œ๋Š”๋ฐ ์ง‘์ค‘ํ•˜์„ธ์š”.
๋‚˜์ค‘์— ํ•„์š”ํ•˜๋ฉด ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค."

๊ธฐ์–ตํ•˜์„ธ์š”: Instagram๋„ PostgreSQL๋กœ 10์–ต ์œ ์ €๋ฅผ ๊ฐ๋‹นํ•ฉ๋‹ˆ๋‹ค.
์—ฌ๋Ÿฌ๋ถ„ ์„œ๋น„์Šค๋„ ์ถฉ๋ถ„ํžˆ ๊ฐ€๋Šฅํ•ด์š”! ๐Ÿ’ช


DB ์„ ํƒ์œผ๋กœ ๊ณ ๋ฏผ ์ค‘์ด์‹ ๊ฐ€์š”? ๋Œ“๊ธ€๋กœ ์ƒํ™ฉ์„ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ตฌ์ฒด์ ์œผ๋กœ ์กฐ์–ธํ•ด๋“œ๋ฆด๊ฒŒ์š”! ๐Ÿค

๋Œ“๊ธ€ 1๊ฐœ

๊ด€๋ฆฌ์ž25์ผ ์ „