DB - Request & Response

Kjjeddยท2026๋…„ 1์›” 19์ผ

DB

๋ชฉ๋ก ๋ณด๊ธฐ
3/11
post-thumbnail

๐Ÿฆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์€ํ–‰๊ณผ ๊ตฌ์กฐ๊ฐ€ ๊ฑฐ์˜ ๊ฐ™๋‹ค

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ž‘๋™ ๋ฐฉ์‹์€ ์€ํ–‰์˜ ์—…๋ฌด ์ฒ˜๋ฆฌ ๋ฐฉ์‹๊ณผ ๋‹ฎ์•„ ์žˆ๋‹ค.

  • ๐Ÿ™‹ ์‚ฌ์šฉ์ž๋Š” ์ง์ ‘ ์ €์žฅ์†Œ์— ์ ‘๊ทผํ•˜์ง€ ์•Š๋Š”๋‹ค
  • ๐Ÿ‘จโ€๐Ÿ’ผ ์ค‘๊ฐ„ ๊ด€๋ฆฌ์ž๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค
  • ๐Ÿ” ์‹ค์ œ ์ €์žฅ์†Œ๋Š” ์™ธ๋ถ€์— ๋…ธ์ถœ๋˜์ง€ ์•Š๋Š”๋‹ค

์ด๊ฑธ ์€ํ–‰์— ๋Œ€์ž…ํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ๋œ๋‹ค.


๐Ÿ’ธ ์€ํ–‰์—์„œ ์ž…์ถœ๊ธˆ์ด ์ฒ˜๋ฆฌ๋˜๋Š” ํ๋ฆ„

[๊ณ ๊ฐ]
   |
   | ์ž…๊ธˆ / ์ถœ๊ธˆ ์š”์ฒญ ๐Ÿ“
   v
[์ž…์ถœ๊ธˆ ์‹ ์ฒญ์„œ]
   |
   | ์š”์ฒญ ์ „๋‹ฌ
   v
[์€ํ–‰์›]
   |
   | ์ฒ˜๋ฆฌ ์ง€์‹œ
   v
[๊ธˆ๊ณ ์ง€๊ธฐ]
   |
   | ์‹ค์ œ ๋ˆ ์ด๋™
   v
[๊ธˆ๊ณ ]

์—ฌ๊ธฐ์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์‚ฌ์‹ค ํ•˜๋‚˜ ๐Ÿ‘‡

๊ณ ๊ฐ์€ ๊ธˆ๊ณ ์— ์ง์ ‘ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์—†๋‹ค ๐Ÿ”’

์€ํ–‰์›์ด ๋ชจ๋“  ์š”์ฒญ์„ ๋Œ€์‹  ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค.


๐Ÿ—„๏ธ ์ด ๊ตฌ์กฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์น˜ํ™˜ํ•ด๋ณด์ž

[์‚ฌ์šฉ์ž]
   |
   | API ์š”์ฒญ / SQL ์š”์ฒญ ๐ŸŒ
   v
[์„œ๋ฒ„ or DB Client]
   |
   | ์ฟผ๋ฆฌ ์ „๋‹ฌ
   v
[MySQL Daemon (mysqld)]
   |
   | ์‹คํ–‰ ๊ณ„ํš ์ˆ˜๋ฆฝ
   v
[Schema]
   |
   | ๋ฐ์ดํ„ฐ ์ ‘๊ทผ
   v
[Table]
์€ํ–‰ ๊ฐœ๋… ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐœ๋…
๊ณ ๊ฐ ๐Ÿ™‹ ์‚ฌ์šฉ์ž
์ž…์ถœ๊ธˆ ์‹ ์ฒญ์„œ ๐Ÿ“„ ์„œ๋ฒ„ / DB Tool (Datagrip ๋“ฑ)
์€ํ–‰์› ๐Ÿ‘จโ€๐Ÿ’ผ MySQL Daemon (mysqld)
๊ธˆ๊ณ ์ง€๊ธฐ ๐Ÿ”‘ Schema
๊ธˆ๊ณ  ๐Ÿ’ฐ Table

๐Ÿค– MySQL Daemon (mysqld) ๋ž€

MySQL์—์„œ ์‹ค์ œ๋กœ ์ผํ•˜๋Š” ์ฃผ์ฒด๋Š” mysqld๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ๋ณด๋‚ด๋Š” ๋ชจ๋“  SQL์€ ๋ฐ˜๋“œ์‹œ ์ด ๋…€์„์„ ๊ฑฐ์นœ๋‹ค.

  • ๐Ÿ“ฅ ์ฟผ๋ฆฌ๋ฅผ ๋ฐ›๋Š”๋‹ค
  • ๐Ÿง  ์‹คํ–‰ ๊ณ„ํš์„ ์„ธ์šด๋‹ค
  • ๐Ÿ“ฆ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ /์“ด๋‹ค
  • ๐Ÿ“ค ๊ฒฐ๊ณผ๋ฅผ ๋Œ๋ ค์ค€๋‹ค

๊ทธ๋ž˜์„œ mysqld๋Š” ์€ํ–‰์› ์—ญํ• ๊ณผ ๊ฒน์นœ๋‹ค.


๐Ÿ‘ป ๋ฐ๋ชฌ(Daemon)์ด๋ž€?

