๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

PYTHON-BACK

#ํŒŒ์ด์ฌ 24.09.02(์›”) ~ 24.09.13(๊ธˆ) ๋งˆ์ผ“์ปฌ๋ฆฌ ํด๋ก ์ฝ”๋”ฉ ํ”„๋กœ์ ํŠธ

728x90

๐Ÿš€Clean_Curly ํ”„๋กœ์ ํŠธ 1st ๐Ÿš€

  • ๋งˆ์ผ“์ปฌ๋ฆฌ ๋ฐฑ์—”๋“œ ํด๋ก ์ฝ”๋”ฉ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•จ.
  • ์ด์ปค๋จธ์Šค ์‚ฌ์ดํŠธ์˜ ํ•„์ˆ˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์˜€๊ณ , 1์ฐจ 2์ฐจ๋กœ ๋‚˜๋ˆ ์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋ ค๊ณ ํ•จ
  • 1์ฐจ ํ”„๋กœ์ ํŠธ ๊ฒฐ๊ณผ์ž„์œผ๋กœ ์•„์ง ์™„๋ฒฝํ•˜๊ฒŒ ์™„์„ฑ๋œ ๋ฒ„์ „์€ ์•„๋‹˜

๐Ÿšด๊ฐœ๋ฐœ ์ธ์› ๋ฐ ๊ธฐ๊ฐ„

  • [ํŒ€ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„] 2024-09.02(์›”) ~ 2024-09.13(๊ธˆ)
  • [๊ฐœ๋ฐœ์ธ์›] : ๋ฐฑ์—”๋“œ 4๋ช…

๐Ÿ› ๏ธ๊ธฐ์ˆ ์Šคํƒ

  • Language : python3
  • Framework : Django

๐Ÿ’กERD(1st)

๐Ÿค— ํŒ€ ๋ฉค๋ฒ„

ํ™ˆํŽ˜์ด์ง€ ๋ฐ๋ชจ

๐Ÿ“ƒ ๊ตฌํ˜„ ๊ธฐ๋Šฅ๐Ÿ“ƒ

๊น€ํ˜œ์ง€

  • [ERD ๋‚ด ORDERS CARTS ๊ธฐ๋Šฅ ๋‹ด๋‹น]
  • ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ธฐ๋Šฅ (์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œ)
  • ๋ฌผ๊ฑด๊ตฌ๋งค

์‹ ๋•๊ทผ

  • [ERD ๋‚ด REVIEWS ๊ธฐ๋Šฅ ๋‹ด๋‹น]
  • ์ƒํ’ˆ ๋ฆฌ๋ทฐ ์ž‘์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ 

