ORM - Python DB Driver

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

ORM

๋ชฉ๋ก ๋ณด๊ธฐ
1/8
post-thumbnail

๐Ÿงฉ ORM์ด ์™œ ๋“ฑ์žฅํ–ˆ์„๊นŒ?

์ง€๊ธˆ๊นŒ์ง€ Python์—์„œ SQL์„ ์ง์ ‘ ์ž‘์„ฑํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‹ค๋ค˜๋‹ค.
์ด ๋ฐฉ์‹์€ ๋ถ„๋ช… ๊ฐ•๋ ฅํ•˜์ง€๋งŒ, ํ”„๋กœ์ ํŠธ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์—ฌ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ๋“œ๋Ÿฌ๋‚œ๋‹ค.


๐Ÿ˜ต SQL ์ค‘์‹ฌ ๊ฐœ๋ฐœ์˜ ํ˜„์‹ค

์•„๋ž˜ ์ƒํ™ฉ์„ ํ•œ ๋ฒˆ ๋– ์˜ฌ๋ ค๋ณด์ž.

  • ๐Ÿ“„ SQL ๋ฌธ์ž์—ด์ด ์ฝ”๋“œ ๊ณณ๊ณณ์— ํฉ์–ด์ ธ ์žˆ์Œ
  • ๐Ÿ”ง ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ์ด ๋ฐ”๋€Œ๋ฉด SQL์„ ์ „๋ถ€ ์ˆ˜์ •ํ•ด์•ผ ํ•จ
  • ๐Ÿ› ์˜คํƒ€ ํ•˜๋‚˜๋กœ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ ๋ฐœ์ƒ
  • ๐Ÿ”’ SQL Injection์„ ํ•ญ์ƒ ์‹ ๊ฒฝ ์จ์•ผ ํ•จ

์ฆ‰, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๋ณด๋‹ค SQL ๊ด€๋ฆฌ์— ๋” ๋งŽ์€ ์—๋„ˆ์ง€๋ฅผ ์“ฐ๋Š” ์ƒํ™ฉ์ด ๋œ๋‹ค.


๐Ÿ“ฆ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด vs ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๊ตฌ๋ถ„ Python (๊ฐ์ฒด์ง€ํ–ฅ) RDB (๊ด€๊ณ„ํ˜•)
๊ธฐ๋ณธ ๋‹จ์œ„ ๊ฐ์ฒด(Object) ํ–‰(Row)
๊ตฌ์กฐ ํด๋ž˜์Šค + ์†์„ฑ ํ…Œ์ด๋ธ” + ์ปฌ๋Ÿผ
๊ด€๊ณ„ ํ‘œํ˜„ ์ฐธ์กฐ, ์ƒ์† FK, JOIN

Python์€ ๊ฐ์ฒด๋กœ ์‚ฌ๊ณ ํ•˜๋Š”๋ฐ,
DB๋Š” ํ…Œ์ด๋ธ”๋กœ ์‚ฌ๊ณ ํ•œ๋‹ค.

์ด ๊ฐ„๊ทน์„ ๋งค๋ฒˆ SQL๋กœ ์ง์ ‘ ๋ฉ”์šฐ๋Š” ๊ฑด ์ƒ๊ฐ๋ณด๋‹ค ๊ณ ํ†ต์Šค๋Ÿฝ๋‹ค ๐Ÿ˜‡


๐Ÿ”Œ ๊ทธ๋ž˜์„œ ๋“ฑ์žฅํ•œ ORM

ORM = Object Relational Mapping

ORM์€ ๋ง ๊ทธ๋Œ€๋กœ

๊ฐ์ฒด(Object) โ†” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ(Relational Data)๋ฅผ ์ž๋™์œผ๋กœ ๋งคํ•‘ํ•ด์ฃผ๋Š” ๊ธฐ์ˆ 

์ฆ‰,

  • ๐Ÿ“ฆ ํ…Œ์ด๋ธ” โ†’ Python ํด๋ž˜์Šค
  • ๐Ÿ“„ ํ–‰(Row) โ†’ ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค
  • ๐Ÿ”— ์ปฌ๋Ÿผ โ†’ ๊ฐ์ฒด ์†์„ฑ

์œผ๋กœ ๋ฐ”๊ฟ”์„œ ๋‹ค๋ฃจ๊ฒŒ ํ•ด์ค€๋‹ค.


๐Ÿง  ORM์˜ ํ•ต์‹ฌ ์•„์ด๋””์–ด

SQL์„ ์ง์ ‘ ์“ฐ๋Š” ๋Œ€์‹ ,

  • ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋ฉด โ†’ INSERT
  • ๊ฐ์ฒด๋ฅผ ์กฐํšŒํ•˜๋ฉด โ†’ SELECT
  • ์†์„ฑ์„ ๋ฐ”๊พธ๋ฉด โ†’ UPDATE
  • ๊ฐ์ฒด๋ฅผ ์‚ญ์ œํ•˜๋ฉด โ†’ DELETE

๊ฐ€ ์ž๋™์œผ๋กœ ์‹คํ–‰๋œ๋‹ค.


๐Ÿ”„ ORM vs ์ง์ ‘ SQL

ํ•ญ๋ชฉ ์ง์ ‘ SQL ORM
์ฝ”๋“œ ์Šคํƒ€์ผ ๋ฌธ์ž์—ด ๊ธฐ๋ฐ˜ ๊ฐ์ฒด ์ค‘์‹ฌ
๊ฐ€๋…์„ฑ ๋‚ฎ์Œ ๋†’์Œ
์œ ์ง€๋ณด์ˆ˜ ์ปฌ๋Ÿผ ๋ณ€๊ฒฝ ์‹œ ์ง€์˜ฅ ๋ชจ๋ธ ์ˆ˜์ •์œผ๋กœ ๋
๋Ÿฌ๋‹ ์ปค๋ธŒ ๋‚ฎ์Œ ์ƒ๋Œ€์ ์œผ๋กœ ๋†’์Œ

๐Ÿงฑ ๊ฐœ๋… ์ •๋ฆฌ

[ Python ์ฝ”๋“œ ]
      |
      |
    (ORM)
      v
[ ๊ฐ์ฒด / ํด๋ž˜์Šค ]
      |
      |  (์ž๋™ ๋ณ€ํ™˜)
      v
[ SQL ์ƒ์„ฑ ]
      |
      v
[ Database ]

๊ฐœ๋ฐœ์ž๋Š” SQL์ด ์•„๋‹ˆ๋ผ ๋„๋ฉ”์ธ(๊ฐ์ฒด)์— ์ง‘์ค‘ํ•˜๊ฒŒ ๋œ๋‹ค.


โš ๏ธ ํฌ์ธํŠธ

  • โŒ ORM์€ SQL์„ ์—†์• ๋Š” ๊ธฐ์ˆ ์ด ์•„๋‹˜
  • โŒ ์„ฑ๋Šฅ ํŠœ๋‹์ด ํ•„์š” ์—†๋Š” ๋งŒ๋Šฅ ๋„๊ตฌ ์•„๋‹˜
  • โœ… SQL์„ ๋œ ์ง์ ‘์ ์œผ๋กœ ์“ฐ๊ฒŒ ํ•ด์ฃผ๋Š” ๋„๊ตฌ

ORM์„ ์ž˜ ์“ฐ๋ ค๋ฉด ์˜คํžˆ๋ ค
SQL๊ณผ RDB ๊ฐœ๋…์„ ๋” ์ž˜ ์•Œ์•„์•ผ ํ•œ๋‹ค.


profile
Gongbuhaja

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