[Django] ์žฅ๊ณ ๋Š” ๋ฌด์—‡์ผ๊นŒ? with ORM(Object-Relational Mapping)
Engineering/Django

[Django] ์žฅ๊ณ ๋Š” ๋ฌด์—‡์ผ๊นŒ? with ORM(Object-Relational Mapping)

728x90
๋ฐ˜์‘ํ˜•

๐Ÿ’‚‍โ™€๏ธ๊ทธ ๋™์•ˆ ๋ฐฐ์šฐ๊ณ  ํ”„๋กœ์ ํŠธ ๋•Œ๋„ ํ™œ์šฉํ–ˆ๋˜ ์žฅ๊ณ , ์˜ค๋Š˜๋ถ€ํ„ฐ ์กฐ๊ธˆ์”ฉ์ด๋ผ๋„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.๐Ÿ’‚‍โ™‚๏ธ

Django

Django๋ž€ ๋ฌด์—‡์ผ๊นŒ

  • ์›น์„ `์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ` ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์›น ํ”„๋ ˆ์ž„์›Œํฌ

  • `Python ๊ธฐ๋ฐ˜ ์›น ํ”„๋ ˆ์ž„์›Œํฌ`, ํ’€์Šคํƒ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํŒŒ์ด์ฌ์„ ์›น ์‚ฌ์ดํŠธ ๊ตฌ์ถ•์— ์“ด๋‹ค๋ฉด django ๋˜๋Š” flask๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์ฃผ์š” ํŠน์ง•

  • MVC ํŒจํ„ด์ด ์•„๋‹Œ MTV ํŒจํ„ด์„ ์‚ฌ์šฉ -> Model, Template, View

  • ORM ๊ธฐ๋ณธ ์ œ๊ณต

    • ์ด๋Š” ์•„๋ž˜์—์„œ ์ž์„ธํžˆ ๋‹ค๋ค„๋ณด์ž.

  • DBMS์˜ ๊ฒฝ์šฐ SQLite๋ฅผ ์‚ฌ์šฉ

  • Django Admin์„ ํ†ตํ•ด ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€๋กœ ๊ฐ„ํŽธํ•˜๊ฒŒ CRUD๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ

  • ๋กœ๊ทธ์ธ, DB, ๊ด€๋ฆฌ์ž ๊ธฐ๋Šฅ ๋“ฑ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์ž˜ ์ตํ˜€์„œ ์‚ฌ์šฉ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.

ORM(Object-Relational Mapping)๊ฐ์ฒด ๊ด€๊ณ„ ๋งคํ•‘์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ?

  • ๊ฐ์ฒด(Object)์™€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Relational Database)์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋งคํ•‘ํ•ด์ฃผ๋Š” ๊ฒƒ์„ ์˜๋ฏธ

  • ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ SQL์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์„œ `SQL ์ฟผ๋ฆฌ๋ฌธ์ด ์—†์–ด๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.`

  • ์‰ฝ๊ฒŒ ๋งํ•ด์„œ ์žฅ๊ณ  ๋‚ด๋ถ€์—์„œ Python์–ธ์–ด๋ฅผ ํ†ตํ•ด DB์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.

  • ์žฅ์  : ์ฟผ๋ฆฌ๋ฌธ ์ž‘์„ฑ๊ณผ ๊ฐ™์ด ์ถ”๊ฐ€์ ์ธ ์ฝ”๋“œ ์ž‘์„ฑ์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์–ด ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์–ด ํšจ์œจ์ ์ด๋‹ค. ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํŽธํ•˜๊ณ  ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.

  • ๋‹จ์  : ORM ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ๋ฒ•์„ ๋”ฐ๋กœ ๋ฐฐ์›Œ์•ผ ํ•œ๋‹ค. ๊ทœ๋ชจ๊ฐ€ ํฐ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ SQL์„ ์ง์ ‘ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ์ˆ˜ ์žˆ๋‹ค.

 

 

ORM์€ ์ถ”ํ›„์— ๋” ์ƒ์„ธํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ณด๋ฉด ์ข‹๊ฒ ๋‹ค๐Ÿ‘ง

๋ฐ˜์‘ํ˜•