๊น€์ง€์›…

  • [ERD ๋‚ด USER ๊ธฐ๋Šฅ ๋‹ด๋‹น]
  • ํšŒ์›๊ฐ€์ž… ๋ฐ ์œ ์ € ๊ด€๋ จ ๋‚ด์šฉ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€
  • ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž…
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌํ™•์ธ ํŽ˜์ด์ง€, ๊ฐœ์ธ์ •๋ณด ํŽ˜์ด์ง€(users ๋‚ด ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌํ™•์ธ ํŽ˜์ด์ง€, ๊ฐœ์ธ์ •๋ณด ํŽ˜์ด์ง€(์œ ์ €์ •๋ณด ๊ด€๋ จ ๋‚ด์šฉ)

๊น€ํ–ฅ์€

  • [ERD ๋‚ด PRODUCTS ๊ธฐ๋Šฅ ๋‹ด๋‹น]
  • ํŒ๋งคํ•  ๋ฌผ๊ฑด ๋“ฑ๋ก, ์‚ญ์ œ, ์ˆ˜์ •

๐Ÿ” ์ฝ”๋“œ ์ž‘์„ฑํ•˜๋ฉด์„œ ์–ด๋ ค์› ๋˜ ๊ธฐ๋Šฅ๐Ÿ”

[๊น€ํ˜œ์ง€]

์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์žˆ๋Š” ์ƒํ’ˆ์„ ์ฃผ๋ฌธ์œผ๋กœ ์ƒ์„ฑ
  • ๋ฌธ์ œ์ : ๋ฆฌ๋ทฐ ๊ธฐ๋Šฅ๊ณผ ํ•ฉํ•ด์ง€๋ฉด์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ: ๋ฆฌ๋ทฐ์—์„œ๋Š” ๋กœ๊ทธ์ธ์ด ๋œ ์‚ฌ์šฉ์ž, ๋ฌผ๊ฑด์„ ๊ตฌ๋งคํ•œ ์‚ฌ์šฉ์ž๋งŒ์ด ๋ฆฌ๋ทฐ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•˜์˜€์œผ๋‚˜ ์ด์ ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  orders ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์—ฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ
  • ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: ํ˜„์žฌ ์š”์ฒญ์„ ๋ณด๋‚ธ ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ์ด ๋œ ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด order_create ํ•จ์ˆ˜์— ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์„ค์ •ํ•˜๋Š” order.user = request.user ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€

๐Ÿ“๊ตฌํ˜„ํ•˜๋ ค ํ–ˆ์œผ๋‚˜ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•œ ๊ธฐ๋Šฅ๐Ÿ“

<๋‹ด๊ธฐ> ๋ฒ„ํŠผ ๊ธฐ๋Šฅ
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ
  • ํ˜„์žฌ ์ƒํ™ฉ:<๋‹ด๊ธฐ> ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ƒํ’ˆ ์ƒ์„ธํŽ˜์ด์ง€๋กœ ์ด๋™

๐Ÿ”ฅ2์ฐจ ํ”„๋กœ์ ํŠธ์—์„œ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์€ ๊ธฐ๋Šฅ๐Ÿ”ฅ

  • ๊ตฌ๋งค ์ด๋ ฅ ์กฐํšŒ
  • ๋ฉ”์ธ ํŽ˜์ด์ง€์—์„œ <๋‹ด๊ธฐ> ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ํ•ด๋‹น ์ƒํ’ˆ์ด ๋‹ด๊ธฐ๊ฒŒ ํ•˜๊ธฐ
  • <์ฃผ๋ฌธ์š”์ฒญํ•˜๊ธฐ> ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋ฐฐ์†ก์ƒํƒœ๊ฐ€ delivered๋กœ ๋ณ€๊ฒฝ
  • ์ฐœํ•˜๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

๐Ÿ” ์ฝ”๋“œ ์ž‘์„ฑํ•˜๋ฉด์„œ ์–ด๋ ค์› ๋˜ ๊ธฐ๋Šฅ๐Ÿ”

[์‹ ๋•๊ทผ]

๋ฆฌ๋ทฐ ์ž‘์„ฑ ๊ฐ€๋Šฅํ•œ ์ƒํ’ˆ ํ•„ํ„ฐ๋ง
  • ๋ฌธ์ œ์ : ์ฃผ๋ฌธ, ์ƒํ’ˆ, ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋“ค์„ ํ•œ๊บผ๋ฒˆ์— ์—ฐ๊ฒฐ, ์‚ฌ์šฉ์ž๊ฐ€ ์ฃผ๋ฌธํ•œ ์ƒํ’ˆ, ๋ฐฐ์†ก์ƒํƒœ, ๋ฆฌ๋ทฐ ์ƒํƒœ๋ฅผ ๋™์‹œ์— ์—ฐ๊ฒฐ, ์ด๋ฏธ ๋ฆฌ๋ทฐ๋ฅผ ์ž‘์„ฑํ•œ ์ƒํ’ˆ์€ ์ œ์™ธํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„
  • ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: Django orm ์˜ ์ฟผ๋ฆฌ ์‚ฌ์šฉ : ์ง€์ •๋œ ํ•„๋“œ์˜ ๊ฐ’๋งŒ ๊ฐ€์ ธ์˜ค๋Š” values_list ์™€ ์ œ์™ธ ๊ธฐ๋Šฅ์ธ exclude๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœ

๐Ÿ“๊ตฌํ˜„ํ•˜๋ ค ํ–ˆ์œผ๋‚˜ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•œ ๊ธฐ๋Šฅ๐Ÿ“

์ฃผ๋ฌธ ์‹œ์Šคํ…œ๊ณผ์˜ ๋ฏธ์—ฐ๋™
  • ํ˜„์žฌ ์ฃผ๋ฌธ ์‹œ์Šคํ…œ๊ณผ์˜ ์ž๋™ ์—ฐ๋™ ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์ง€ ์•Š์•„ admin์—์„œ ์ง์ ‘ ์ฃผ๋ฌธ์ƒํƒœ๋ฅผ delivered ๋กœ ์„ค์ •ํ•ด์•ผ ๋ฆฌ๋ทฐ ์ž‘์„ฑ ๊ฐ€๋Šฅ
๋งˆ์ด ํŽ˜์ด์ง€ -> ๊ตฌ๋งคํ‰
  • ๋งˆ์ดํŽ˜์ด์ง€ ๊ตฌ๋งคํ‰ ๋ถ€๋ถ„์— html, css๋ฌธ์ œ๋กœ ํด๋ฆญ์„ ํ•ด์•ผ๋งŒ ๊ตฌ๋งคํ‰(๋ฆฌ๋ทฐ ๊ด€๋ จ ๋‚ด์šฉ)์ด ํ‘œ์‹œ๋จ

๐Ÿ”ฅ2์ฐจ ํ”„๋กœ์ ํŠธ์—์„œ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์€ ๊ธฐ๋Šฅ๐Ÿ”ฅ

  • ์ฃผ๋ฌธ ์‹œ์Šคํ…œ๊ณผ์˜ ์—ฐ๋™
  • ๋ฆฌ๋ทฐ ์ •๋ ฌ ๋ฐฉ์‹ ๊ฐœ์„ (์ข‹์•„์š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€)
  • ํ‰๊ท  ๋ณ„์  ํ‘œ์‹œ
  • ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ๋ฆฌ๋ทฐ ๋‚ด์šฉ์ด ๋ฐ”๋กœ ๋ณด์ด๋„๋ก html๊ณผ cssํŒŒ์ผ ์žฌ์ •๋ฆฌ
  • ์‹ ๊ณ ๊ธฐ๋Šฅ
  • ๋ฆฌ๋ทฐ์˜ ํ†ต๊ณ„๋ฅผ ์„ธ๋ถ„ํ™”ํ•˜์—ฌ ์‹œ๊ฐํ™”(๋ฆฌ๋ทฐ ์ž‘์„ฑ๋ฅ , ๊ตฌ๋งค์ž ์ •๋ณด ํ†ต๊ณ„ ๋“ฑ์„ ์ด์šฉ)

๐Ÿ” ์ฝ”๋“œ ์ž‘์„ฑํ•˜๋ฉด์„œ ์–ด๋ ค์› ๋˜ ๊ธฐ๋Šฅ๐Ÿ”

[๊น€์ง€์›…]

๋ฆฌ๋ทฐ ์ž‘์„ฑ ๊ฐ€๋Šฅํ•œ ์ƒํ’ˆ ํ•„ํ„ฐ๋ง
  • ๋ฌธ์ œ์ : ๋งˆ์ดํŽ˜์ด์ง€๋ฅผ ๋“ค์–ด๊ฐ€๊ธฐ ์ „, ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์žฌํ™•์ธํ•˜๋Š” ํผ์—์„œ ์•„์ด๋”” ์ž…๋ ฅ๋ž€์„ ์ž ๊ทธ๊ณ  ์‹ถ์—ˆ์œผ๋‚˜ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ
  • ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•:readonly ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ ํ•„๋“œ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“ค์—ˆ์Œ. readonly ์†์„ฑ์€ HTML์˜ <input> ์š”์†Œ์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ’์„ ์ˆ˜์ •ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์„ค์ •ํ•˜๋Š” ์†์„ฑ์œผ๋กœ, ๋ณด์•ˆ๊ณผ ์‚ฌ์šฉ์ž ํŽธ์˜์„ฑ์„ ๋™์‹œ์— ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ์Œ.

๐Ÿ“๊ตฌํ˜„ํ•˜๋ ค ํ–ˆ์œผ๋‚˜ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•œ ๊ธฐ๋Šฅ๐Ÿ“

์„ ๋ฌผํŠน๊ฐ€ ํƒ€์ด๋จธ ๊ธฐ๋Šฅ
  • ํƒ€์ด๋จธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ๋•Œ, ํ•œ ๋ฒˆ ์„ค์ •ํ•œ ์‹œ๊ฐ„์€ ์ˆ˜์ •์ด ๋ถˆ๊ฐ€๋Šฅํ•˜์—ฌ ์ƒˆ๋กœ ๊ณ ์นจ์„ ํ•˜๋ฉด ํƒ€์ด๋จธ๊ฐ€ ์ดˆ๊ธฐํ™”๋จ.
  • ํ˜„์žฌ ์ƒํ™ฉ : ์ƒˆ๋กœ๊ณ ์นจ ํ•  ๋•Œ๋งˆ๋‹ค ์‹œ๊ฐ„์ด ์ดˆ๊ธฐํ™”๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์„ค์ •๋จ

๐Ÿ”ฅ2์ฐจ ํ”„๋กœ์ ํŠธ์—์„œ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์€ ๊ธฐ๋Šฅ๐Ÿ”ฅ

  • ๊ฐœ์ธ ํŽ˜์ด์ง€์—์„œ ํšŒ์› ์ •๋ณด ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ˆ˜์ •
  • ์ถ”์ฒœ์ธ ์ฝ”๋“œ ๋ฐ ๋งˆ์ผ๋ฆฌ์ง€ ๊ธฐ๋Šฅ
  • ํ™ˆํŽ˜์ด์ง€ ๊ฒ€์ƒ‰์–ด ์ž…๋ ฅ ๊ธฐ๋Šฅ ์—ฐ๋™
  • ์„ ๋ฌผํŠน๊ฐ€ ํƒ€์ด๋จธ ๊ธฐ๋Šฅ

๐Ÿ” ์ฝ”๋“œ ์ž‘์„ฑํ•˜๋ฉด์„œ ์–ด๋ ค์› ๋˜ ๊ธฐ๋Šฅ๐Ÿ”

[๊น€ํ–ฅ์€]

๋ฆฌ๋ทฐ ์ž‘์„ฑ ๊ฐ€๋Šฅํ•œ ์ƒํ’ˆ ํ•„ํ„ฐ๋ง
  • ๋ฌธ์ œ์ : Categoryํ•„๋“œ๋ฅผ Product ๋ชจ๋ธ์— ์ถ”๊ฐ€ํ•˜๋ฉด์„œ ๊ธฐ์กด์— ๋“ฑ๋ก๋œ Product ๋ฐ์ดํ„ฐ์™€์˜ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋ฅผ ๊ฒช์Œ, Produce ๋ชจ๋ธ์— ์ƒˆ๋กœ์šด Cateforyํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์ง€๋งŒ, ๊ธฐ์กด์— ์ €์žฅ๋œ ์ œํ’ˆ ๋ฐ์ดํ„ฐ์—๋Š” ์—ฐ๊ฒฐ๋œ Category ๊ฐ์ฒด๊ฐ€ ์—†์–ด ์™ธ๋ž˜ํ‚ค ์ œ์•ฝ ์กฐ๊ฑด์„ ์œ„๋ฐ˜ํ•˜๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ
  • ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: ๊ธฐ์กด ์ œํ’ˆ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๊ธฐ๋ณธ Category๋ฅผ ์„ค์ •ํ•˜๊ณ  ์ƒˆ๋กœ์šด Category ๊ฐ์ฒด์™€ ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ž‘์—… ์ˆ˜ํ–‰

๐Ÿ“๊ตฌํ˜„ํ•˜๋ ค ํ–ˆ์œผ๋‚˜ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•œ ๊ธฐ๋Šฅ๐Ÿ“

๊ตฌ๋งค ์ด๋ ฅ ์กฐํšŒ ๊ธฐ๋Šฅ
  • ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๊ณผ ํ”„๋กœ์ ํŠธ ์—ฐ๊ฒฐ์€ ์™„๋ฃŒํ–ˆ์œผ๋‚˜ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ์‹์— ์—ฌ๋Ÿฌ ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒ
  • ๊ฐ ๊ตฌ๋งค์ž์˜ ์ฃผ๋ฌธ ๋‚ด์—ญ์„ ํšจ์œจ์ ์œผ๋กœ ํ•„ํ„ฐ๋งํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ๋ฌธ์ œ ๋ฐœ์ƒ

๐Ÿ”ฅ2์ฐจ ํ”„๋กœ์ ํŠธ์—์„œ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์€ ๊ธฐ๋Šฅ๐Ÿ”ฅ

  • ๊ตฌ๋งค ์ด๋ ฅ ์กฐํšŒ
  • ๋‚ ์งœ๋ณ„ ์ฃผ๋ฌธ ๋‚ด์—ญ ํ•„ํ„ฐ๋ง
  • ์ฃผ๋ฌธ์ƒํƒœ(๋ฐฐ์†ก์ค‘, ๋ฐฐ์†ก์™„๋ฃŒ ๋“ฑ)์— ๋”ฐ๋ผ ์ •๋ ฌ
  • ์ƒํ’ˆ์˜ ์ƒ์„ธ ํŽ˜์ด์ง€์—์„œ ์ข‹์•„์š” ๊ธฐ๋Šฅ

์‹คํ–‰ ๋ฐฉ๋ฒ• โš™๏ธ

ํŒจํ‚ค์ง€ ์„ค์น˜
 imagesํŒŒ์ผ ์ถ”๊ฐ€
python -m venv myweb
๋งŒ๋“ค์–ด์ง„ ํด๋”์— zip ํŒŒ์ผ๋‚ด์šฉ ๋ถ™์—ฌ๋„ฃ๊ธฐ
cd myweb
./Scripts/activate
pip install django djangorestframework
pip install django_extensions pillow
๋˜๋Š” pip install -r requirements.txt ์ด์šฉ
python manage.py runserver

 

๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ ์ฃผ์†Œ

https://github.com/kgw08003/Clean_coding_1st_Project 

 

GitHub - kgw08003/Clean_coding_1st_Project

Contribute to kgw08003/Clean_coding_1st_Project development by creating an account on GitHub.

github.com

<ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ 1์ฐจ ๊ฒฐ๊ณผ๋ฌผ์€ ์œ„ ๊นƒํ—ˆ๋ธŒ์—์„œ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.>

728x90