๋ฐ๋ชฌ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์‹คํ–‰ํ•˜์ง€ ์•Š์•„๋„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๊ณ„์† ์‹คํ–‰๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

์–ด์›์€ ๊ทธ๋ฆฌ์Šค ์‹ ํ™”์˜ โ€œฮดฮฑฮฏฮผฯ‰ฮฝ(๋‹ค์ด๋ชฌ)โ€์—์„œ ์™”๋‹ค.
์‹ ๊ณผ ์ธ๊ฐ„ ์‚ฌ์ด์—์„œ ์กฐ์šฉํžˆ ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋˜ ์กด์žฌ๋‹ค.

์ปดํ“จํ„ฐ ์„ธ๊ณ„์—์„œ๋„ ์—ญํ• ์€ ๋˜‘๊ฐ™๋‹ค.

  • ๐Ÿ‘€ ๋ˆˆ์— ๋ณด์ด์ง€ ์•Š๊ฒŒ
  • ๐Ÿ› ๏ธ ๊ณ„์† ์‹คํ–‰๋˜๋ฉฐ
  • ๐Ÿ“ก ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค

๊ทธ๋ž˜์„œ ๋ฐ๋ชฌ ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„์€ ๋ณดํ†ต d๋กœ ๋๋‚œ๋‹ค.

  • syslogd
  • sshd
  • mysqld โญ

๐Ÿ–ฅ๏ธ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๋ž€?

๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ์ƒํƒœ์—์„œ ์‹œ์Šคํ…œ์„ ์ง€ํƒฑํ•˜๋Š” ํ•ต์‹ฌ ์—ญํ• ์„ ํ•œ๋‹ค.

์‚ฌ์šฉ์ž ๋ˆˆ์— ๋ณด์ด๋Š” ์„ธ๊ณ„ ๐Ÿ‘€
----------------------------
๋ธŒ๋ผ์šฐ์ €
ํ„ฐ๋ฏธ๋„
์—๋””ํ„ฐ

๋ณด์ด์ง€ ์•Š๋Š” ์„ธ๊ณ„ ๐ŸŒ‘
----------------------------
mysqld
๋กœ๊ทธ ์ˆ˜์ง‘๊ธฐ
์Šค์ผ€์ค„๋Ÿฌ
๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ๋ชฌ

MySQL์€ ํ•ญ์ƒ ์š”์ฒญ์„ ๋ฐ›์„ ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ ๋ฐ˜๋“œ์‹œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๋กœ ์‹คํ–‰๋œ๋‹ค.


๐Ÿ”Œ โ€œ์—ฐ๊ฒฐ(Connection)โ€ ๊ฐœ๋…

์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ๋งˆ๋‹ค ์ง์ ‘ ๋ง์„ ๊ฑฐ๋Š” ๊ฒŒ ์•„๋‹ˆ๋‹ค.

  • ๐Ÿ”— ๋จผ์ € โ€œ์—ฐ๊ฒฐ(Connection)โ€์„ ๋งบ๊ณ 
  • ๐Ÿ“จ ๊ทธ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋‚ด๊ณ 
  • ๐Ÿ“ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›๋Š”๋‹ค

์ด๊ฑด ์€ํ–‰์œผ๋กœ ์น˜๋ฉด ์ด๋ ‡๋‹ค.

โ€œ๋ฒˆํ˜ธํ‘œ๋ฅผ ๋ฝ‘๊ณ , ์ฐฝ๊ตฌ๊ฐ€ ์—ด๋ฆฌ๋ฉด ๊ทธ ์ฐฝ๊ตฌ๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒโ€์ด๋‹ค.

๊ทธ๋ž˜์„œ DB์—์„œ๋Š” ์ปค๋„ฅ์…˜ ํ’€(Connection Pool)์ด ๋งค์šฐ ์ค‘์š”ํ•ด์ง„๋‹ค.


๐Ÿ“‚ JSON ํŒŒ์ผ vs ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

JSON ํŒŒ์ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
ํŒŒ์ผ ์ง์ ‘ ์ ‘๊ทผ ๋ฐ๋ชฌ์„ ํ†ตํ•ด ์ ‘๊ทผ
๋™์‹œ ์ ‘๊ทผ ์œ„ํ—˜ โš ๏ธ ๋™์‹œ์„ฑ ์ œ์–ด ๐Ÿ”’
ํŠธ๋žœ์žญ์…˜ ์—†์Œ ํŠธ๋žœ์žญ์…˜ ์ง€์› ๐Ÿ’ช
๊ตฌ์กฐ ์ž์œ ๋กœ์›€ ์Šคํ‚ค๋งˆ ๊ธฐ๋ฐ˜ ๐Ÿ“

๐Ÿง  ํ•ต์‹ฌ ์ •๋ฆฌ

  • ๐Ÿ“ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํŒŒ์ผ์ด ์•„๋‹ˆ๋‹ค
  • ๐Ÿ‘จโ€๐Ÿ’ผ mysqld๋Š” ๋ชจ๋“  ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ด€๋ฆฌ์ž๋‹ค
  • ๐Ÿ”’ Table์€ ์ง์ ‘ ์ ‘๊ทผ ๋Œ€์ƒ์ด ์•„๋‹ˆ๋‹ค
  • ๐Ÿ”— ๋ชจ๋“  ์š”์ฒญ์€ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค
profile
Gongbuhaja

0๊ฐœ์˜ ๋Œ“๊ธ€