์ฑ„๋„ํ†ก ์•„์ด์ฝ˜

ํŒŒ์ด์ฌ/์žฅ๊ณ  ์›น์„œ๋น„์Šค ๊ฐœ๋ฐœ ์™„๋ฒฝ ๊ฐ€์ด๋“œ with ๋ฆฌ์•กํŠธ (์žฅ๊ณ  4.2 ๊ธฐ์ค€)

ํŒŒ์ด์ฌ/์žฅ๊ณ  ์›น์„œ๋น„์Šค ๊ฐœ๋ฐœ์˜ ๊ธฐ์ดˆ๋ฅผ ํƒ„ํƒ„ํžˆ ๋‹ค์ ธ๋ณด์„ธ์š”. ์žฅ๊ณ  ํ•™์Šต์—๋Š” ์‹œ๊ฐ„๋„ ๊ฑธ๋ฆฌ์ง€๋งŒ, ๋ฐ˜๋ณต๋˜๋Š” ๊ฐœ๋ฐœ ์†์— ์—ฌ๋Ÿฌ๋ถ„์˜ ์ƒ์‚ฐ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์˜ ์ƒ์ƒ์„ ํ˜„์‹ค๋กœ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”.

(4.8) ์ˆ˜๊ฐ•ํ‰ 24๊ฐœ

์ˆ˜๊ฐ•์ƒ 677๋ช…

๋‚œ์ด๋„ ์ดˆ๊ธ‰

์ˆ˜๊ฐ•๊ธฐํ•œ ๋ฌด์ œํ•œ

์žฅ๊ณ 
์žฅ๊ณ 
๋ฆฌ๋‰ด์–ผ
๋ฆฌ๋‰ด์–ผ
์žฅ๊ณ 
์žฅ๊ณ 
๋ฆฌ๋‰ด์–ผ
๋ฆฌ๋‰ด์–ผ

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

4.8

5.0

sunnnwo

10% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์žฅ๊ณ  ๊ฐ•์˜๋Š” ๋‹ค๋ฅธ๊ฑฐ ๋“ค์„๊ฑฐ ์—†์ด ์ด๊ฑฐ ํ•˜๋‚˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐ•์˜ ์‚ฌ์„œ ๋“ค์–ด๋ดค๋Š”๋ฐ์š”, ์ด๊ฒŒ ์ œ์ผ ์ข‹์Šต๋‹ˆ๋‹ค. ๊ฐ•์˜๊ฐ€ ๋งŽ๊ณ ์š”, ๊ทธ๋งŒํผ ์„ค๋ช…์„ ์ž์„ธํžˆ ํ•ด์ฃผ์‹ญ๋‹ˆ๋‹ค. ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€๋„ ์ž˜ํ•ด์ฃผ์…”์„œ ๋„ˆ๋ฌด ์ข‹์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋‹ค๋ฅธ ์žฅ๊ณ ๊ฐ•์˜๋„ ๋“ค์„๋•Œ ๋ฌด์Šจ ๋Œ€ํ•™๊ต ๊ต์ˆ˜๋‹˜์ด ๊ทธ๋ƒฅ ppt์ฝ์œผ๋ฉด์„œ ๊ฐ•์˜ํ•˜๋Š” ๋А๋‚Œ๋‚˜๊ณ  ๊ทธ๋ฆฌ๊ณ  ์งˆ๋ฌธํ•˜๋ฉด chatGPT์จ์„œ ๋ณต๋ถ™ํ•˜๋Š”๊ฒƒ๋„ ๋ดค์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜๋Š” ์ด๋Ÿฐ๊ฑฐ ์ „ํ˜€ ์—†๊ณ , ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€๋„ ๋„ˆ๋ฌด ์ข‹์Šต๋‹ˆ๋‹ค.

5.0

์ฃผ์ธ๊ตญ

100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์†”์งํ•œ ์™„๊ฐ• ํ›„๊ธฐ์ž…๋‹ˆ๋‹ค. ํšŒ์‚ฌ ์ž…์‚ฌ์ „ ๋ด„ ์ฆˆ์Œ๋ถ€ํ„ฐ ๋“ค์€ ๊ฒƒ ๊ฐ™์€๋ฐ, ์ด์ œ์„œ์•ผ ์™„๊ฐ•ํ•˜๊ฒŒ ๋˜๋„ค์š”. ๊ฐ•์˜ ํŠน์ง•, ์žฅ์ , ๋‹จ์  ์ƒ์„ธํ•˜๊ฒŒ ์ ๊ฒ ์Šต๋‹ˆ๋‹ค. - ๊ฐ•์˜ ํŠน์ง• ``` > ์‹ค๋ฌด์ž์˜ '๋‚œ ์ด๋ ‡๊ฒŒ ์ผํ•จ' ์ž…๋‹ˆ๋‹ค. ``` ์‹œ๋‹ˆ์–ด ์Šจ๋ฐฐ๋‹˜์˜ ์ฝ”๋“œ ์—ผํƒํ•˜๋Š” ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜์…”์•ผํ•ฉ๋‹ˆ๋‹ค. - ์žฅ์  ๋ฐฐํฌ๋ถ€ํ„ฐ ์‹ค๋ฌด ๊นŒ์ง€ ์ „์ฒด์ ์œผ๋กœ ํฐ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ ์ˆ˜์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ์ด๋–ค ํ‚ค์›Œ๋“œ๋ฅผ ๋‚ด๊ฐ€ ์•Œ์•„์•ผ ํ•˜๋Š” ๊ตฌ๋‚˜ ๋ผ๊ณ  ๋А๋‚„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด AI ์‹œ๋Œ€์— ํ‚ค์›Œ๋“œ๋Š” ํ˜ผ์ž ๊ณต๋ถ€ ํ•  ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. - ๋‹จ์  ๋ฐœ์Œ์ด ์ข‹์ง€ ์•Š์œผ์‹ฌ. ์›๋ฆฌ ์„ค๋ช…์ด ๋ถ€์กฑํ•จ. pdf๋Š” ํ•œํŽ˜์ด์ง€ ๋ณด๊ธฐ ๋ถˆํŽธํ•จ. ๊ฐ•์˜, pdf, ๊ฐ•์˜ ๋‚ด ์ถ”๊ฐ€์ž๋ฃŒ ๋“ฑ ๋‚ด์šฉ์ด ํŒŒํŽธํ™” ๋˜์–ด ์žˆ์–ด ๋”ฐ๋ผ๊ฐ€๊ธฐ ํž˜๋“ฌ. ์ •๋ฆฌํ•˜์ž๋ฉด.. ๋ถ„๋ช… ๋„ˆ๋ฌด๋‚˜ ์ข‹์€ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ์ง€๋งŒ ์งง์€ ๊ฐ•์˜ ์‹œ๊ฐ„ ์ €๋ ดํ•œ ๊ฐ€๊ฒฉ์— ๋ชจ๋“  ๊ฒƒ์„ ์–ป์„ ์ˆ˜๋Š” ์—†๊ณ  '๊ณต๋ถ€ํ•  ํ‚ค์›Œ๋“œ ์–ป๋Š”๋‹ค'๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ตœ๊ณ ์˜ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. ๋“ฃ๋А๋ผ ํž˜๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.... ๋‹ค์Œ์€ 2ํšŒ์ฐจ ๋“ค์œผ๋ฉด์„œ ์˜ต์‹œ๋””์–ธ์œผ๋กœ ์ œ๊ฐ€ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์ถ”๋ ค์„œ ๊ฐ•์˜ ์žฌ๊ตฌ์„ฑํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋“ฃ๊ณ ๋‚˜๋‹ˆ, ๋‹จ์ง€ ์›น๊ฐœ๋ฐœ์ž๋กœ์„œ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐœ๋ฐœ์ž๋กœ์„œ ํ•œ๋‹จ๊ณ„ ์„ฑ์žฅํ•œ ๋А๋‚Œ์ž…๋‹ˆ๋‹ค.

5.0

๋ฌธ์„์ฒญ

11% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์ข‹์€ ๊ฐ•์˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜๊ฐ• ํ›„ ์ด๋Ÿฐ๊ฑธ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”

  • ์žฅ๊ณ  4.2 ๊ธฐ์ค€์œผ๋กœ ์ƒ์‚ฐ์„ฑ ๋†’์€ ์›น์„œ๋น„์Šค ๊ฐœ๋ฐœ

  • ์žฅ๊ณ ๋ฅผ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๊ด€๋ฆฌ

  • ํ”ํ•œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹คํŒจ ์‚ฌ๋ก€

  • ์žฅ๊ณ  ORM์ธ ๋ชจ๋ธ๊ณผ ๋ชจ๋ธ ํ•„๋“œ์— ๋Œ€ํ•œ ๊นŠ์€ ์ดํ•ด

  • ์žฅ๊ณ  ์ค‘์‹ฌ์˜ ์›น ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ ๋ฐ ํ™œ์šฉ

  • ์žฅ๊ณ  Form์„ ํ™œ์šฉํ•œ ์ƒ์‚ฐ์„ฑ ๋†’์€ ์ž…๋ ฅํผ ์ฒ˜๋ฆฌ

  • ์žฅ๊ณ  ๊ธฐ๋ณธ ์ธ์ฆ์— ๋Œ€ํ•œ ๊นŠ์€ ์ดํ•ด

  • django-rest-framework๋ฅผ ํ™œ์šฉํ•œ ์ƒ์‚ฐ์„ฑ ๋†’์€ ์›น API ๊ฐœ๋ฐœ

  • ์›น API ์—์„œ์˜ ์„ธ์…˜ ์ธ์ฆ ํ™œ์šฉ ๋ฐฉ๋ฒ•

  • ์›น ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ตœ์‹  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•

  • ๋ฆฌ์•กํŠธ v18 ํ•„์ˆ˜ ์ด๋ก 

  • ์žฅ๊ณ /๋ฆฌ์•กํŠธ ํ†ตํ•ฉ๊ณผ ์„œ๋น„์Šค ๊ฐœ๋ฐœ

  • ์žฅ๊ณ /Next.js ํ†ตํ•ฉ๊ณผ ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ํ™œ์šฉํ•œ ์ธ์ฆ

  • ๋ฆฌ๋ˆ…์Šค ๊ฐ€์ƒ๋จธ์‹ ์—์„œ์˜ ์žฅ๊ณ /๋ฆฌ์•กํŠธ ์„œ๋น„์Šค ๋ฐฐํฌ

๐Ÿ”ฅ ๊ธฐ์กด ํŒŒ์ด์ฌ/์žฅ๊ณ  ์›น์„œ๋น„์Šค ๊ฐœ๋ฐœ ์™„๋ฒฝ ๊ฐ€์ด๋“œ with ๋ฆฌ์•กํŠธ ๊ฐ•์˜๋Š” ์žฅ๊ณ  3.0 ๊ธฐ๋ฐ˜์ด๋ฉฐ, ์ด ๊ฐ•์˜๋Š” ๋ฆฌ๋‰ด์–ผ ๊ฐ•์˜๋กœ์„œ ์žฅ๊ณ  4.2 LTS ๊ธฐ๋ฐ˜์ž…๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ ๋ฆฌ๋‰ด์–ผ์ด ์•„๋‹ˆ๋ผ, ์žฅ๊ณ ์˜ ๊ฐ•๋ ฅํ•จ์„ ์ดํ•ดํ•˜๊ณ  ์‹ค๋ฌด์— ์ ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ๋„๋ก, ์ „์ฒด ์ปค๋ฆฌํ˜๋Ÿผ์„ ๊ฐˆ์•„์—Ž๊ณ  ์žฌ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๊ฐ•์˜๋Š” ๋” ์ด์ƒ ํŒ๋งคํ•˜๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ˜น์‹œ ์ด์ „ ๊ฐ•์˜๊ฐ€ ํ•„์š”ํ•˜์‹  ๋ถ„์€ help@pyhub.kr ์ฃผ์†Œ๋กœ ๋ฉ”์ผ ์ฃผ์‹œ๋ฉด ์•ˆ๋‚ด๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

โœ… ๊ฐ•์˜ ์ค‘์— ์ดํ•ด๊ฐ€ ์–ด๋ ค์šฐ์‹  ๋ถ€๋ถ„์ด ์žˆ์œผ์‹œ๋ฉด ํŽธํžˆ ์งˆ๋ฌธ ๋‚จ๊ฒจ์ฃผ์„ธ์š”. ์งˆ๋ฌธ์„ ์˜ค๋ž˜ ๊ณ ๋ฏผํ•˜์‹œ๋ฉด ์˜คํžˆ๋ ค ํ•™์Šต์— ๋ฐฉํ•ด๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์˜ ์งˆ๋ฌธ์ด ์—ฌ๋Ÿฌ๋ถ„์˜ ํ•™์Šต์„ ์™„์„ฑ์‹œ์ผœ ์ค„ ๊ฑฐ์˜ˆ์š”.

๊ฐ•์˜ ๋“ฃ๊ณ  PyCharm Professional ์ฟ ํฐ ๋ฐ›์ž ! ๐ŸŽซ

์žฅ๊ณ  ๊ฐœ๋ฐœ์˜ ์ตœ์ ์˜ IDE๋Š” PyCharm Professional (์œ ๋ฃŒ ํˆด) ์ž…๋‹ˆ๋‹ค. ๊ฐ•์˜ ์ค‘ ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ค์ •์—์„œ๋Š” PyCharm Professional๊ณผ Visual Studio Code์— ๋Œ€ํ•ด์„œ ๋‹ค๋ฃจ์ง€๋งŒ, ๊ฐ•์˜ ์ง„ํ–‰์€ PyCharm Professional๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. PyCharm ๊ฐœ๋ฐœ์‚ฌ์ธ JetBrains๋กœ๋ถ€ํ„ฐ 6๊ฐœ์›” ์ฟ ํฐ์„ ํ›„์›๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๋ณธ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜์‹  ํ›„์—, ์•„๋ž˜ ๋ฐฉ๋ฒ•์œผ๋กœ ์‹ ์ฒญํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐ•์˜ ์ˆ˜๊ฐ• ํ›„์— ๊ตฌ๊ธ€ํผ์„ ์ž‘์„ฑํ•ด์„œ ์ฟ ํฐ์„ ์‹ ์ฒญํ•ด์ฃผ์„ธ์š”. ์ฟ ํฐ์€ 1์ธ 1ํšŒ ์‹ ์ฒญ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • ๋งค์ฃผ ๊ธˆ์š”์ผ ์ €๋…์— ์„ ์ฐฉ์ˆœ์œผ๋กœ ์‹ ์ฒญํ•˜์‹  ์ด๋ฉ”์ผ๋กœ ์ฟ ํฐ์„ ๋ณด๋‚ด๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์ฃผ ์›”์š”์ผ๊นŒ์ง€ ๋ฐ›์ง€๋ชปํ•˜์‹  ๋ถ„์€ ์ด๋ฉ”์ผ๋กœ ๋ฌธ์˜์ฃผ์‹œ๋ฉด, ํšŒ์‹ ์œผ๋กœ ์žฌ์ „์†กํ•ด๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์š”์ฆ˜ ์ด๋ฉ”์ผ์ด ์ž์ฃผ ๋ˆ„๋ฝ๋˜๋”๋ผ๊ตฌ์š”.

  • ํ•™์ƒ/๊ต์‚ฌ์ด์‹  ๋ถ„์€ JetBrains์˜ ํ•™์ƒ ์ง€์› ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด, JetBrains์˜ ๋ชจ๋“  ํˆด์„ 1๋…„ ๋‹จ์œ„๋กœ ์ง€์›๋ฐ›์œผ์‹ค ์ˆ˜ ์žˆ์œผ๋‹ˆ ๊ผญ ์‹ ์ฒญํ•ด๋ณด์„ธ์š”.

  • ๋ฐ›์€ ์ฟ ํฐ์€ ์ฆ‰์‹œ ๋“ฑ๋กํ•ด์ฃผ์…”์•ผ๋งŒ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด JetBrains๋กœ๋ถ€ํ„ฐ ๋” ์ด์ƒ ์ฟ ํฐ ์ง€์›์„ ๋ฐ›์„ ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ฟ ํฐ์„ ์‚ฌ์šฉํ•˜์‹ค ๋ถ„๋“ค๋งŒ ์‹ ์ฒญํ•ด์ฃผ์„ธ์š”.


์žฅ๊ณ ๋Š” ํ’€์Šคํƒ ์›นํ”„๋ ˆ์ž„์›Œํฌ

์œ ํ–‰์€ ๋Œ๊ณ  ๋Œ์ง€๋งŒ, ์›น ๊ฐœ๋ฐœ์˜ ๋ณธ์งˆ์€ ๋ฐ”๋€Œ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์„ ์œ„ํ•œ ๋ฆฌ์•กํŠธ์™€ Vue ๊ฐ™์€ ๊ธฐ์ˆ ์ด ์ธ๊ธฐ๋ฅผ ๋Œ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ๋“ค์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋”์šฑ ๋™์ ์ด๊ณ  ๋ฐ˜์‘ํ˜•์œผ๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ํ›„์— ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์„ ์œ„ํ•œ Next.js ๊ฐ™์€ ๊ธฐ์ˆ ์ด ์ฃผ๋ชฉ๋ฐ›๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ธฐ์ˆ ๋“ค์ด ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์ด ์•„๋‹ˆ๋ผ, 10~20๋…„ ์ „์— ์œ ํ–‰ํ•˜๋˜ ๊ธฐ์ˆ ๋“ค์ด ํ˜„๋Œ€์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์žฌํ•ด์„๋˜๊ณ  ๋ฐœ์ „๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ณผ๊ฑฐ์—๋Š” PHP๋‚˜ ASP ๊ฐ™์€ ๊ธฐ์ˆ ๋กœ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์„ ๋งŽ์ด ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋“ค์€ ์›นํŽ˜์ด์ง€์˜ ๋‚ด์šฉ์„ ์„œ๋ฒ„์—์„œ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์ด์—ˆ์ฃ . ํ˜„์žฌ์˜ ๊ธฐ์ˆ , ์˜ˆ๋ฅผ ๋“ค์–ด Next.js๋„ ๋ณธ์งˆ์ ์œผ๋กœ๋Š” ์„œ๋ฒ„์—์„œ ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ๋™์ผํ•œ ์›๋ฆฌ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ˜„๋Œ€์˜ ๊ธฐ์ˆ ์€ ๋” ํšจ์œจ์ ์ด๊ณ , ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์œ ํ–‰๋ณด๋‹ค๋Š” ๋ณธ์งˆ์— ์ง‘์ค‘ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์žฅ๊ณ ๋Š” ์ด๋Ÿฐ ์›์น™์„ ์ž˜ ๋”ฐ๋ฅด๋Š” ์˜ˆ์ž…๋‹ˆ๋‹ค. 2005๋…„๋ถ€ํ„ฐ ์ง€์†์ ์œผ๋กœ ๋ฐœ์ „ํ•˜๊ณ  ๊ฐœ์„ ๋˜์–ด์˜จ ์žฅ๊ณ ๋Š” ๋” ๋‚˜์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋” ๋น ๋ฅด๊ณ  ์ ์€ ์ฝ”๋“œ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ์žฅ๊ณ ๋Š” ํ’€์Šคํƒ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ์„œ, ํšจ์œจ์ ์ธ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์™€ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ, ์›น ๊ฐœ๋ฐœ์˜ ๋ณธ์งˆ์ ์ธ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑ์‹œ์ผœ์ค๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ์›น ๊ฐœ๋ฐœ ํŠธ๋ Œ๋“œ๊ฐ€ ๋ณ€ํ•˜๋”๋ผ๋„ ์žฅ๊ณ ์˜ ๊ฐ€์น˜๋Š” ๊ณ„์†๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜ ์ถ”์ฒœํ•ด์š” ๐Ÿ™‹โ€โ™€

์›น์„œ๋น„์Šค ๊ฐœ๋ฐœ์˜ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‘์šฉ,
๋ฐฐํฌ๊นŒ์ง€ ํƒ„ํƒ„ํžˆ ์Œ“๊ณ  ์‹ถ์œผ์‹  ๋ถ„


๊ฐ„๋‹จํ•œ HTML ์ฝ”๋“œ ์ž‘์„ฑ์—์„œ ์‹œ์ž‘ํ•ด์„œ, ์›นํŽ˜์ด์ง€ ๊ฐœ๋ฐœ, ์›น ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ, API ๊ฐœ๋ฐœ, ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„ ๋ฐฐํฌ๊นŒ์ง€!

์žฅ๊ณ ์˜ ๋†’์€ ์ƒ์‚ฐ์„ฑ์„
๊ฒฝํ—˜ํ•ด๋ณด๊ณ  ์‹ถ์œผ์‹  ๋ถ„


์˜์–ด๋ฅผ ํ•œ๊ตญ๋ฌธํ™”๊ฐ€ ์•„๋‹Œ ์˜์–ด๋ฌธํ™”๋กœ ์ดํ•ดํ•ด์•ผํ•˜๋“ฏ์ด, ์žฅ๊ณ ๋„ ์žฅ๊ณ  ์ฒ ํ•™๊ณผ ๋ฌธํ™”๋ฅผ ์ดํ•ดํ•˜๊ณ  ํ™œ์šฉํ•ด์•ผ๋งŒ ๋†’์€ ์ƒ์‚ฐ์„ฑ์„ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์žฅ๊ณ  ์ค‘์‹ฌ์œผ๋กœ ๋‹ค์–‘ํ•œ ์›น
ํ”„๋ก ํŠธ์—”๋“œ ํ†ตํ•ฉ์ด ๊ถ๊ธˆํ•˜์‹  ๋ถ„


์ตœ์‹  ์žฅ๊ณ  ํŠธ๋ Œ๋“œ์— ๋งž์ถฐ ๋‹ค์–‘ํ•œ ์›น ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ํ†ตํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜์˜ ํŠน์ง• ๐Ÿคฉ

์žฅ๊ณ ๋ฅผ ๊นŠ๊ฒŒ, ์ง„์‹ฌ์œผ๋กœ ๋‹ค๋ฃจ๋Š” ๊ฐ•์˜

์ด ๊ฐ•์˜๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์žฅ๊ณ ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•˜๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์žฅ๊ณ ์˜ ์„ค๊ณ„ ์ฒ ํ•™์„ ๊นŠ์ด ์žˆ๊ฒŒ ์ „๋‹ฌํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์žฅ๊ณ ์˜ ์ค‘์š”ํ•œ ์„ค๊ณ„ ์ฒ ํ•™ ์ค‘ ๋ช‡ ๊ฐ€์ง€๋ฅผ ๊ฐ„์ถ”๋ ค ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

  • ์ฒซ์งธ, ์žฅ๊ณ ๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ์ ์€ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๊ฒฐํ•จ์„ ์ถ”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ๋ถˆํ•„์š”ํ•œ ๊ทœ์ •์ด๋‚˜ ๊ณ ์ •๋œ ์ฝ”๋“œ ๋ฐฉ์‹์€ ํ”ผํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๋” ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค.

  • ๋‘˜์งธ, ํ˜„๋Œ€์˜ ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ฐœ๋ฐœ ์†๋„ ํ–ฅ์ƒ์— ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค. ์žฅ๊ณ ๋Š” ์ด ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ, ๋น ๋ฅธ ์›น ๊ฐœ๋ฐœ์„ ์‹คํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•˜๊ณ  ์ƒ์‚ฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์…‹์งธ, ์ค‘๋ณต์„ฑ์€ ํ”ผํ•˜๊ณ  ์ •๊ทœํ™”๋Š” ์ถ”๊ตฌํ•ฉ๋‹ˆ๋‹ค. "Don't Repeat Yourself (DRY)" ์›์น™์— ๋”ฐ๋ผ ์žฅ๊ณ ๋Š” ๋ฐ˜๋ณต์ ์ธ ์ž‘์—…์„ ์ค„์ด๊ณ , ์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ๋กœ ์ตœ๋Œ€ํ•œ์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋„๋ก ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ ๊ณผ์ •์ด ๋ณด๋‹ค ํšจ์œจ์ ์ด๊ณ  ์œ ์ง€๋ณด์ˆ˜ ๊ด€๋ฆฌ๊ฐ€ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ฒ ํ•™๋“ค์€ ์žฅ๊ณ ๊ฐ€ ์›น๊ฐœ๋ฐœ์„ ๋” ํšจ๊ณผ์ ์ด๊ณ  ๊ฐ„ํŽธํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ์žฅ๊ณ ์˜ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ๊ณผ ์ฒ ํ•™์„ ๊นŠ์ด ์ดํ•ดํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.


ํ•˜๋‚˜์˜ ๊ฐ•์˜์—์„œ ๋ฐฑ์—”๋“œ์™€ ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๊นŠ์ด ์žˆ๊ฒŒ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

๋ฆฌ์•กํŠธ์™€ Next.js ๊ธฐ์ˆ ์ด ์ธ๊ธฐ์žˆ๋‹ค๊ณ  ํ•ด์„œ ์„œ๋น„์Šค์˜ ๋ชจ๋“  ํŽ˜์ด์ง€๋ฅผ ๋ฆฌ์•กํŠธ์™€ Next.js ๊ธฐ์ˆ ๋กœ ๊ฐœ๋ฐœํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋ฆฌ์•กํŠธ์™€ Next.js ๊ธฐ์ˆ ์ด ํšจ์šฉ์žˆ๋Š” ํŽ˜์ด์ง€์— ์ง‘์ค‘ํ•ด์„œ ๊ฐœ๋ฐœํ•˜๊ณ , ๊ทธ ์™ธ์˜ ํŽ˜์ด์ง€์—์„œ๋Š” ์žฅ๊ณ  ๊ธฐ์ˆ ๋กœ ์ƒ์‚ฐ์„ฑ๋†’๊ฒŒ ์‹œ๊ฐ„์„ ์•„๋ผ๋ฉฐ ์›น์„œ๋น„์Šค๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ ํƒ๊ณผ ์ง‘์ค‘์ด์ฃ .

์žฅ๊ณ  ์ค‘์‹ฌ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์›น์„œ๋น„์Šค ๊ฐœ๋ฐœ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํžˆ๊ณ , ์žฅ๊ณ  ์ค‘์‹ฌ์œผ๋กœ ๋‹ค์–‘ํ•œ ์›น ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ ์„ ํ†ตํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด, ์—ฌ๋Ÿฌ๋ถ„์€ ๋‹ค์–‘ํ•œ ์›น ๊ฐœ๋ฐœ ์š”๊ตฌ์— ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐํ•˜๊ณ  ํšจ์œจ์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๊ฐ–์ถœ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ๋ฐฑ์—”๋“œ์™€ ํ”„๋ก ํŠธ์—”๋“œ ๋ชจ๋‘์—์„œ ๊ฐ•๋ ฅํ•œ ๊ธฐ์ˆ ์  ๊ธฐ๋ฐ˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ง€์‹๊ณผ ๊ฒฝํ—˜์„ ์–ป์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.


์Šฌ๋ผ์ด๋“œ ๊ธฐ๋ฐ˜์˜ ์ด๋ก  ๊ฐ•์˜, ๊ทธ๋ฆฌ๊ณ  PDF ์ œ๊ณต

๋ชจ๋“  ์ด๋ก  ์ฑ•ํ„ฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์Šฌ๋ผ์ด๋“œ๋Š” ๋‹ค๋…„๊ฐ„ ๊ฐ•์˜๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋‹ค๋“ฌ์–ด์ง€๊ณ  ์ •์ œ๋œ ์Šฌ๋ผ์ด๋“œ์ž…๋‹ˆ๋‹ค. PDF ํŒŒ์ผ๋กœ๋„ ์ œ๊ณตํ•ด๋“œ๋ฆฌ๊ธฐ์— ํ•„๊ธฐํ•˜์‹œ๋ฉด์„œ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜์‹œ๊ธฐ ์ข‹์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ํ•˜์‹œ๋ฉด ์ข‹์„ ๊ณต์‹ ๋ฌธ์„œ ๋งํฌ๋„ ๊ผผ๊ผผํ•˜๊ฒŒ PDF ๋ฌธ์„œ ๋‚ด์— ์ถ”๊ฐ€ํ•ด๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ๊ณต์‹๋ฌธ์„œ๋Š” ํ‹ˆ๋‚  ๋•Œ๋งˆ๋‹ค ์ฝ์–ด๋ณด์„ธ์š”. ๋ณธ ๊ฐ•์˜์—์„œ ์žฅ๊ณ ์˜ ๋ชจ๋“  ๋‚ด์šฉ์„ ๋‹ค ๋‹ค๋ฃฐ ์ˆ˜๋Š” ์—†๊ตฌ์š”. ์žฅ๊ณ ๋Š” ๊ณต์‹ ๋ฌธ์„œ๊ฐ€ ์ •๋ง ์ž˜ ๊ฐ–์ถฐ์ ธ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต์‹๋ฌธ์„œ์— ๋‹ต์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฝ๋Š” ์Šต๊ด€์„ ๊ธฐ๋ฅด์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์•ผ ์‹ค๋ ฅ์ด ๋น ๋ฅด๊ฒŒ ๋Šก๋‹ˆ๋‹ค.


10๋ถ„ ๋‚ด์™ธ๋กœ ํŽธ์ง‘๋œ ์งง์€ ํ˜ธํก์˜ ๊ฐ•์˜ ์˜์ƒ

๊ฐ ๊ฐ•์˜๋Š” 10๋ถ„ ๋‚ด์™ธ์˜ ์งง์€ ๊ธธ์ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด, ์—ฌ๋Ÿฌ๋ถ„์ด ์ง‘์ค‘๋ ฅ์„ ์œ ์ง€ํ•˜๋ฉฐ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฏธ๋ฆฌ ์ž‘์„ฑ๋œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋…นํ™”๋ฅผ ์ง„ํ–‰ํ–ˆ์œผ๋ฉฐ, ๊ฐ•์˜ ์ค‘ ๋ถˆํ•„์š”ํ•œ ๋ถ€๋ถ„์€ ๋ชจ๋‘ ํŽธ์ง‘ ๊ณผ์ •์—์„œ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์งง์€ ํ˜•์‹์˜ ๊ฐ•์˜๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์‹œ๊ฐ„์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. ์ค€๋น„์™€ ํŽธ์ง‘์— ์ƒ๋‹นํ•œ ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์ด ์†Œ์š”๋˜์—ˆ์ง€๋งŒ, ์ด๋Š” ํ•œ ์‚ฌ๋žŒ์˜ ํˆฌ์ž๊ฐ€ ์ˆ˜์ฒœ, ์ˆ˜๋งŒ ๋ช…์˜ ํ•™์Šต ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•˜๊ณ , ํ•™์Šต ํšจ์œจ์„ ๋†’์ด๋Š” ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค.


์„  ์ฝ”๋“œ ์„ค๋ช…, ํ›„ ์ฝ”๋“œ ์‹ค์Šต์œผ๋กœ ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ดํ•ด UP UP !!!

์ฝ”๋“œ ์‹ค์Šต์—์„œ๋Š” ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์ญˆ์šฑ ์„ค๋ช…๋“œ๋ฆฐ ๋’ค์— ์‹ค์Šต์„ ์ด์–ด๊ฐ‘๋‹ˆ๋‹ค. ์‹ค์Šตํ•˜๋ฉด์„œ ์ฝ”๋“œ๋ฅผ ์„ค๋ช…๋“œ๋ฆฌ๋Š” ๊ฒƒ๋ณด๋‹ค, ๋จผ์ € ์„ค๋ช…์„ ๋“ฃ๊ณ  ์‹ค์Šต์„ ์ง„ํ–‰ํ•˜๊ธฐ์— ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ดํ•ด๋„ ์ƒ์Šน์— ํฐ ๋„์›€์ด ๋˜์‹ค ๊ฒƒ์ž…๋‹ˆ๋‹ค.


๋ณต&๋ถ™ ํ•˜์‹ค ์ˆ˜ ์žˆ๋„๋ก ์‹ค์Šต์ฝ”๋“œ ๋งํฌ ์ œ๊ณต

๊ฐœ๋ฐœ ๊ฐ•์˜์˜ ํŠน์„ฑ์ƒ ์‹ค์Šต ์ฝ”๋“œ๋ฅผ ํƒ€์ดํ•‘ํ•˜๋Š” ๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๊ณ , ์˜คํƒ€๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง์ ‘ ํƒ€์ดํ•‘ํ•˜๊ณ  ์˜ค๋ฅ˜๋ฅผ ๊ฒช์œผ๋ฉฐ ํ•™์Šตํ•˜๋Š” ๊ฒƒ์ด ์ด์ƒ์ ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด ๊ณผ์ •์€ ๋•Œ๋•Œ๋กœ ๋งค์šฐ ํž˜๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์—ฌ๋Ÿฌ๋ถ„์ด ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์‹ค์Šต์„ ๋”ฐ๋ผํ•  ์ˆ˜ ์žˆ๋„๋ก, ๊ฐ ๊ฐ•์˜ ์˜์ƒ ์•„๋ž˜ ์ˆ˜์—…๋…ธํŠธ์— ์‹ค์Šต ์ฝ”๋“œ ๋งํฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•˜๊ณ  ๋ถ™์—ฌ๋„ฃ์„ ์ˆ˜ ์žˆ์–ด, ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•˜๊ณ  ์˜คํƒ€๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ, ๊ฐ ๊ฐ•์˜๋งˆ๋‹ค ์ปค๋ฐ‹ ๋‹จ์œ„๋กœ ์ฝ”๋“œ ๋งํฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ•์˜ ๋‚ด์šฉ๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ, ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ž์›๋“ค์€ ์—ฌ๋Ÿฌ๋ถ„์ด ๊ฐ•์˜๋ฅผ ๋ณด๋‹ค ํšจ๊ณผ์ ์œผ๋กœ ๋”ฐ๋ผํ•˜๊ณ , ์›ํ™œํ•˜๊ฒŒ ํ•™์Šตํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋‚ด์šฉ์„ ๋ฐฐ์›Œ์š”

์„น์…˜ (0) ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ•

"""๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•๋ฐฉ๋ฒ•์„ ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์„ค์ •ํ•˜์—ฌ, ๊ฐ•์˜๋ฅผ ์›ํ™œํžˆ ์ง„ํ–‰ํ•  ์ค€๋น„๋ฅผ ํ•ฉ๋‹ˆ๋‹ค."""

ํŒŒ์ด์ฌ/์žฅ๊ณ  ์›น ๊ฐœ๋ฐœ์˜ ์ฒซ ๊ฑธ์Œ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด, ์›ํ™œํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์€ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ์ด ์„น์…˜์—์„œ๋Š” ์œˆ๋„์šฐ์™€ ๋งฅ ์‚ฌ์šฉ์ž ๋ชจ๋‘๊ฐ€ ํŒŒ์ด์ฌ, ์žฅ๊ณ , ํŒŒ์ด์ฐธ, ํ„ฐ๋ฏธ๋„ ๋“ฑ์˜ ๊ฐœ๋ฐœ ๋„๊ตฌ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์น˜ํ•˜๊ณ  ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •์ด ๋น„๊ต์  ๊ฐ„๋‹จํ•ด ๋ณด์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ช‡ ๊ฐ€์ง€ ํ•ต์‹ฌ ํฌ์ธํŠธ๋ฅผ ๋†“์น˜๋ฉด ํ™˜๊ฒฝ ์„ค์ •์— ๋ฉฐ์น ์”ฉ ์†Œ๋ชจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์น˜ ์žฅ์ธ์ด ๋„๊ตฌ๋ฅผ ์ •๊ตํ•˜๊ฒŒ ๋‹ค๋“ฌ๊ณ  ์ž˜ ๊ด€๋ฆฌํ•ด์•ผ ์ตœ๊ณ ์˜ ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“ค์–ด๋‚ด๋“ฏ, ๊ฐœ๋ฐœ์ž๋„ ์ž์‹ ์˜ ๋„๊ตฌ๋ฅผ ์ž˜ ์„ค์ •ํ•˜๊ณ  ์ตœ์ ์˜ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„น์…˜์„ ํ†ตํ•ด ์ˆ˜๊ฐ•์ƒ ์—ฌ๋Ÿฌ๋ถ„์ด ๊ฐ•์˜์™€ ์‹ค์Šต์„ ์›ํ™œํžˆ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ๊ฐ–์ถ”๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค

์„น์…˜ (1) ์ •์  ์›น๋ฌธ์„œ์—์„œ ์žฅ๊ณ ๋กœ ๋™์  ์›น๋ฌธ์„œ๊นŒ์ง€ ๋น ๋ฅด๊ฒŒ ๋ง›๋ณด๊ธฐ

"""์ •์  ์›น์—์„œ ๋™์  ์›น๊นŒ์ง€์˜ ํ๋ฆ„์„ ๊ฐ๊ฐ์ ์œผ๋กœ ์ตํžˆ๋ฉฐ, ์›น ๊ฐœ๋ฐœ์˜ ์ „์ฒด์ ์ธ ํฐ ๊ทธ๋ฆผ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค."""

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

  • ๋จผ์ € ์›Œ๋“œ ๋ฌธ์„œ์—์„œ ์ƒ์„ฑ๋œ HTML ๋ฌธ์„œ์—์„œ ์ถœ๋ฐœํ•˜์—ฌ ๊ฐ„๋‹จํ•œ JavaScript๋ฅผ ์ถ”๊ฐ€ํ•ด ์ƒํ˜ธ์ž‘์šฉ์„ ๊ตฌํ˜„ํ•˜๊ณ , ์›น ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด HTML์„ ์„œ๋น™ํ•˜๋Š” ๊ณผ์ •์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

  • ์ดํ›„ ๋‹จ์ผ ํŒŒ์ผ๋กœ ๊ตฌ์„ฑ๋œ ์žฅ๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ์žฅ๊ณ ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ๋ง›๋ณด๊ณ , ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์™€ HTML์— ์ถœ๋ ฅํ•˜๋ฉฐ, ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด๋ณด๋Š” ๋“ฑ์˜ ๋™์  ์›น ํŽ˜์ด์ง€ ์š”์†Œ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฒฝํ—˜ํ•ฉ๋‹ˆ๋‹ค.

  • ๋˜ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ HTML ์‘๋‹ต์„ ์ƒ์„ฑํ•˜๋ฉฐ SQL Injection (SQL ์ฃผ์ž… ๊ณต๊ฒฉ)๊ณผ ๊ฐ™์€ ๋ณด์•ˆ ์œ„ํ˜‘์„ ๋‹ค๋ฃจ๊ณ , Bootstrap 5์™€ Tailwind CSS๋กœ ์›น ํŽ˜์ด์ง€์˜ ์Šคํƒ€์ผ๋ง์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

  • ๋งˆ์ง€๋ง‰์œผ๋กœ, ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง๊ณผ ํด๋ผ์ด์–ธํŠธ ๋ Œ๋”๋ง์˜ ์ฐจ์ด๋ฅผ ๋น„๊ตํ•˜๋ฉฐ, ๊ฐ๊ฐ์˜ ํŠน์ง•๊ณผ ์žฅ๋‹จ์ ์„ ๊ฐ„๋‹จํžˆ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค.

์„น์…˜ (2) ์žฅ๊ณ  ํ•ต์‹ฌ ๊ธฐ๋Šฅ ๋ฆฌ๋ทฐ

"""์žฅ๊ณ ์˜ ๊ธฐ๋ณธ ์•ฑ๊ณผ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ์ฒด๊ณ„์ ์œผ๋กœ ์ดํ•ดํ•˜์—ฌ, ์žฅ๊ณ ์˜ ์ง„์ •ํ•œ ๊ฐ€์น˜๋ฅผ ์•Œ๊ณ  ํšจ์œจ์ ์ธ ๊ฐœ๋ฐœ ๋ฐฉ์•ˆ์„ ๋ชจ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค."""

์žฅ๊ณ ์˜ ์ƒ์‚ฐ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•ด์ฃผ๋Š” ํ•ต์‹ฌ ๊ธฐ๋Šฅ๊ณผ ๊ธฐ๋ณธ ์•ฑ์„ ๋ฆฌ๋ทฐํ•ฉ๋‹ˆ๋‹ค. ์žฅ๊ณ ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ฃผ์š” ๋„๊ตฌ๋“ค์„ ์ฒด๊ณ„์ ์œผ๋กœ ์ดํ•ดํ•จ์œผ๋กœ์จ, ๋‹จ์ˆœํžˆ ๋ชจ๋ธ๊ณผ ๋ทฐ ์ฝ”๋“œ๋งŒ ๋ณต์‚ฌํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ์ˆ˜์ค€์„ ๋„˜์–ด, ์žฅ๊ณ ์˜ ์ง„์ •ํ•œ ๊ฐ€์น˜๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.

์žฅ๊ณ ๋ฅผ ๋‹จ์ˆœํžˆ ๋ชฉ๋ก/์ƒ์„ฑ/์ˆ˜์ • ํŽ˜์ด์ง€ ์ž‘์„ฑ ๋„๊ตฌ๋กœ๋งŒ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์žฅ๊ณ ๊ฐ€ ๊ฐ€์ง„ ๊ธฐ๋Šฅ๊ณผ ์ฒ ํ•™์„ ์ดํ•ดํ•˜์—ฌ, ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์•ˆ์„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ์žฅ๊ณ ์˜ ๊ธฐ๋ณธ ์•ฑ 15๊ฐœ๋ฅผ ์‚ดํŽด๋ณด๋ฉฐ, ๊ฐ๊ฐ์˜ ์•ฑ์ด ์‹ค์ œ ํ”„๋กœ์ ํŠธ์—์„œ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๊ณ , ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์œ ์šฉํ•˜๊ฒŒ ํ™œ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์ง€ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

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

์ด ์„น์…˜์„ ํ†ตํ•ด ์žฅ๊ณ ์˜ ๊ตฌ์กฐ์™€ ๊ธฐ๋Šฅ์„ ์ดํ•ดํ•˜๊ณ , ์žฅ๊ณ ๊ฐ€ ๊ฐ€์ง„ ๋‹ค์–‘ํ•œ ๊ฐ€๋Šฅ์„ฑ๊ณผ ๊ฐ€์น˜๋ฅผ ๋”์šฑ ๊นŠ์ด ์ดํ•ดํ•˜์‹ค ์ˆ˜ ์žˆ๋„๋ก ๋•๊ฒ ์Šต๋‹ˆ๋‹ค.

์„น์…˜ (3) ๋ฉœ๋ก  ๋ฐ์ดํ„ฐ๋กœ ์žฅ๊ณ  ํ•ต์‹ฌ ๊ธฐ๋Šฅ ๋ง›๋ณด๊ธฐ ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ

"""๋ฉœ๋ก  ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•œ ๊ฐ„๋‹จํ•œ ์กฐํšŒ ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ์žฅ๊ณ ์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๊ฐ๊ฐ์ ์œผ๋กœ ์ตํžˆ๊ณ  ์žฅ๊ณ  ์›น ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ์ž์‹ ๊ฐ์„ ์Œ“์Šต๋‹ˆ๋‹ค."""

์žฅ๊ณ  ์›น ๊ฐœ๋ฐœ์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ์‹ค์Šตํ•ด๋ณด๋Š” ๋‘ ๋ฒˆ์งธ "์›Œ๋ฐ์—…" ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ๋ฉœ๋ก  TOP100 ์Œ์•… ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ ์กฐํšŒ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋ฉด์„œ ์žฅ๊ณ ์˜ ์‹ค์ „ ๊ธฐ๋Šฅ์„ ๊ฒฝํ—˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ ํ†ตํ•ด ์žฅ๊ณ ์˜ ๊ธฐ๋Šฅ์ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜๋Š” ์ง€ ๊ฐ๊ฐ์ ์œผ๋กœ ์ตํžˆ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ์‹ค์Šต์—์„œ๋Š” ์ปค์Šคํ…€ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๊ณ , ๋ชจ๋ธ์„ ํ†ตํ•ด ์กฐํšŒํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋˜ํ•œ ์žฅ๊ณ ์˜ admin ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์‹ค์Šตํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์˜ ์›Œ๋ฐ์—…์„ ํ†ตํ•ด ์ดˆ๊ธฐ์˜ ๋ง‰์—ฐํ•œ ๋‘๋ ค์›€์„ ๊ทน๋ณตํ•˜์—ฌ, ์žฅ๊ณ ๋กœ ์›น ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ž์‹ ๊ฐ์„ ์Œ“๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„น์…˜์€ ์žฅ๊ณ  ํ•™์Šต์˜ ์žฅ๊ธฐ ์—ฌ์ •์„ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ์žˆ์–ด ๋“ ๋“ ํ•œ ๊ธฐ์ดˆ๊ฐ€ ๋˜์–ด์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์„น์…˜ (4) View ํ•จ์ˆ˜๋ฅผ ํ†ตํ•œ ์š”์ฒญ ์ฒ˜๋ฆฌ

"""ํ•จ์ˆ˜ ๊ธฐ๋ฐ˜ ๋ทฐ์™€ ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ๋ทฐ์˜ ์ฐจ์ด์™€ ์žฅ์ ์„ ์ดํ•ดํ•˜๊ณ , ์š”์ฒญ ์ฒ˜๋ฆฌ์— ์ ํ•ฉํ•œ ๋ทฐ ๋ฐฉ์‹์„ ์„ ํƒํ•˜์—ฌ ํšจ์œจ์ ์œผ๋กœ ์‘๋‹ต์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์„ ๊ฐ–์ถฅ๋‹ˆ๋‹ค."""

์žฅ๊ณ ์˜ View ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‘๋‹ตํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค. View๋Š” ์žฅ๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์›น ์š”์ฒญ/์‘๋‹ต ํ๋ฆ„์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•ต์‹ฌ ์š”์†Œ๋กœ์„œ, ์ด๋ฅผ ํ†ตํ•ด HTML, ์ด๋ฏธ์ง€, CSV, ์—‘์…€ ๋“ฑ ๋‹ค์–‘ํ•œ ํฌ๋งท์œผ๋กœ ์‘๋‹ต์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•จ์ˆ˜ ๊ธฐ๋ฐ˜ ๋ทฐ (Function based view)์™€ ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ๋ทฐ (Class based view)์˜ ์ฐจ์ด์ ๊ณผ ๊ฐ๊ฐ์˜ ์žฅ์ ์„ ํ•™์Šตํ•˜๋ฉฐ, ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์ ์ ˆํ•˜๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ง€ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค. ํŠนํžˆ ๋ฐ˜๋ณต์ ์ธ View ํŒจํ„ด์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ๋ทฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„ค์ •์— ๊ฐ€๊นŒ์šด ์ฝ”๋“œ๋กœ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ์ƒํ™ฉ์— ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ๋ทฐ๊ฐ€ ์ ํ•ฉํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๊ตฌ์š”. ํ•จ์ˆ˜ ๊ธฐ๋ฐ˜ ๋ทฐ์™€ ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ๋ทฐ๋ฅผ ์ ์ ˆํžˆ ํ˜ผํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ณธ ์„น์…˜์—์„œ๋Š” ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ๋ทฐ์˜ API๋ฅผ ๊นŠ์ด์žˆ๊ฒŒ ๋‹ค๋ฃจ์–ด, ๊ฐ ํด๋ž˜์Šค์˜ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ณ  ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ๋ทฐ๋Š” ๊ทธ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ถฉ๋ถ„ํ•œ ์ดํ•ด์—†์ด๋Š” ์‘์šฉ์ด ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

์„น์…˜ (5) ๋ชจ๋ธ์„ ํ†ตํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์กฐํšŒ

"""๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์žฅ๊ณ  ๋ชจ๋ธ์˜ ์—ฐ๋™ ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๊ณ , SQL ๋ ˆ๋ฒจ์—์„œ์˜ ๋™์ž‘์„ ํ†ตํ•ด ์žฅ๊ณ  ๋ชจ๋ธ ์ฝ”๋“œ์˜ ์‹ค์งˆ์ ์ธ ์ž‘๋™ ์›๋ฆฌ๋ฅผ ํŒŒ์•…"""

์žฅ๊ณ  ๋ชจ๋ธ์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ์žฅ๊ณ  ๋ชจ๋ธ์€ ํ•˜๋‚˜์˜ ํŒŒ์ด์ฌ ์ฝ”๋“œ๋กœ SQLite, PostgreSQL, MySQL/MariaDB, Oracle, SQL Server ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์žฅ๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์„ค์ • ๋ฐฉ๋ฒ•์„ ์ฝ”๋“œ๋กœ ๋‹ค๋ฃจ์–ด, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ๋•์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋„์ปค(Docker)๋ฅผ ํ†ตํ•ด PostgreSQL๊ณผ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ด๋ฅผ ์žฅ๊ณ  ํ”„๋กœ์ ํŠธ์™€ ์—ฐ๋™ํ•˜๋Š” ์‹ค์Šต์„ ํ†ตํ•ด ์‹ค์ „ ํ™˜๊ฒฝ์—์„œ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์„ฑ์„ ๊ฒฝํ—˜ํ•ด๋ด…๋‹ˆ๋‹ค.

์žฅ๊ณ ๊ฐ€ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ชจ๋ธ ํ•„๋“œ์˜ ์šฉ๋„์™€ ์˜ˆ์‹œ ์ฝ”๋“œ๋„ ํ•จ๊ป˜ ์„ค๋ช…ํ•˜์—ฌ, ๊ฐ ํ•„๋“œ๊ฐ€ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ €์žฅ๋˜๊ณ  ํ™œ์šฉ๋˜๋Š” ์ง€์— ๋Œ€ํ•œ ์ดํ•ด๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, ๋ชจ๋ธ ๋งค๋‹ˆ์ €๋ฅผ ํ†ตํ•ด ์ฟผ๋ฆฌ์…‹ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์กฐํšŒ๊ฐ€ ์ด๋ค„์ง€๋Š” ๊ณผ์ •์„ django-extensions ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ SQL ๋ ˆ๋ฒจ์—์„œ ํ™•์ธํ•ด๋ด…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์žฅ๊ณ  ๋ชจ๋ธ ์ฝ”๋“œ๊ฐ€ ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š” ์ง€์— ๋Œ€ํ•œ ์ดํ•ด๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„น์…˜ (6) ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ํ†ตํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๊ด€๋ฆฌ

"""์žฅ๊ณ ์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ํ™œ์šฉ๋ฒ•์„ ์ตํžˆ๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ๋ฅผ ํšจ์œจ์ ์ด๊ณ  ์•ˆ์ •์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ฐ˜์„ ๊ฐ–์ถ”๊ธฐ"""

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ๋ฅผ ํŒŒ์ด์ฌ ์ฝ”๋“œ๋กœ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์žฅ๊ณ  ๋ชจ๋ธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์†์‰ฝ๊ฒŒ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์žฅ๊ณ ์˜ ์ค‘์š”ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ธฐ๋Šฅ์ด ์—†๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ๋ฅผ ์ˆ˜๋™์œผ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๊ณ , ์ด๋Š” ๋ฒˆ๊ฑฐ๋กญ๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฌ์šฐ๋ฉฐ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ์œ ์ง€ ๊ด€๋ฆฌ์— ํฐ ์–ด๋ ค์›€์„ ๊ฒช๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์Šคํ‚ค๋งˆ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์—์„œ๋Š” ๊ฐ์ข… ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ˆ˜๋™์œผ๋กœ ์ผ์ผ์ด ๋ฐ˜์˜ํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ๋ชจ๋ธ์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์—์„œ ๋ถˆ์ผ์น˜๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์œ„ํ—˜์ด ๋†’์Šต๋‹ˆ๋‹ค.

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ณผ์ •์— ๋Œ€ํ•œ ์ดํ•ด์—†์ด ๋‹จ์ˆœํžˆ ๋ช…๋ น์–ด๋งŒ ๊ธฐ๊ณ„์ ์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„, ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹คํŒจ ์‹œ ๋Œ€์ฒ˜๊ฐ€ ์–ด๋ ต๊ณ  ํ˜ผ๋ž€์ด ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ๋„ ๋นˆ๋ฒˆํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€๋Š” ์ด๋Ÿฌํ•œ ์‹คํŒจ ๊ฒฝํ—˜์„ ํ†ตํ•ด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์€ ๋‹จ์ˆœํ•œ ์ƒํ™ฉ๋งŒ ์ปค๋ฒ„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ณต์žกํ•œ ์ƒํ™ฉ์—์„œ๋Š” ์“ธ ์ˆ˜ ์—†๋‹ค๋ผ๋Š” ์˜คํ•ด๋ฅผ ํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„น์…˜์—์„œ๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์— ๋Œ€ํ•œ ์ดํ•ด๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚ด์šฉ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

  • ํŒŒ์ด์ฌ ์ฝ”๋“œ๋กœ ๋ฐ์ดํ„ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ๊ด€๋ จ ๋ช…๋ น์–ด๋ฅผ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

  • ์šฐํŽธ๋ฒˆํ˜ธ CSV ๋ฐ์ดํ„ฐ๋ฅผ ์˜ˆ์‹œ๋กœ, ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์˜ฎ๊ธฐ๋Š” ๊ณผ์ •์„ ๊ฒฝํ—˜ํ•˜๋ฉฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์‹ค์Šตํ•ฉ๋‹ˆ๋‹ค.

  • ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃจ์–ด, ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ํ™˜๊ฒฝ์—์„œ๋„ ์•ˆ์ •์ ์ธ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

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

์„น์…˜ (7) ์ปค์Šคํ…€ ๋ชจ๋ธ ํ•„๋“œ์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ œ์•ฝ ์กฐ๊ฑด

"""์žฅ๊ณ  ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด ์‹ค์ œ ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํžˆ๊ณ , ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ œ์•ฝ ์กฐ๊ฑด์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ์™€ ์„ฑ๋Šฅ ์ตœ์ ํ™”์˜ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋‹ค์ง€๊ธฐ"""

์‹ค๋ฌด์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์„ ์žฅ๊ณ  ๋ชจ๋ธ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋ชจ๋ธ ํ•„๋“œ์™€ ๋”๋ถˆ์–ด, ํŠน์ •ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์— ๋งž์ถ˜ ์ปค์Šคํ…€ ๋ชจ๋ธ ํ•„๋“œ์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ œ์•ฝ ์กฐ๊ฑด์„ ๋‹ค๋ฃจ๋ฉฐ, ์žฅ๊ณ  ๋ชจ๋ธ์˜ ์œ ์—ฐ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์„น์…˜์˜ ์ฃผ์š” ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๊ธฐ๋ณธ ๋ชจ๋ธ ํ•„๋“œ : ์žฅ๊ณ ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ ๋ชจ๋ธ ํ•„๋“œ๋ฅผ ํ•™์Šตํ•˜๋ฉฐ, ๊ฐ ํ•„๋“œ์˜ ํŠน์„ฑ๊ณผ ์šฉ๋„๋ฅผ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.


  • ์ปค์Šคํ…€ ๋ชจ๋ธ ํ•„๋“œ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ• : ๊ธฐ๋ณธ ํ•„๋“œ๋กœ๋Š” ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๋Š” ํŠน๋ณ„ํ•œ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ปค์Šคํ…€ ๋ชจ๋ธ ํ•„๋“œ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ˆซ์ž๋กœ ์ €์žฅํ•˜๋Š” IP ํ•„๋“œ์™€ Y/N ๋ฌธ์ž์—ด๋กœ ์ €์žฅํ•˜๋Š” ์ฐธ๊ฑฐ์ง“ ํ•„๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์ปค์Šคํ…€ ํ•„๋“œ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ๋ณธ๊ธฐ๋ฅผ ์ตํž™๋‹ˆ๋‹ค.


  • ๋‹ค์–‘ํ•œ Meta ์˜ต์…˜ : ์ธ๋ฑ์Šค, ์œ ์ผ์„ฑ ์ œ์•ฝ์กฐ๊ฑด, ํ”„๋ก์‹œ ๋ชจ๋ธ ๋“ฑ์˜ Meta ์˜ต์…˜์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ œ์•ฝ ์กฐ๊ฑด๊ณผ ๋ชจ๋ธ์˜ ์†์„ฑ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ณ , ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„น์…˜ (8) ์žฅ๊ณ  Form์„ ํ™œ์šฉํ•œ ์ƒ์‚ฐ์„ฑ ๋†’์€ ์ž…๋ ฅํผ ์ฒ˜๋ฆฌ

"""์žฅ๊ณ ์˜ Form ๊ธฐ๋Šฅ์„ ์‹ฌ๋„์žˆ๊ฒŒ ์ดํ•ดํ•˜๊ณ , ์ œ์•ฝ์„ ๊ทน๋ณตํ•˜์—ฌ ์œ ์—ฐ์„ฑ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. HTML ์ž…๋ ฅํผ ์ž‘์„ฑ๊ณผ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๊ณผ์ •์„ ํ†ตํ•ฉ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์—ญ๋Ÿ‰์„ ๊ฐ–์ถ”๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค."""

Form ์ฒ˜๋ฆฌ๋Š” ๋ฆฌ์•กํŠธ์™€ ๊ฐ™์€ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋„ ๋งŽ์€ ๊ฐœ๋ฐœ๊ณต์ˆ˜๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ์ž‘์—…์ด์ง€๋งŒ, ์žฅ๊ณ  Form์€ HTML ์ž…๋ ฅํผ ์ž‘์„ฑ๋ถ€ํ„ฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊นŒ์ง€ ํ†ตํ•ฉ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ๊ฐœ๋ฐœ์ƒ์‚ฐ์„ฑ์„ ํฌ๊ฒŒ ๋†’์—ฌ์ค๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐฑ์—”๋“œ์—์„œ์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋Š” ํ•„์ˆ˜์ด๋ฏ€๋กœ ์„œ๋ฒ„์—์„œ๋„ ์ฒ ์ €ํ•˜๊ฒŒ ์œ ์ € ์ž…๋ ฅ๊ฐ’์„ ๊ฒ€์ฆํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค. Form ์ฒ˜๋ฆฌ์— ํ•„์š”ํ•œ ๋‹ค์–‘ํ•œ ๋ณด์•ˆ ๊ธฐ๋Šฅ์€ ๋ค์ž…๋‹ˆ๋‹ค.

์žฅ๊ณ  Form์€ ๊ฐ•๋ ฅํ•˜์ง€๋งŒ ๋‹ค์†Œ ์œ ์—ฐ์„ฑ์ด ๋ถ€์กฑํ•˜๋‹ค๋Š” ์ธ์‹์ด ์žˆ๋Š” ๊ฒƒ๋„ ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋Ÿฌํ•œ ์ œ์•ฝ์„ ๊ทน๋ณตํ•˜์—ฌ ๋ณด๋‹ค ์œ ์—ฐํ•˜๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•๋“ค์„ ํ•จ๊ป˜ ๋‹ค๋ฃจ์–ด, ์žฅ๊ณ  Form์˜ ํ™œ์šฉ๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. ํ•„์š”์— ๋”ฐ๋ผ HTML ์ž…๋ ฅํผ ์ƒ์„ฑ์€ ์žฅ๊ณ  Form์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  ์ง์ ‘ ์ž‘์„ฑํ•  ์ˆ˜๋„ ์žˆ๊ฒ ๊ตฌ์š”. ๋ฆฌ์•กํŠธ์™€ ๊ฐ™์€ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋„ ์žฅ๊ณ  Form์„ ํ™œ์šฉํ•ด ํผ ์ฒ˜๋ฆฌ์˜ ๊ณต์ˆ˜๋ฅผ ๋Œ€ํญ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์„น์…˜์—์„œ ๋‹ค๋ฃจ๋Š” ์ฃผ์š” ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์š”์ฒญ ๊ฐ์ฒด์™€ ์‘๋‹ต ๊ฐ์ฒด : HTML Form์„ ํ†ตํ•ด ๋“ค์–ด์˜จ ์š”์ฒญ๊ณผ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜์—ฌ ์‘๋‹ตํ•˜๋Š” ๊ณผ์ •์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

  • CSRF ๋ฐฉ์–ด : ์žฅ๊ณ ์—์„œ ๊ธฐ๋ณธ ํ™œ์„ฑํ™”๋˜์–ด์žˆ๋Š” CSRF (์‚ฌ์ดํŠธ ๊ฐ„ ์š”์ฒญ ์œ„์กฐ) ๊ณต๊ฒฉ ๋ฐฉ์–ด์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค. ์ด๋ฏธ ์ œ๊ณต๋˜๋Š” ์ข‹์€ ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ๋„์ง€ ๋งˆ์„ธ์š”.

  • Form ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ : Form์„ ํ™œ์šฉํ•˜์—ฌ ํšจ์œจ์ ์œผ๋กœ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ์‘๋‹ตํ•˜๊ณ  ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ํ†ต๊ณผํ•œ ์˜ฌ๋ฐ”๋ฅธ ๊ฐ’๋“ค๋งŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.


  • ์žฅ๊ณ  Form๊ณผ ModelForm : ์žฅ๊ณ  Form์„ ํ™œ์šฉํ•˜๋ฉด ์ž…๋ง›๋Œ€๋กœ ํผ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์š”. ๋ชจ๋ธ ๊ตฌ์„ฑ๋Œ€๋กœ ์ž…๋ ฅํผ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ModelForm์„ ํ™œ์šฉํ•˜์‹œ๋ฉด ํผ ํ•„๋“œ๋ฅผ ์ผ์ผ์ด ์ •์˜ํ•˜์ง€ ์•Š์•„๋„, ๋ชจ๋ธ ๊ตฌ์„ฑ์— ๋งž์ถฐ ํผ์„ ๊ตฌ์„ฑํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Form๊ณผ ModelForm์˜ ์ฐจ์ด๋ฅผ ์ดํ•ดํ•˜๊ณ  ์‹ค์ „์—์„œ ๊ฐ๊ฐ์„ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ• ์ง€ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

  • ํผ ํ•„๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ณ  ์ปค์Šคํ…€ ํผ ํ•„๋“œ/์œ„์ ฏ ๊ฐœ๋ฐœ : ๋‹ค์–‘ํ•œ ํผ ํ•„๋“œ๋ฅผ ํ•™์Šตํ•˜๊ณ , ํ•„์š”์— ๋”ฐ๋ผ ์ปค์Šคํ…€ ํผ ํ•„๋“œ์™€ ์œ„์ ฏ์„ ๊ฐœ๋ฐœํ•˜์—ฌ ๋งž์ถคํ˜• ์ž…๋ ฅ ํผ์„ ๊ตฌํ˜„ํ•˜์—ฌ, ํŒŒ์ด์ฌ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž…๋ ฅ ํผ ํ•„๋“œ/์œ„์ ฏ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.

  • ํŒŒ์ด์ฌ ์ฝ”๋“œ๋กœ ํผ ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑํ•˜๊ธฐ : ๋‹ค์–‘ํ•œ ํผ ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ์„ ์œ„ํ•ด ๊ตณ์ด ์ง์ ‘ HTML์„ ๋งŒ์งˆ ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ ์ฝ”๋“œ ๋งŒ์œผ๋กœ ๋‹ค์–‘ํ•œ ๋ ˆ์ด์•„์›ƒ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

  • ์—ฌ๋Ÿฌ Form ์š”์ฒญ์„ ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜๊ธฐ : ์œ ์ €๋กœ๋ถ€ํ„ฐ ๋ฐ›์„ ํ•˜๋‚˜์˜ ์ž…๋ ฅ ํ•„๋“œ ๊ตฌ์„ฑ์€ ๊ทธ๋•Œ ๊ทธ๋•Œ ๋ฐ”๋€” ์ˆ˜ ์žˆ๊ณ , ์—ฌ๋Ÿฌ Form ์š”์†Œ๋ฅผ ํ•œ ๋ฒˆ์— ์ž…๋ ฅ๋ฐ›์•„์•ผํ•  ๋•Œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ Form ๊ฐ’๋“ค์„ ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํ˜€, ๋ณต์žกํ•œ ์ž…๋ ฅ ์š”๊ตฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

์„น์…˜ (9) ์žฅ๊ณ  ๊ธฐ๋ณธ ์ธ์ฆ ๊นŠ๊ฒŒ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ

"""์žฅ๊ณ  ์ธ์ฆ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ์™€ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์„ ์‹ฌ๋„์žˆ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."""

์›น์„œ๋น„์Šค์˜ ํ•„์ˆ˜ ์š”์†Œ์ธ ์ธ์ฆ ๊ธฐ๋Šฅ์„ ๊นŠ์ด์žˆ๊ฒŒ ๊ตฌํ˜„ํ•ด๋ณด๋ฉฐ, ์žฅ๊ณ ์˜ ๊ธฐ๋ณธ ์ธ์ฆ ์‹œ์Šคํ…œ์„ ํ•˜๋‚˜์”ฉ ๊ตฌํ˜„ํ•ด๋‚˜๊ฐ€๋Š” ๊ณผ์ •์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์€ ๋ณด์•ˆ๊ณผ ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ํ•„์ˆ˜์ ์ธ ๊ธฐ๋Šฅ์ด๊ตฌ์š”. ์ด๋ฅผ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋จผ์ € ์›น์„œ๋น„์Šค์˜ ์ธ์ฆ ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์ฟ ํ‚ค์™€ ์„ธ์…˜์˜ ์›๋ฆฌ๋ฅผ ํ•™์Šตํ•˜๋ฉฐ, ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์žฅ๊ณ ์—์„œ์˜ ์ธ์ฆ ํ๋ฆ„์„ ์„ค๊ณ„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์žฅ๊ณ ์˜ ๊ธฐ๋ณธ ์ธ์ฆ ๊ธฐ๋Šฅ์„ ๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ๊ตฌํ˜„ํ•ด๋ณด๋ฉด์„œ, ๊ฐ๊ฐ์˜ ๊ธฐ๋Šฅ์ด ์–ด๋–ค ์—ญํ• ์„ ํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š” ์ง€ ์ง์ ‘ ๊ฒฝํ—˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ๊ธฐ์กด ์„œ๋น„์Šค์—๋„ ์žฅ๊ณ  ์ธ์ฆ์„ ์‘์šฉํ•˜์—ฌ ์†์‰ฝ๊ฒŒ ์ ‘๋ชฉํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์„ ๊ฐ–์ถ”๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด ์„น์…˜์˜ ์ฃผ์š” ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ฟ ํ‚ค์™€ ์„ธ์…˜์— ๋Œ€ํ•œ ์ดํ•ด : ์ฟ ํ‚ค์™€ ์„ธ์…˜์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ์—ญํ• ์„ ์ดํ•ดํ•˜์—ฌ, ์›น์„œ๋น„์Šค์—์„œ์˜ ์ธ์ฆ์ด ์–ด๋–ป๊ฒŒ ์ด๋ค„์ง€๋Š” ์ง€ ๊ธฐ์ดˆ๋ฅผ ๋‹ค์ง‘๋‹ˆ๋‹ค.

  • ์žฅ๊ณ  ์ธ์ฆ ๊ธฐ๋Šฅ ๊ตฌํ˜„ : ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์•„์›ƒ, ์•”ํ˜ธ ์žฌ์„ค์ • ์š”์ฒญ ๋ฐ ํ™•์ธ๊ณผ ๊ฐ™์€ ํ•ต์‹ฌ ์ธ์ฆ ๊ธฐ๋Šฅ์„ ๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ๊ตฌํ˜„ํ•ด๋ด…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์žฅ๊ณ ์˜ ์ธ์ฆ ์‹œ์Šคํ…œ์„ ๋ณด๋‹ค ๊นŠ์ด์žˆ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์žฅ๊ณ  ๊ธฐ๋ณธ ๊ถŒํ•œ ์ •์ฑ… : ์žฅ๊ณ ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ถŒํ•œ ์ •์ฑ…์„ ์‚ดํŽด๋ณด๋ฉฐ, ์ธ์ฆ ์™ธ์—๋„ ์‚ฌ์šฉ์ž ๊ถŒํ•œ ๊ด€๋ฆฌ์™€ ๊ฐ™์€ ์ถ”๊ฐ€์ ์ธ ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ (10) ์žฅ๊ณ  ์ฃผ๋„์˜ ์›น ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ ๊ณผ ์›น ์ปดํฌ๋„ŒํŠธ

"""์žฅ๊ณ ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ ์„ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํžˆ๊ณ , ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ์„ ํ†ตํ•ด ๋ณด๋‹ค ํšจ์œจ์ ์ด๊ณ  ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ๋†’์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์—ญ๋Ÿ‰์„ ๊ฐ–์ถฅ๋‹ˆ๋‹ค."""

ํšจ์œจ์ ์ด๊ณ  ์žฌ์‚ฌ์šฉ์„ฑ ๋†’์€ ์žฅ๊ณ  ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค. ์žฅ๊ณ  ํ…œํ”Œ๋ฆฟ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ๊ธฐ๋ฒ•์„ ํ†ตํ•ด JavaScript์— ์˜์กดํ•˜์ง€ ์•Š๊ณ ๋„ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒํ•œ ์›น ํŽ˜์ด์ง€๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์œ ์ง€ ๋ณด์ˆ˜์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์„น์…˜์—์„œ ๋‹ค๋ฃจ๋Š” ์ฃผ์š” ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • JS ์—†๋Š” HTMX ์›น ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ : JavaScript ์—†์ด๋„ HTMX๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒํ•œ ์›นํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค.

  • ์žฅ๊ณ  ํ…œํ”Œ๋ฆฟ๋ฅผ ํ™œ์šฉํ•œ ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ : ์žฅ๊ณ  ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜์œผ๋กœ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๋ฉฐ, ํ”„๋กœใ…‘์ ํŠธ ๋‚ด์—์„œ์˜ ์ผ๊ด€์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๋Š” ๋ฐฉ์•ˆ์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

  • django-components ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•œ ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ : django-components ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋” ๋‚˜์€ ๋ชจ๋“ˆํ™”์™€ ์žฌ์‚ฌ์šฉ์„ฑ์„ ์ง€์›ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ตฌํ˜„ํ•ด๋ด…๋‹ˆ๋‹ค.


์„น์…˜ (11) (ํฌํ† ๋กœ๊ทธ ํ”„๋กœ์ ํŠธ) ์žฅ๊ณ  ์ค‘์‹ฌ์˜ ์›น ์„œ๋น„์Šค ๊ฐœ๋ฐœํ•˜๊ธฐ

"""์žฅ๊ณ ์˜ ์—ฌ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฒฐํ•ฉํ•ด ์‹ค์ œ ์›น ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒฝํ—˜์„ ์Œ“๊ณ , ์‹ค๋ฌด์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๋ฉฐ, ์žฅ๊ณ  ์ค‘์‹ฌ์˜ ํ’€์Šคํƒ ์›น ๊ฐœ๋ฐœ ๋Šฅ๋ ฅ์„ ๊ฐ–์ถ”๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค."""

์žฅ๊ณ ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํฌํ† ๋กœ๊ทธ ์›น์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉฐ, ์žฅ๊ณ ๊ฐ€ ๋‹จ์ˆœํ•œ API๊ฐ€ ์•„๋‹Œ ํ’€์Šคํƒ ์›นํ”„๋ ˆ์ž„์›Œํฌ๋กœ์„œ ์ œ๊ณตํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ๋“ค์„ ํ™œ์šฉํ•ด๋ด…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ๊ณผ ์ดˆ๊ธฐ ์„ค์ •๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ, ์žฅ๊ณ ์™€ ๋‹ค์–‘ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์‹œ๋„ˆ์ง€๋ฅผ ๋Œ์–ด๋‚ด๋ฉด์„œ, ์‹ค์ œ ์„œ๋น„์Šค๋ฅผ ๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์™„์„ฑํ•ด๋‚˜๊ฐ‘๋‹ˆ๋‹ค.

์ด ์„น์…˜์—์„œ ๋‹ค๋ฃจ๋Š” ์ฃผ์š” ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์žฅ๊ณ ์™€ django-crispy-forms, htmx์™€์˜ ๊ถ๊ทน์˜ ์‹œ๋„ˆ์ง€

  • ์ด๋ฏธ์ง€ ๋‹ค์ค‘ ์—…๋กœ๋“œ ๊ตฌํ˜„ : ์—ฌ๋Ÿฌ ์ด๋ฏธ์ง€๋ฅผ ํ•œ ๋ฒˆ์— ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ, ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ํ™˜๊ฒฝ์„ ๊ตฌํ˜„ํ•ด๋ด…๋‹ˆ๋‹ค.


  • Pillow ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ ์ด๋ฏธ์ง€ ์ตœ์ ํ™” : ํŒŒ์ด์ฌ์—์„œ๋Š” Pillow ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ€๋ณ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜๋„ ์‰ฝ๊ตฌ์š”. Pillow ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•ด ์ด๋ฏธ์ง€๋ฅผ ๋ฆฌ์‚ฌ์ด์ฆˆํ•˜๊ณ  JPEG๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ, ์ด๋ฏธ์ง€ ์šฉ๋Ÿ‰์„ ์ตœ๋Œ€ 98%๊นŒ์ง€ ์ค„์ด๋Š” ์ตœ์ ํ™” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

  • django-taggit ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ํƒœ๊ทธ ์ง€์› : ํƒœ๊ทธ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด ์ฝ˜ํ…์ธ ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

  • ๋‹ค์–‘ํ•œ ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ : modal-form, image-overlay, carousel๊ณผ ๊ฐ™์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜์—ฌ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • HTMX์™€ ๋ชจ๋‹ฌ์„ ์ ๊ทน ํ™œ์šฉํ•œ ๋Œ“๊ธ€ ๊ตฌํ˜„ : htmx์™€ ๋ชจ๋‹ฌ์„ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ ๋Œ“๊ธ€ ๊ธฐ๋Šฅ์„ ํšจ์œจ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•˜๊ณ  ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.

  • ์œ ์ € ํŒ”๋กœ์ž‰ ๊ตฌํ˜„ : ์‚ฌ์šฉ์ž๊ฐ„ ํŒ”๋กœ์šฐ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์—ฌ, ๊ธฐ๋ณธ์ ์ธ ์†Œ์…œ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ํฌํ† ๋กœ๊ทธ ์„œ๋น„์Šค๋ฅผ ์™„์„ฑํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ (12) ๋ฆฌ๋ˆ…์Šค ๊ฐ€์ƒ ๋จธ์‹ ์— ์žฅ๊ณ  ์„œ๋น„์Šค ๋ฐฐํฌํ•˜๊ธฐ

"""์žฅ๊ณ  ์„œ๋น„์Šค๋ฅผ ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์— ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐฐํฌํ•˜๋Š” ๊ธฐ์ˆ ์„ ์ตํžˆ๊ณ , AWS Lightsail ์ธํ”„๋ผ์—์„œ ์‹ค์ œ ์„œ๋น„์Šค ์šด์˜ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์—ญ๋Ÿ‰์„ ๊ฐ–์ถ”๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค."""

๋Œ€๋ถ€๋ถ„์˜ ์›น์„œ๋น„์Šค๋Š” ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์—์„œ ์šด์˜๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ฐ˜ ๋ฐฐํฌ ๋ฐ ์„œ๋ฒ„ ๊ด€๋ฆฌ ๊ธฐ์ˆ ์€ ์›น ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํ•„์ˆ˜์ ์ธ ์—ญ๋Ÿ‰์ž…๋‹ˆ๋‹ค. ์ด ์„น์…˜์„ ํ†ตํ•ด ์žฅ๊ณ  ์„œ๋น„์Šค๋ฅผ ์‹ค์ œ ์šด์˜ ํ™˜๊ฒฝ์— ์•ˆ์ •์ ์œผ๋กœ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ์„ค์ •๊ณผ ์•„ํ‚คํ…ํ„ฐ ๊ตฌ์„ฑ์„ ์ตํžˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

AWS Lightsail์„ ์ค‘์‹ฌ์œผ๋กœ ์„ค๋ช…ํ•˜์ง€๋งŒ, ์ด ๊ณผ์ •์„ ํ†ตํ•ด ์ตํžŒ ์„ค์ •๊ณผ ๋ฐฐํฌ ๋ฐฉ์‹์€ ๋‹ค๋ฅธ ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„ ํ™˜๊ฒฝ์—๋„ ๊ฑฐ์˜ ๋™์ผํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์„น์…˜์—์„œ ๋‹ค๋ฃจ๋Š” ์ฃผ์š” ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ ์„ค์ • : ์™ธ๋ถ€ ์„œ๋ฒ„์— ๋ฐฐํฌํ•˜์ง€ ์•Š๊ณ ๋„ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ ํœด๋Œ€ํฐ ๋“ฑ์˜ ๋””๋ฐ”์ด์Šค์—์„œ ๊ฐœ๋ฐœ ์„œ๋ฒ„์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์—์„œ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ธฐ์ˆ ์„ ์ตํžˆ๊ณ , ๊ฐœ๋ฐœ ์ค‘์—๋„ ๋‹ค์–‘ํ•œ ๊ธฐ๊ธฐ์—์„œ ์‰ฝ๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜ : ์›น์„œ๋น„์Šค ๋ฐฐํฌ์˜ ๊ธฐ๋ณธ์ ์ธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์†Œ๊ฐœํ•˜๋ฉฐ, ์„œ๋ฒ„ ๊ตฌ์„ฑ๊ณผ ์—ญํ•  ๋ถ„๋‹ด์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

  • ์šฐ๋ถ„ํˆฌ ๋ฆฌ๋ˆ…์Šค ๊ฐ€์ƒ ๋จธ์‹ ์— ์žฅ๊ณ  ์„œ๋น„์Šค ๋ฐฐํฌ

    • ํŒŒ์ด์ฌ ์ตœ์‹ ๋ฒ„์ „ 3.12 ์„ค์น˜ํ•˜๊ณ  ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

    • nginx๋ฅผ ํ†ตํ•œ ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ ๋ฐ ์ •์  ํŒŒ์ผ ์„œ๋น™ : nginx๋ฅผ ํ†ตํ•ด ์›น ์š”์ฒญ์— ๋”ฐ๋ผ ์›น ํŠธ๋ž˜ํ”ฝ์„ ํšจ๊ณผ์ ์œผ๋กœ ๋‚˜๋ˆ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค.

    • ์—๋Ÿฌ ๋กœ๊ทธ์™€ ๊ด€๋ฆฌ์ž ์ด๋ฉ”์ผ ๋ฐœ์†ก : ์„œ๋น„์Šค ์—๋Ÿฌ๋ฅผ ๊ด€๋ฆฌ์ž๊ฐ€ ๋น ๋ฅด๊ฒŒ ์ธ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก, ๊ด€๋ฆฌ์ž ์ด๋ฉ”์ผ ์„ค์ • ๋ฐฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค.

    • ์—๋Ÿฌ ๋กœ๊น… ์„œ๋น„์Šค Sentry : ์—๋Ÿฌ ํŠธ๋ž˜ํ‚น ์„œ๋น„์Šค Sentry์™€ ์—ฐ๋™ํ•˜์—ฌ, ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ํ†ตํ•ด ์„œ๋น„์Šค ๊ด€๋ฆฌ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.


  • Amazon Lightsail ๊ฐ€์ƒ๋จธ์‹ ๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ™œ์šฉํ•œ ๋ฐฐํฌ : AWS ๊ธฐ๋ฐ˜์˜ ์•ˆ์ •์ ์ธ ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ด๋ด…๋‹ˆ๋‹ค.


์„น์…˜ (13) django-rest-framework๋ฅผ ํ™œ์šฉํ•œ ์ƒ์‚ฐ์„ฑ ๋†’์€ ์›น API ๋งŒ๋“ค๊ธฐ

"""django-rest-framework์˜ ๊ธฐ๋Šฅ์„ ์ข…ํ•ฉ์ ์œผ๋กœ ์ดํ•ดํ•˜๊ณ , ํšจ์œจ์ ์ด๊ณ  ์ƒ์‚ฐ์„ฑ ๋†’์€ ์›น API๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ์‹ค๋ฌด ์—ญ๋Ÿ‰์„ ๊ฐ–์ถฅ๋‹ˆ๋‹ค."""

์žฅ๊ณ ์—์„œ ์›น API ๊ฐœ๋ฐœ์— ๋„๋ฆฌ ์‚ฌ์šฉ๋˜์–ด์ง€๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” django-rest-framework (์ดํ•˜ DRF) ์ž…๋‹ˆ๋‹ค. DRF๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ƒ์‚ฐ์„ฑ ๋†’์€ ์›น API๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ์žฅ๊ณ ๊ฐ€ ์›นํŽ˜์ด์ง€ ๊ฐœ๋ฐœ์— ์ตœ์ ํ™”๋œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, DRF๋Š” ์›น API ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ฒด๊ณ„์ ์œผ๋กœ ์ง€์›ํ•˜์—ฌ ๋ฐ˜๋ณต์„ ์ค„์ด๊ณ , ์›น API ๊ตฌ์ถ•์„ ํšจ๊ณผ์ ์œผ๋กœ ๋„์™€์ค๋‹ˆ๋‹ค.

์ด ์„น์…˜์—์„œ ๋‹ค๋ฃจ๋Š” ์ฃผ์š” ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. APIView : API ์š”์ฒญ ์ฒ˜๋ฆฌ์˜ ํ•ต์‹ฌ์ธ APIView์˜ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ์™€ ๋™์ž‘ ๋ฐฉ์‹์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

  2. ๋ฏน์Šค์ธ (Mixin) : ํด๋ž˜์Šค ์ƒ์† ๋ฌธ๋ฒ•์„ ํ™œ์šฉํ•œ ๊ธฐ๋Šฅ์œผ๋กœ, ์ด๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ DRF APIView๋“ค์„ ์กฐํ•ฉํ•˜์—ฌ ์„ค์ •์— ๊ฐ€๊นŒ์šด ์ฝ”๋“œ๋กœ ๋‹ค์–‘ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ง€์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๊ณ , ๊ณตํ†ต ๊ธฐ๋Šฅ์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค.

  3. ModelViewSet : CRUD (์ƒ์„ฑ/์กฐํšŒ/์ˆ˜์ •/์‚ญ์ œ) API ๊ตฌํ˜„์˜ ์ข…ํ•ฉ์„ ๋ฌผ์„ธํŠธ๋กœ์„œ, ํ•„์š”ํ•œ CRUD ๊ธฐ๋Šฅ์„ ์ž์œ ์ž์žฌ๋กœ ์กฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ์† ๊ณผ์ •์„ ์‚ดํŽด๋ณด๊ณ , ์ด๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์ƒ์† ์กฐํ•ฉ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

  4. ๋ Œ๋”๋Ÿฌ (Renderer) : API ์„œ๋ฒ„๋Š” JSON ํฌ๋งท ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์ด๋ฏธ์ง€, ์—‘์…€ํŒŒ์ผ, PDF ๋“ฑ์˜ ์‘๋‹ต๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ๋‚ด์šฉ์˜ ๋ฌธ์„œ๋ผ๋„ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์—‘์…€, ์›Œ๋“œ, ์›Œ๋“œ, ์•„๋ž˜์•„ํ•œ๊ธ€ ํฌ๋งท์˜ ๋ฌธ์„œ๊ฐ€ ํ•„์š”ํ•˜๋“ฏ์ด ๋ง์ด์ฃ . DRF Renderer๋ฅผ ํ†ตํ•ด ์žฌ์‚ฌ์šฉ์„ฑ ๋†’๊ฒŒ ๋‹ค์–‘ํ•œ ํฌ๋งท์˜ API ์‘๋‹ต์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค.

  5. ์‹œ๋ฆฌ์–ผ๋ผ์ด์ € (Serializer) : ์žฅ๊ณ  Form์˜ ์—ญํ• ์„ ์‹œ๋ฆฌ์–ผ๋ผ์ด์ €์—์„œ ๋‹ด๋‹นํ•˜๊ตฌ์š”. ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ๊ณผ ๋ณ€ํ™˜์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค.

  6. ์ธ์ฆ ๋ฐ ๊ถŒํ•œ : API ๋ณด์•ˆ์„ ๊ฐ•์ขŒํ•˜๋Š” ์ธ์ฆ ๋ฐ ๊ถŒํ•œ์„ ํ•™์Šตํ•˜์—ฌ, ์‚ฌ์šฉ์ž ์ ‘๊ทผ ์ œ์–ด๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

  7. pytest ํ…Œ์ŠคํŠธ : pytest๋ฅผ ํ™œ์šฉํ•œ API ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃจ์–ด, API๊ฐ€ ์˜๋„๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š” ์ง€ ๊ฒ€์ฆํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค.

  8. ํŽ˜์ด์ง• (Pagination) : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ” ์ƒ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ์กฐํšŒํ•˜์ง„ ์•Š์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜์—ฌ ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ์กฐํšŒ๋ฅผ ํ•˜๊ฒŒ ๋˜๋Š” ๋ฐ์š”. DRF์—์„œ ์ง€์›ํ•˜๋Š” 3๊ฐ€์ง€ ํŽ˜์ด์ง• ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.


์„น์…˜ (14) ์›น API๋ฅผ ์œ„ํ•œ ์„ธ์…˜ ์ธ์ฆ

"""์›น API์— ์ ํ•ฉํ•œ ์„ธ์…˜ ์ธ์ฆ ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๊ณ , ํšจ์œจ์ ์œผ๋กœ ์ธ์ฆ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค๋ฌด ์—ญ๋Ÿ‰์„ ๊ฐ–์ถ”๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค."""

๋งŽ์€ ๋ถ„๋“ค์ด ์›น API์—์„œ๋Š” ๋‹น์—ฐํžˆ JWT ์ธ์ฆ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹œ์ง€๋งŒ, JWT ์ธ์ฆ์€ ๋“๋ณด๋‹ค ์‹ค์ด ๋งŽ์•„, ์‹ค์ œ ์šด์˜ ํ™˜๊ฒฝ์—์„œ๋Š” ์„ธ์…˜ ์ธ์ฆ์ด ๋” ์•ˆ์ •์ ์ด๊ณ  ์ ํ•ฉํ•œ ์„ ํƒ์ž…๋‹ˆ๋‹ค. ์žฅ๊ณ ๊ฐ€ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ์„ธ์…˜ ์ธ์ฆ์„ ํ†ตํ•ด, API ์š”์ฒญ์—์„œ ๋ณด์•ˆ์„ฑ๊ณผ ํšจ์œจ์„ฑ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค.

์„ธ์…˜ ์ธ์ฆ์„ ํ™œ์šฉํ•˜๋ฉด, ๊ตณ์ด ๋ฆฌ์•กํŠธ SPA (Single Page Application) ๊ฐœ๋ฐœ์—์„œ๋„ ๋กœ๊ทธ์ธ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์‹ค ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์žฅ๊ณ ์—์„œ ์ด๋ฏธ ๊ตฌํ˜„๋œ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์‹œ๊ณ , ๋น„์ฆˆ๋‹ˆ์Šค ๊ตฌํ˜„์— ์ง‘์ค‘ํ•˜์„ธ์š”.

์ด ์„น์…˜์—์„œ ๋‹ค๋ฃจ๋Š” ์ฃผ์š” ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์„ธ์…˜ ์ธ์ฆ๊ณผ JWT ์ธ์ฆ ๋น„๊ต : ์„ธ์…˜ ์ธ์ฆ๊ณผ JWT ์ธ์ฆ์˜ ์žฅ๋‹จ์ ์„ ๋น„๊ตํ•˜์—ฌ, ์›น API์— ์ ํ•ฉํ•œ ์ธ์ฆ ๋ฐฉ์‹์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.


  • ์›น API ์š”์ฒญ์—์„œ ์„ธ์…˜ ์ธ์ฆ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„ค๊ณ„ : ์„ธ์…˜ ์ธ์ฆ์„ ํ™œ์šฉํ•˜์—ฌ, ๋ฆฌ์•กํŠธ SPA (Single Page Application)์œผ๋กœ๋ถ€ํ„ฐ์˜ ์›น API ์š”์ฒญ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์„ค๊ณ„ ๋ฐฉ์•ˆ์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

  • ์žฅ๊ณ /Next.js ํ†ตํ•ฉ๊ณผ ์„ธ์…˜ ์ฟ ํ‚ค ํ™œ์šฉํ•œ ์ธ์ฆ : ์žฅ๊ณ ์™€ Next.js ๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ JWT์—†์ด๋„ ์„ธ์…˜ ์ธ์ฆ์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

์„น์…˜ (15) ๋ฆฌ์•กํŠธ๋ฅผ ์ตํžˆ๊ณ , ๋ฆฌ์•กํŠธ๋กœ ์žฅ๊ณ  ํ…œํ”Œ๋ฆฟ ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“ค๊ธฐ (๋ฆฌ์•กํŠธ v18 ๊ธฐ์ค€)

"""๋ฆฌ์•กํŠธ์˜ ํ•ต์‹ฌ ๊ฐœ๋…์„ ์ตํžˆ๊ณ , ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์žฅ๊ณ  ํ…œํ”Œ๋ฆฟ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์ž‡๋Š” ์žฅ๊ณ  ํ…œํ”Œ๋ฆฟ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค."""

๋ฆฌ์•กํŠธ๋Š” ๋‹จ์ˆœํžˆ UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ผ ๋ฟ, ๋ฆฌ์•กํŠธ๋ฅผ ์“ด๋‹ค๊ณ  ํ•ด์„œ ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๋ฐ˜๋“œ์‹œ Single Page Application ์œผ๋กœ ๊ตฌ์ถ•ํ•ด์•ผํ•˜๋Š” ๊ฒƒ์€ ์ ˆ๋Œ€ ์•„๋‹™๋‹ˆ๋‹ค.

๋ฆฌ์•กํŠธ๋Š” ๊ฐ•๋ ฅํ•œ ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ ์ด์ง€๋งŒ ๊ฐœ๋ฐœ๋น„์šฉ์ด ๋†’์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์„œ๋น„์Šค์˜ ๊ธฐ๋Šฅ ์ค‘์— 80% ์ด์ƒ ๋ฆฌ์•กํŠธ๊ฐ€ ๊ตณ์ด ํ•„์š”์—†๋Š” ๊ธฐ๋Šฅ๋„ ๋งŽ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์— ๋ฆฌ์•กํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋ณด๋‹ค, ํ•ต์‹ฌ ๊ธฐ๋Šฅ์—๋งŒ ๋พฐ์กฑํ•˜๊ฒŒ ๋ฆฌ์•กํŠธ ๊ธฐ์ˆ ์„ ์ ์šฉํ•˜๊ณ  (์‹ฌ์ง€์–ด ํ•ต์‹ฌ ๊ธฐ๋Šฅ๋„ ๋ฆฌ์•กํŠธ๊ฐ€ ํ•„์š”์—†์„ ์ˆ˜๋„ ์žˆ์–ด์š”.), ๊ทธ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๋ฝ€์ฃกํ•˜๊ฒŒ ๋‹ค๋“ฌ์„ ์‹œ๊ฐ„์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด, ์žฅ๊ณ  ์œ„์ฃผ์˜ ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ ์„ ์ ๊ทน ํ™œ์šฉํ•˜๋ฉด ๊ทธ ์‹œ๊ฐ„์„ ์ถฉ๋ถ„ํžˆ ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์žˆ๊ณ , ๋Œ€๊ฐœ์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํฐ ๋น„์šฉ์€ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ด€์ ์—์„œ, ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฆฌ์•กํŠธ ๊ธฐ์ˆ ์„ ์ดํ•ดํ•˜๊ณ , ๋ฆฌ์•กํŠธ๊ฐ€ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์— ํ•œํ•ด ๋ฆฌ์•กํŠธ๋ฅผ ์ ์ ˆํžˆ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณธ ์„น์…˜์„ ์„ค๊ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • CRA ๋ฐ Parcel ๋ฒˆ๋“ค๋Ÿฌ๋ฅผ ํ™œ์šฉํ•œ ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

  • ์ˆœ์ˆ˜ ํ•จ์ˆ˜์™€ JSX : ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ์˜ ํ•ต์‹ฌ์ธ ์ˆœ์ˆ˜ ํ•จ์ˆ˜ ๊ฐœ๋…๊ณผ JSX๋ฅผ ํ™œ์šฉํ•œ ์„ ์–ธ์  UI ์ž‘์„ฑ ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.


  • ์ƒํƒฏ๊ฐ’, ์†์„ฑ๊ฐ’, ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ : ๋ฆฌ์•กํŠธ์—์„œ ์ƒํƒฏ๊ฐ’๊ณผ ์†์„ฑ๊ฐ’์„ ์‚ฌ์šฉํ•ด ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ์„ ์ด๋ฒคํŠธ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค.

  • ์ปดํฌ๋„ŒํŠธ CSS ์ž‘์„ฑ ๋ฐฉ๋ฒ• : Module๊ณผ Sass๋ฅผ ํ™œ์šฉํ•ด ์ปดํฌ๋„ŒํŠธ์— ์Šคํƒ€์ผ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค.

  • immer๋ฅผ ํ™œ์šฉํ•œ ์†์‰ฌ์šด ๋ถˆ๋ณ€๊ฐ’ ๊ฐ์ฒด ๋‹ค๋ฃจ๊ธฐ : ๋ฆฌ์•กํŠธ์—์„œ๋Š” ๋ถˆ๋ณ€ ๊ฐ์ฒด ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์ˆ˜์ธ๋ฐ์š”. JS ๊ธฐ๋ณธ ๊ธฐ๋Šฅ ๋งŒ์œผ๋กœ๋Š” ๋ถˆ๋ณ€ ๊ฐ์ฒด ์ฒ˜๋ฆฌ๊ฐ€ ๋ฒˆ๊ฑฐ๋กญ์Šต๋‹ˆ๋‹ค. immer๋ฅผ ํ†ตํ•œ ์†์‰ฝ๊ฒŒ ๋ถˆ๋ณ€๊ฐ’ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค.


  • Fold ํŒจํ„ด๊ณผ ๋ฆฌ๋“€์„œ, ๊ทธ๋ฆฌ๊ณ  ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ : ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํŽ˜์ด์ง€ ๋‚ด์—์„œ ์ฐจ์ง€ํ•˜๋Š” ๋น„์ค‘์ด ์ปค์งˆ ์ˆ˜๋ก, ์ „์—ญ ์ƒํƒฏ๊ฐ’ ๊ด€๋ฆฌ๊ฐ€ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ์ „์—ญ ์ƒํƒฏ๊ฐ’ ๊ด€๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ์„œ ๋ฆฌ๋“€์„œ (Reducer)๋ฅผ ์ตํ˜€๋ด…๋‹ˆ๋‹ค.

  • Axios๋ฅผ ํ™œ์šฉํ•œ ์›น API ์š”์ฒญ : ์›น ๊ธฐ๋ณธ์—์„œ๋„ fetch API๋ฅผ ํ†ตํ•ด HTTP ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐ์ข… ํŽธ์˜ ๊ธฐ๋Šฅ์ด ๊ฐ•ํ™”๋œ Axios ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์›น API ์š”์ฒญ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

  • ๋ผ์šฐํ„ฐ๋กœ SPA ๋งŒ๋“ค๊ธฐ : Single Page Application์—์„œ๋Š” ํ•„์—ฐ์ ์œผ๋กœ ์š”์ฒญ URL์— ๋งž์ถฐ ์—ฌ๋Ÿฌ ํ™”๋ฉด์„ ๋ณด์—ฌ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ, ์š”์ฒญ URL์— ๋งž์ถฐ ๋‹ค๋ฅธ ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ๋ฒ•์„ ์ตํ˜€๋ด…๋‹ˆ๋‹ค.

  • ๋ฆฌ์•กํŠธ๋กœ ์žฅ๊ณ  ํ…œํ”Œ๋ฆฟ ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“ค๊ธฐ : ๋ฆฌ์•กํŠธ๋Š” UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ผ ๋ฟ์ด๋‹ˆ, ์›นํŽ˜์ด์ง€ ๋‚ด ์–ด๋””์—์„œ๋“  ์‚ฌ์šฉ๋˜์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฅ๊ณ  ํ…œํ”Œ๋ฆฟ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํ˜€๋ด…๋‹ˆ๋‹ค.

์„น์…˜ (16) ์žฅ๊ณ /๋ฆฌ์•กํŠธ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ

"""์•ž์„œ ๊ฐœ๋ฐœํ•œ ์žฅ๊ณ  ํ”„๋กœ์ ํŠธ์™€ ๋ฆฌ์•กํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ†ตํ•ฉํ•˜์—ฌ, ๊ฐ๊ฐ์˜ ์žฅ์ ์„ ์‚ด๋ฆฌ๋ฉด์„œ ์œ ์—ฐํ•˜๊ณ  ํšจ์œจ์ ์ธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•ด๋ด…๋‹ˆ๋‹ค."""

๋ฆฌ์•กํŠธ์—์„œ ํผ์„ ์„ค๊ณ„ํ•˜๊ณ  ํ•„๋“œ์˜ ์ƒํƒฏ๊ฐ’์„ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐœ๋ฐœ์€ ๋งŽ์€ ๊ณต์ˆ˜๊ฐ€ ํ•„์š”ํ•œ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ํผ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ๋ฆฌ์•กํŠธ ๋‹จ์—์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์žฅ๊ณ ์˜ Form ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ ๊ณต์ˆ˜๋ฅผ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์„น์…˜์—์„œ๋Š” ์ƒํ™ฉ์— ๋”ฐ๋ผ ์žฅ๊ณ  ํผ์„ ํ™œ์šฉํ•˜์—ฌ ๋ฆฌ์•กํŠธ์—์„œ๋Š” ๊ฐ„๋‹จํžˆ ์ฃผ์†Œ๋งŒ ์ง€์ •ํ•ด ๋ชจ๋‹ฌ ํผ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›Œ, ์žฅ๊ณ ์™€ ๋ฆฌ์•กํŠธ์˜ ์กฐํ™”๋ฅผ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค.

๊ฐ ์„น์…˜์—์„œ ๋‹ค๋ฃจ๋Š” ์ฃผ์š” ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • API์™€ ํ•จ๊ป˜ ํ• ์ผ ๋ชฉ๋ก CRA ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ : ์žฅ๊ณ ์˜ API์™€ ๋ฆฌ์•กํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฒฐํ•ฉํ•˜์—ฌ ํ• ์ผ ๋ชฉ๋ก ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐฑ์—”๋“œ์™€ ํ”„๋ก ํŠธ์—”๋“œ๊ฐ€ ์œ ๊ธฐ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์žฅ๊ณ /๋ฆฌ์•กํŠธ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ฐฉ์‹์œผ๋กœ ํ• ์ผ ๋ชจ๋‹ฌํผ ๊ตฌํ˜„ํ•˜๊ธฐ

    • ๋ฆฌ์•กํŠธ์™€ ์žฅ๊ณ  ํผ์„ ํ†ตํ•ฉํ•˜์—ฌ ๋ชจ๋‹ฌ ํผ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ๋ฆฌ์•กํŠธ์—์„œ ์žฅ๊ณ  ํผ ํŽ˜์ด์ง€ ์ฃผ์†Œ ๋งŒ์„ ์ง€์ •ํ•˜์—ฌ ํผ์„ ์™„์„ฑํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ์žฅ๊ณ  ํผ์˜ ์ƒ์‚ฐ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋ฉด์„œ๋„ ๋ฆฌ์•กํŠธ์˜ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒํ•œ UI๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์„น์…˜ (17) ์บ์‹œ API

"""์žฅ๊ณ ์˜ ๋‹ค์–‘ํ•œ ์บ์‹ฑ ์ „๋žต์„ ์ดํ•ดํ•˜๊ณ , ์„œ๋น„์Šค ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ์‹ค์งˆ์ ์ธ ์บ์‹œ ์‚ฌ์šฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค."""

์žฅ๊ณ ์˜ ์บ์‹œ API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ณ , ์„œ๋น„์Šค์˜ ์‘๋‹ต ์†๋„๋ฅผ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ์บ์‹œ๋Š” ๋ฐ์ดํ„ฐ ์š”์ฒญ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ ์‘๋‹ต์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•˜๊ณ  ์‹œ์Šคํ…œ ์ž์›์„ ์ ˆ์•ฝํ•˜๋Š” ๋ฐ ํฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์บ์‹œ๋Š” "์–‘๋‚ ์˜ ๊ฒ€"๊ณผ ๊ฐ™์•„ ์ž˜๋ชป๋œ ์„ค์ •์ด ๊ด€๋ฆฌ๊ฐ€ ์˜คํžˆ๋ ค ๋ฐ์ดํ„ฐ์˜ ์ตœ์‹ ์„ฑ์„ ๋–จ์–ด๋œจ๋ฆฌ๊ณ , ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋ฌธ์ œ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์บ์‹œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉํ•˜๋ฉด์„œ๋„, ์บ์‹œ์˜ ์ž ์žฌ์  ์œ„ํ—˜์„ ์ดํ•ดํ•ด๋ณด๋Š” ์‹œ๊ฐ„์ด ๋˜์‹ค ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ์„น์…˜์—์„œ ๋‹ค๋ฃจ๋Š” ์ฃผ์š” ๋‚ด์šฉ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์บ์‹ฑ Low ๋ ˆ๋ฒจ API ํ™œ์šฉ : ์žฅ๊ณ ์˜ ์ €์ˆ˜์ค€ ์บ์‹œ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ์บ์‹ฑ์˜ ๊ธฐ๋ณธ ๋™์ž‘์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

  • ๋‹ค์–‘ํ•œ ์บ์‹ฑ ๋ฐฑ์—”๋“œ (๋ฉ”๋ชจ๋ฆฌ, memcached, redis) : ๋‹ค์–‘ํ•œ ์บ์‹œ ๋ฐฑ์—”๋“œ๋ฅผ ๋น„๊ตํ•˜์—ฌ, ๊ฐ ๋ฐฑ์—”๋“œ์˜ ์žฅ๋‹จ์ ์„ ํŒŒ์•…ํ•ฉ๋‹ˆ๋‹ค.

  • ์บ์‹ฑ ํ‚ค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋กœ์ง ๋ถ„์„ : ์บ์‹ฑ ํ‚ค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋กœ์ง์„ ๋ถ„์„ํ•˜์—ฌ, ์บ์‹œ์˜ ์ ์ค‘๋ฅ ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค.

  • django-debug-toolbar๋ฅผ ํ†ตํ•œ ์บ์‹œ ํ™•์ธ : ๋‚ด๋ถ€ ์บ์‹ฑ ๋™์ž‘์„ django-debug-toolbar๋ฅผ ํ†ตํ•ด ํ™•์ธํ•˜๊ณ , ๋ฌธ์ œ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค.

  • ๊ฐ™์€ ๊ฐ’, ๋‹ค๋ฅธ ์ˆœ์„œ์˜ Query Parameters๋ฅผ ์ •๋ ฌํ•˜์—ฌ, ์บ์‹œ Hit์œจ ๋†’์ด๋Š” ๋ฐฉ๋ฒ• : ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง€์ง€๋งŒ ์ˆœ์„œ๊ฐ€ ๋‹ค๋ฅธ Query Parameters์— ๋Œ€ํ•ด์„œ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์œ„์น˜์— ์บ์‹œ๊ฐ€ ์ €์žฅํ•˜๊ฒŒ ๋˜๋Š” ๋ฐ์š”. Query Parameter๋ฅผ ์ •๋ ฌํ•˜์—ฌ ์บ์‹œ ์ ์ค‘๋ฅ ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค.

  • ๋ ˆ๋””์Šค์™€ django-redis ์บ์‹œ ๋ฐฑ์—”๋“œ๋ฅผ ํ™œ์šฉํ•œ ์บ์‹œ ์ผ๊ด„ ์‚ญ์ œ ๋ฐฉ๋ฒ• : ๋ ˆ๋””์Šค์™€ django-redis ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ, ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ๋‚˜ ํŠน์ • ์กฐ๊ฑด์— ๋งž๋Š” ์บ์‹œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ผ๊ด„ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค.

  • ํ…œํ”Œ๋ฆฟ ์บ์‹œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ• : ํ…œํ”Œ๋ฆฟ ์บ์‹œ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•˜์—ฌ, ์บ์‹œ ๊ฐฑ์‹ ์ด ํ•„์š”ํ•œ ์ƒํ™ฉ์— ์‹ ์†ํ•˜๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ (18) ๋ฆฌ๋ˆ…์Šค ๊ฐ€์ƒ ๋จธ์‹ ์— ์žฅ๊ณ /๋ฆฌ์•กํŠธ ์„œ๋น„์Šค ๋ฐฐํฌํ•˜๊ธฐ

"""์žฅ๊ณ ์™€ ๋ฆฌ์•กํŠธ๋ฅผ ๊ฒฐํ•ฉํ•œ ํ’€์Šคํƒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์— ์•ˆ์ •์ ์œผ๋กœ ๋ฐฐํฌํ•˜๋Š” ๊ธฐ์ˆ ์„ ์ตํžˆ๊ณ , ์‹ค์ œ ์„œ๋น„์Šค ์šด์˜์— ํ•„์š”ํ•œ ๋ณด์•ˆ ๋ฐ ๋„๋ฉ”์ธ ์„ค์ •์„ ํฌํ•จํ•œ ์ „๋ฐ˜์ ์ธ ๋ฐฐํฌ ์—ญ๋Ÿ‰์„ ๊ฐ–์ถฅ๋‹ˆ๋‹ค."""

AWS Lightsail ์ธํ”„๋ผ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์žฅ๊ณ  ์›น ์„œ๋น„์Šค์™€ ๋ฆฌ์•กํŠธ SPA ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ํ•จ๊ป˜ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

์ด ์„น์…˜์—์„œ ๋‹ค๋ฃจ๋Š” ์ฃผ์š” ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๊ฐœ๋ฐœ์šฉ/๋ฐฐํฌ์šฉ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋ถ„๋ฆฌํ•˜๊ธฐ : ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ์„ค์ •์„ ๊ตฌ๋ถ„ํ•˜์—ฌ, ๋ฐฐํฌ ์‹œ์— ์ ํ•ฉํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•œ ์†์‰ฝ๊ณ  ๊ฐ„ํŽธํ•œ ์„œ๋ฒ„ ๋ฐฐํฌ : ์„œ๋ฒ„ ๋ฐฐํฌ ์ž‘์—…์„ ์ž๋™ํ™”ํ•˜๋Š” ๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ, ์†์‰ฝ๊ณ  ๊ฐ„ํŽธํ•˜๊ฒŒ ์„œ๋ฒ„์— ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค.

  • nginx์—์„œ CRA ๋ฐฐํฌํŒŒ์ผ ์„ค์ • ๋ฐฉ๋ฒ• : Create React APP (CRA)์œผ๋กœ ๋นŒ๋“œ๋œ ๋ฆฌ์•กํŠธ ํŒŒ์ผ์„ nginx์—์„œ ์„œ๋น™ํ† ๋ก ์„ค์ •ํ•˜์—ฌ, ๋ฆฌ์•กํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์•ˆ์ •์ ์œผ๋กœ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค.

  • ํ•™์Šต์šฉ ์„œ๋ธŒ ๋„๋ฉ”์ธ ์ง€์› : ์„œ๋น„์Šค ์šด์˜์—๋Š” ๋„๋ฉ”์ธ์ด ํ•„์ˆ˜์ธ๋ฐ์š”. ๋„๋ฉ”์ธ์ด ์—†์œผ์…”๋„ ํ•™์Šต์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ๋Š” ๋„๋ฉ”์ธ์„ ์ง€์›ํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  • HTTPS ์ธ์ฆ์„œ์™€ ๋„๋ฉ”์ธ ์—ฐ๋™ : HTTPS ์ธ์ฆ์„œ๋ฅผ ์ ์šฉํ•˜์—ฌ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ณ , ๋„๋ฉ”์ธ๊ณผ ์—ฐ๋™ํ•˜์—ฌ ํ”„๋กœ๋•์…˜ ์ˆ˜์ค€์˜ ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ์™„์„ฑํ•ฉ๋‹ˆ๋‹ค.

๊ถ๊ธˆํ•œ ์ ์ด ์žˆ๋‚˜์š”?

Q. ๋น„์ „๊ณต์ž๋„ ๋“ค์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ•์˜์ธ๊ฐ€์š”?

ํ•จ์ˆ˜/ํด๋ž˜์Šค/์žฅ์‹์ž/์ œ๋„ˆ๋ ˆ์ดํ„ฐ ๋“ฑ์˜ ํŒŒ์ด์ฌ ๋ฌธ๋ฒ•์„ ์ดํ•ดํ•˜๊ณ  ๊ณ„์‹œ๊ณ , ์ˆ˜์‹ญ์ค„์˜ ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์…จ๋‹ค๋ฉด ์ถฉ๋ถ„ํžˆ ๋”ฐ๋ผ๊ฐ€์‹ค ์ˆ˜ ์žˆ๋Š” ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ํ•œ ๋ฒˆ ๋“ฃ๊ณ  ์‹ค์Šตํ•˜๊ณ  ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์œผ์‹ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๋ถ„์•ผ๋ฅผ ํ•œ ๋ฒˆ์— ์ดํ•ดํ•˜๋Š” ๊ทธ๋Ÿฐ ์‚ฌ๋žŒ์€ ์—†์Šต๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ์ƒ์‹ฌ๋งˆ์„ธ์š”. ๋‚ฏ์„  ๋ถ„์•ผ๋ฅผ ํ•™์Šตํ•˜๋‹ˆ๋Š” ๊ฒƒ์ด๋‹ˆ๊นŒ ๋‹น์—ฐํ•ฉ๋‹ˆ๋‹ค. ์ •ํ™•ํ•œ ๋ฐฉํ–ฅ์„ฑ์„ ๊ฐ€์ง„ ๋…ธ๋ ฅ์€ ๋ฐฐ์‹ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•™์Šตํ•˜์‹œ๋ฉฐ ํŒŒ์ด์ฌ/์žฅ๊ณ  ๊ด€๋ จํ•˜์—ฌ ๊ถ๊ธˆํ•œ ์ ๋“ค์ด ์ƒ๊ธฐ์‹œ๋ฉด ์–ธ์ œ๋“  ์งˆ๋ฌธ ๋‚จ๊ฒจ์ฃผ์„ธ์š”. ์ €๋„ ๊ฐ™์ด ๊ณ ๋ฏผํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ™์ด ์„ฑ์žฅํ•ด์š”. ;-)

Q. ํŒŒ์ด์ฌ์€ ์ž…๋ฌธ์ž์šฉ ์–ธ์–ด๊ฐ€ ์•„๋‹Œ๊ฐ€์š”?

ํŒŒ์ด์ฌ์€ ๋‹ค๋ฅธ ์–ธ์–ด์— ๋น„ํ•ด ๊ฐ€๋…์„ฑ์ด ๋†’๊ณ , ์งง์€ ์ฝ”๋“œ๋กœ ๋งŽ์€ ์ž‘์—…์„ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตญ๋‚ด์—์„œ ํŒŒ์ด์ฌ์ด ์ธ๊ธฐ๋ฅผ ์–ป๊ฒŒ ๋œ ๊ฒƒ์€ ๊ทธ๋ฆฌ ๊ธธ์ง€ ์•Š์ง€๋งŒ, ํ•ด์™ธ์—์„œ๋Š” ์‹ญ์ˆ˜๋…„ ์ „๋ถ€ํ„ฐ ์ด๋ฏธ ๋ฉ”์ด์ € ์–ธ์–ด์˜€์œผ๋ฉฐ, ์›น์„ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ ํ™œ๋ฐœํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํŒŒ์ด์ฌ์€ ๋А๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜์–ด๋ฅผ ์ œ๋Œ€๋กœ ๋ชจ๋ฅด๊ณ  ์‚ฌ์šฉํ•˜๋ฉด ์ฝฉ๊ธ€๋ฆฌ์‰ฌ๊ฐ€ ๋˜๋“ฏ์ด, ํŒŒ์ด์ฌ์„ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ณ  ์‚ฌ์šฉ๋œ ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ ํšจ์œจ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ์„ ์ž˜ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋ฉด ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. C ์–ธ์–ด๋กœ ๊ฐœ๋ฐœํ•œ ์ฝ”๋“œ๊ฐ€ ๋ชจ๋“  ๊ฒฝ์šฐ์— ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•œ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ๋А๋ฆฌ๊ฒŒ ๋™์ž‘ํ•˜๋„๋ก ๊ฐœ๋ฐœํ•˜๋ฉด ๋А๋ฆฌ๊ฒŒ ๋™์ž‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํŒŒ์ด์ฌ์ด CPU ์—ฐ์‚ฐ์—์„œ๋Š” ๋А๋ฆฌ์ง€๋งŒ, ๋น ๋ฅธ CPU ์—ฐ์‚ฐ์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„์€ C/C++/Rust ๋“ฑ์œผ๋กœ ๊ฐœ๋ฐœํ•œ ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•ด๊ฒฐํ•ด์ค๋‹ˆ๋‹ค. numpy์™€ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ง์ด์ฃ . ๊ทธ๋Ÿฌ๋‹ˆ ํŒŒ์ด์ฌ์„ ํ™œ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ถ„์„๊ณผ ๋จธ์‹ ๋Ÿฌ๋‹์„ ํ•˜๋Š” ๊ฒƒ์ด๊ฒ ์ฃ . :-) ์‹ค์ œ๋กœ ์นด์นด์˜ค์˜ ์ˆ˜๋งŽ์€ ๋จธ์‹ ๋Ÿฌ๋‹ API๋“ค์€ ํŒŒ์ด์ฌ์œผ๋กœ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. (์ฐธ๊ณ : [์œ ํŠœ๋ธŒ - PyCon Korea] ์ถ”์ฒœ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ๊ฐœ๋ฐœ ํ›„๊ธฐ @kakao)

๊ฒŒ๋‹ค๊ฐ€ ํŒŒ์ด์ฌ 3.11, 3.12, 3.13 ๋ฒ„์ „์ด ์˜ฌ๋ผ๊ฐ€๋ฉด์„œ, ํŒŒ์ด์ฌ์€ ๋ˆˆ์— ๋„๊ฒŒ ๋นจ๋ผ์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Q. ์žฅ๊ณ ๋Š” ํ•™์Šต ๋น„์šฉ์ด ๋†’๊ณ  ๋А๋ฆฌ๊ณ  ์ œ์•ฝ์ด ๋งŽ์ง€ ์•Š๋‚˜์š”?

์žฅ๊ณ ๋Š” 2005๋…„์— ๊ณต๊ฐœ๋œ ์ดํ›„์— ์•ฝ 20๋…„์˜ ์‹œ๊ฐ„ ๋™์•ˆ ์ถฉ๋ถ„ํžˆ ์„ฑ์ˆ™ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. (์Šคํ”„๋ง์€ 2003๋…„์— ๊ณต๊ฐœ๋˜์—ˆ์ฃ .) ์žฅ๊ณ ๋Š” ๋ฐฑ์—”๋“œ ํ’€์Šคํƒ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ์„œ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๊ฑฐ์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ๋“ค์ด ์žฅ๊ณ  ์•ˆ์—์„œ ๊ฐœ๋ฐœ๋˜๊ณ  ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์žฅ๊ณ ๋Š” ์žฅ๊ณ  ํ•˜๋‚˜์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด ๋งŽ์€ ๊ฒƒ ๋ฟ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ์ด ๋งŽ์Œ์ด ๋А๋ฆฌ๋‹ค๋Š” ์˜๋ฏธ๋Š” ์ ˆ๋Œ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ฐ ๊ธฐ๋Šฅ๋“ค์€ ํ•˜๋‚˜์˜ ๊ด€๋ฆฌ ์ฃผ์ฒด์—์„œ ์œ ๊ธฐ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์ตœ๊ณ ์˜ ์‹œ๋„ˆ์ง€๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. FastAPI๋Š” ๊ฐ•๋ ฅํ•˜์ง€๋งŒ ๊ธฐ๋Šฅ์ด ์ œํ•œ์ ์ด๋ฉฐ FastAPI ํ•˜๋‚˜ ๋งŒ์œผ๋กœ ์›น์„œ๋น„์Šค์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ด€๋ฆฌ ์ฃผ์ฒด๊ฐ€ ๋‹ค๋ฅธ ์ˆ˜๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ €๊ฒƒ ์„ค์น˜ํ•˜๋‹ค๋ณด๋ฉด, ์žฅ๊ณ  ์ด์ƒ์œผ๋กœ ๋ฉ์น˜๊ฐ€ ์ปค์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋น„์ผ๋น„์žฌํ•ฉ๋‹ˆ๋‹ค.

์žฅ๊ณ ์˜ ์„ค๊ณ„์ฒ ํ•™ ์ค‘์— ๊ทธ ์ฒซ๋ฒˆ์งธ๊ฐ€ "๋А์Šจํ•œ ๊ฒฐํ•ฉ" ์ž…๋‹ˆ๋‹ค. ์žฅ๊ณ ๋Š” ํŽธ์˜์„ฑ์„ ์œ„ํ•ด ํ’€์Šคํƒ์œผ๋กœ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์ฃผ์ง€๋งŒ, ๊ฐ ๊ธฐ๋Šฅ๋“ค์€ ๋…๋ฆฝ์„ฑ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋งŒ ๋ฝ‘์•„์„œ ์‚ฌ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ๊ณ , ๋‹ค์–‘ํ•œ ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์กฐํ•ฉํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ† ์Šค๋Š” 1000์—ฌ๋ช…์˜ ํ† ์Šค ํŒ€์›๋“ค์„ ๋Œ€์ƒ์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“œ๋Š” "ํ† ์Šค ์ธํ„ฐ๋„"์ด๋ผ๋Š” ์กฐ์ง์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์กฐ์ง์—์„œ๋Š” ์žฅ๊ณ ์™€ ๋ฆฌ์•กํŠธ๋กœ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. (ํ† ์Šค์˜ ๊ด€๋ จ ์ฑ„์šฉ๊ณต๊ณ : Server Developer (Internal Product)) ํ† ์Šค ์ธํ„ฐ๋„ ํŒ€์€ ์™œ ์žฅ๊ณ ์™€ ๋ฆฌ์•กํŠธ๋ฅผ ์„ ํƒํ–ˆ์„๊นŒ์š”?

ํŒŒ์ด์ฌ/์žฅ๊ณ ๋Š” ์‹œ๊ฐ„๊ณผ ๋น„์šฉ์ด ์ œํ•œ์ ์ธ ํŒ€์—์„œ ๋”์šฑ ์‹œ๊ฐ„์„ ์•„๋ผ๊ณ  ์ตœ๊ณ ์˜ ์ƒ์‚ฐ์„ฑ์„ ํ†ตํ•ด, ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ๋น„์ฆˆ๋‹ˆ์Šค์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์›€์„ ๋“œ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ  ์‚ฌํ•ญ

์‹ค์Šต ํ™˜๊ฒฝ

  • ์šด์˜ ์ฒด์ œ ๋ฐ ๋ฒ„์ „(OS)

    • ๊ฐ•์˜์—์„œ๋Š” ์œˆ๋„์šฐ์™€ ๋งฅ ํ™˜๊ฒฝ์˜ ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ…์— ๋Œ€ํ•ด์„œ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

    • ํŒŒ์ด์ฌ๊ณผ ๋…ธ๋“œ๊ฐ€ ์„ค์น˜ ๊ฐ€๋Šฅํ•œ ํ™˜๊ฒฝ์ด๋ผ๋ฉด ๋ชจ๋‘ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


  • ์‚ฌ์šฉ ๋„๊ตฌ: ํŒŒ์ด์ฐธ ํ”„๋กœํŽ˜์…”๋„ (6๊ฐœ์›” ์ฟ ํฐ ์ œ๊ณต), ๋„์ปค

    • PostgreSQL๊ณผ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋น ๋ฅธ ์ƒ์„ฑ์„ ์œ„ํ•ด ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋„์ปค ์„ค์น˜์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค๋ฃจ์ง€ ์•Š์œผ๋ฉฐ, ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ์— ํ•„์š”ํ•œ ๋ช…๋ น ๋ฐ docker-compose.yml ํŒŒ์ผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋„์ปค ์„ค์น˜๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ปดํ“จํ„ฐ์—์„œ๋Š” SQLite ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉ (์ถ”์ฒœ)ํ•˜์‹œ๊ฑฐ๋‚˜, PostgreSQL/MySQL ์„ค์น˜ํŒŒ์ผ์„ ๋‹ค์šด๋ฐ›์•„์„œ ์„ค์น˜ํ•˜์…”๋„ ๋ฉ๋‹ˆ๋‹ค.

  • ๋ฐฐํฌ๋Š” AWS (์•„๋งˆ์กด ์›น ์„œ๋น„์Šค) Lightsail ๊ฐ€์ƒ๋จธ์‹ ์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

    • AWS ๊ฐ€์ž…์„ ์œ„ํ•ด์„œ๋Š” ํ•ด์™ธ๊ฒฐ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์‹ ์šฉ์นด๋“œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

    • ๋ฐฐํฌ ์‹ค์Šตํ•˜์‹œ๊ณ  ๋‚˜์„œ, ๋ฆฌ์†Œ์Šค๋ฅผ ์ฆ‰์‹œ ์‚ญ์ œํ•˜์‹œ๋ฉด AWS ๋น„์šฉ์€ ๋ช‡ ๋ฐฑ์› ์ •๋„๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค.

    • AWS ๊ฐ€์ž…์ด ์–ด๋ ค์šฐ์‹  ๋ถ„์€ ๋กœ์ปฌ์— VirtualBox๋‚˜ Parallels๋ฅผ ํ†ตํ•ด ์šฐ๋ถ„ํˆฌ ๋ฆฌ๋ˆ…์Šค ๊ฐ€์ƒ๋จธ์‹ ์„ ์ƒ์„ฑํ•ด์„œ ์‹ค์Šต์„ ์ง„ํ–‰ํ•˜์‹ค ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ, ๊ฐ•์˜ ์ค‘ ์ผ๋ถ€ ๋‚ด์šฉ์ด ๋™์ž‘ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ž‘ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋ง‰ํžˆ์‹œ๋Š” ๋ถ€๋ถ„์€ ์งˆ๋ฌธ ๋‚จ๊ฒจ์ฃผ์‹œ๋ฉด ๊ฐ€์ด๋“œํ•ด๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ•™์Šต ์ž๋ฃŒ

  • ๊ฐ ๊ฐ•์˜ ์˜์ƒ๋งˆ๋‹ค PDF ์ˆ˜์—…์ž๋ฃŒ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ์‹ค์Šต์ฝ”๋“œ๊ฐ€ ๊ธด ๊ฒฝ์šฐ, ๊ฐ•์˜ ์˜์ƒ ์•„๋ž˜ ์ˆ˜์—…๋…ธํŠธ์— ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋งํฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฐ ์‹ค์Šต์˜ ์ปค๋ฐ‹ ๋งํฌ๋ฅผ ๊ฐ•์˜ ์˜์ƒ ์•„๋ž˜ ์ˆ˜์—…๋…ธํŠธ์— ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์œ ์˜์‚ฌํ•ญ

  • ๋ณธ ๊ฐ•์˜ ์ปจํ…์ธ ๋Š” ์ง€์‹ ๊ณต์œ ์ž์—๊ฒŒ ์ €์ž‘๊ถŒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•™์Šต ๋ชฉ์ ์œผ๋กœ ๋ธ”๋กœ๊ทธ์— ํ•™์Šตํ•˜์‹  ๋‚ด์šฉ์„ ์ผ๋ถ€ ๊ณต์œ ํ•˜์‹œ๋Š” ๊ฒƒ์€ ๊ดœ์ฐฎ์œผ๋‚˜ (์ถœ์ฒ˜๋ฅผ ๊ผญ ๋ฐํ˜€์ฃผ์„ธ์š”.), ์ „๋ฌธ์„ ๊ณต์œ ํ•˜์‹œ๊ฑฐ๋‚˜ ์ƒ์—…์ ์ธ ๋ชฉ์ ์œผ๋กœ ํ™œ์šฉํ•˜์‹œ๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.


์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ํŒŒ์ด์ฌ ์›น์„œ๋น„์Šค ๊ฐœ๋ฐœ์„ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ํƒ„ํƒ„ํ•˜๊ฒŒ ์‹œ์ž‘ํ•˜๊ณ  ์‹ถ์œผ์‹  ๋ถ„

  • ์žฅ๊ณ  ์›น ๊ฐœ๋ฐœ์˜ ์ง„์ˆ˜๋ฅผ ๋А๋ผ๊ณ  ์‹ถ์œผ์‹  ๋ถ„

  • ๋ฐฑ์—”๋“œ/ํ”„๋ก ํŠธ์—”๋“œ/๋ฐฐํฌ๊นŒ์ง€ ํ•œ ๊ฐ•์˜์—์„œ ๋ชจ๋‘ ๊ฒฝํ—˜ํ•ด๋ณด๊ณ  ์‹ถ์œผ์‹  ๋ถ„

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • ํŒŒ์ด์ฌ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ ์ดํ•ด (ํ•จ์ˆ˜, ํด๋ž˜์Šค, ์žฅ์‹์ž, ํƒ€์ž…ํžŒํŒ…, ์ œ๋„ˆ๋ ˆ์ดํ„ฐ)

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ ์ดํ•ด (ํ•จ์ˆ˜, Prototype, this ๋“ฑ)

  • ๋„์ปค๋กœ ์ปจํ…Œ์ด๋„ˆ ๊ตฌ๋™ํ•˜๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š”
์ด์ง„์„์ž…๋‹ˆ๋‹ค.

3,134

๋ช…

์ˆ˜๊ฐ•์ƒ

154

๊ฐœ

์ˆ˜๊ฐ•ํ‰

934

๊ฐœ

๋‹ต๋ณ€

4.8

์ 

๊ฐ•์˜ ํ‰์ 

5

๊ฐœ

๊ฐ•์˜

ํŒŒ์ด์ฌ๊ณผ ์žฅ๊ณ ์— ์ง„์‹ฌ์ธ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž

๋Œ€์™ธ ํ™œ๋™

  • ์˜คํ”„๋ผ์ธ ๊ต์œก : SKํ…”๋งํฌ, LS๊ทธ๋ฃน, ์‚ผ์„ฑ ๋””์Šคํ”Œ๋ ˆ์ด, ๋ถ€์‚ฐ๋Œ€ํ•™๊ต ์ •๋ณดํ™”๋ณธ๋ถ€, ์„œ์šธ๋Œ€ํ•™๊ต ๋ฒค์ฒ˜๊ฒฝ์˜ํ•™์—ฐํ•ฉ์ „๊ณต, ํŒจ์ŠคํŠธ์บ ํผ์Šค ์›น์„œ๋น„์Šค ๊ฐœ๋ฐœ ์บ ํ”„ 3๊ธฐ ๋“ฑ

  • ๊ธฐ์ˆ  ์ž๋ฌธ : ์œ ํด๋ฆฌ๋“œ์†Œํ”„ํŠธ, ๋ถ€์‚ฐ๋Œ€ํ•™๊ต, ํ•œ๊ตญ์‚ฐ์—…๊ธฐ์ˆ ํ‰๊ฐ€๊ด€๋ฆฌ์›, ํ•œ๊ตญ๋ฐฉ์†กํ†ต์‹ ์ „ํŒŒ์ง„ํฅ์› ๋“ฑ

์—ฌ๋Ÿฌ๋ถ„์˜ ํŒŒ์ด์ฌ/์žฅ๊ณ /๋ฆฌ์•กํŠธ ํŽ˜์ด์Šค๋ฉ”์ด์ปค๊ฐ€ ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜‰

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

295๊ฐœ โˆ™ (35์‹œ๊ฐ„ 56๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์ „์ฒด

24๊ฐœ

4.8

24๊ฐœ์˜ ์ˆ˜๊ฐ•ํ‰

  • khyunglee๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    khyunglee

    ์ˆ˜๊ฐ•ํ‰ 2

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ์ข‹์€ ๊ฐ•์˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    • ์ฃผ์ธ๊ตญ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
      ์ฃผ์ธ๊ตญ

      ์ˆ˜๊ฐ•ํ‰ 8

      โˆ™

      ํ‰๊ท  ํ‰์  4.1

      ์ˆ˜์ •๋จ

      5

      100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

      ์†”์งํ•œ ์™„๊ฐ• ํ›„๊ธฐ์ž…๋‹ˆ๋‹ค. ํšŒ์‚ฌ ์ž…์‚ฌ์ „ ๋ด„ ์ฆˆ์Œ๋ถ€ํ„ฐ ๋“ค์€ ๊ฒƒ ๊ฐ™์€๋ฐ, ์ด์ œ์„œ์•ผ ์™„๊ฐ•ํ•˜๊ฒŒ ๋˜๋„ค์š”. ๊ฐ•์˜ ํŠน์ง•, ์žฅ์ , ๋‹จ์  ์ƒ์„ธํ•˜๊ฒŒ ์ ๊ฒ ์Šต๋‹ˆ๋‹ค. - ๊ฐ•์˜ ํŠน์ง• ``` > ์‹ค๋ฌด์ž์˜ '๋‚œ ์ด๋ ‡๊ฒŒ ์ผํ•จ' ์ž…๋‹ˆ๋‹ค. ``` ์‹œ๋‹ˆ์–ด ์Šจ๋ฐฐ๋‹˜์˜ ์ฝ”๋“œ ์—ผํƒํ•˜๋Š” ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜์…”์•ผํ•ฉ๋‹ˆ๋‹ค. - ์žฅ์  ๋ฐฐํฌ๋ถ€ํ„ฐ ์‹ค๋ฌด ๊นŒ์ง€ ์ „์ฒด์ ์œผ๋กœ ํฐ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ ์ˆ˜์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ์ด๋–ค ํ‚ค์›Œ๋“œ๋ฅผ ๋‚ด๊ฐ€ ์•Œ์•„์•ผ ํ•˜๋Š” ๊ตฌ๋‚˜ ๋ผ๊ณ  ๋А๋‚„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด AI ์‹œ๋Œ€์— ํ‚ค์›Œ๋“œ๋Š” ํ˜ผ์ž ๊ณต๋ถ€ ํ•  ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. - ๋‹จ์  ๋ฐœ์Œ์ด ์ข‹์ง€ ์•Š์œผ์‹ฌ. ์›๋ฆฌ ์„ค๋ช…์ด ๋ถ€์กฑํ•จ. pdf๋Š” ํ•œํŽ˜์ด์ง€ ๋ณด๊ธฐ ๋ถˆํŽธํ•จ. ๊ฐ•์˜, pdf, ๊ฐ•์˜ ๋‚ด ์ถ”๊ฐ€์ž๋ฃŒ ๋“ฑ ๋‚ด์šฉ์ด ํŒŒํŽธํ™” ๋˜์–ด ์žˆ์–ด ๋”ฐ๋ผ๊ฐ€๊ธฐ ํž˜๋“ฌ. ์ •๋ฆฌํ•˜์ž๋ฉด.. ๋ถ„๋ช… ๋„ˆ๋ฌด๋‚˜ ์ข‹์€ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ์ง€๋งŒ ์งง์€ ๊ฐ•์˜ ์‹œ๊ฐ„ ์ €๋ ดํ•œ ๊ฐ€๊ฒฉ์— ๋ชจ๋“  ๊ฒƒ์„ ์–ป์„ ์ˆ˜๋Š” ์—†๊ณ  '๊ณต๋ถ€ํ•  ํ‚ค์›Œ๋“œ ์–ป๋Š”๋‹ค'๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ตœ๊ณ ์˜ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. ๋“ฃ๋А๋ผ ํž˜๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.... ๋‹ค์Œ์€ 2ํšŒ์ฐจ ๋“ค์œผ๋ฉด์„œ ์˜ต์‹œ๋””์–ธ์œผ๋กœ ์ œ๊ฐ€ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์ถ”๋ ค์„œ ๊ฐ•์˜ ์žฌ๊ตฌ์„ฑํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋“ฃ๊ณ ๋‚˜๋‹ˆ, ๋‹จ์ง€ ์›น๊ฐœ๋ฐœ์ž๋กœ์„œ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐœ๋ฐœ์ž๋กœ์„œ ํ•œ๋‹จ๊ณ„ ์„ฑ์žฅํ•œ ๋А๋‚Œ์ž…๋‹ˆ๋‹ค.

      • ์ด์ง„์„
        ์ง€์‹๊ณต์œ ์ž

        ๊ฐ•์˜๋ฅผ ์™„๊ฐ•ํ•˜์…จ๋‹ค๋‹ˆ, ๊ณ ์ƒ ๋งŽ์œผ์…จ๊ณ  ์ง„์‹ฌ์œผ๋กœ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋‚จ๊ฒจ์ฃผ์‹  ํ”ผ๋“œ๋ฐฑ์€ ํ•œ ๊ธ€์ž ํ•œ ๊ธ€์ž ๋นผ๋†“์ง€ ์•Š๊ณ  ์ฐจ๊ทผํžˆ ์ฝ์–ด๋ณด์•˜๊ณ , ๋А๋ผ๋Š” ๋ฐ”๊ฐ€ ๋งŽ์•˜์Šต๋‹ˆ๋‹ค. ์ง„์†”ํ•œ ํ›„๊ธฐ๋ฅผ ํ†ตํ•ด ์ € ๋˜ํ•œ ๋งŽ์ด ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ๋ง์”€ํ•ด์ฃผ์‹  ๊ฐ ์ง€์ ์€ ์•ž์œผ๋กœ ๊ฐœ์„ ์˜ ์ค‘์š”ํ•œ ๊ธฐ์ค€์ ์œผ๋กœ ์‚ผ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฌ๋ฉฐ, ๋‹ค์Œ ์ฝ˜ํ…์ธ ์—์„œ๋Š” ๋” ๋‚˜์€ ๋ชจ์Šต์œผ๋กœ ๋ณด๋‹ต๋“œ๋ฆด ์ˆ˜ ์žˆ๋„๋ก ๋…ธ๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

    • tama๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
      tama

      ์ˆ˜๊ฐ•ํ‰ 2

      โˆ™

      ํ‰๊ท  ํ‰์  5.0

      5

      100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

      • ๋ฌธ์„์ฒญ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
        ๋ฌธ์„์ฒญ

        ์ˆ˜๊ฐ•ํ‰ 38

        โˆ™

        ํ‰๊ท  ํ‰์  5.0

        5

        11% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

        ์ข‹์€ ๊ฐ•์˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

        • ์ด์ง„์„
          ์ง€์‹๊ณต์œ ์ž

          ๋ณธ ๊ฐ•์˜์˜ ์ฒซ ์ˆ˜๊ฐ•ํ‰์ด๋„ค์š”. ๊ฐ์‚ฌ๋“œ๋ฆฌ๊ณ , ํ•ดํ”ผ ์žฅ๊ณ  ๋˜์„ธ์š”~ ;-)

      • sunnnwo๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
        sunnnwo

        ์ˆ˜๊ฐ•ํ‰ 10

        โˆ™

        ํ‰๊ท  ํ‰์  4.7

        ์ˆ˜์ •๋จ

        5

        10% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

        ์žฅ๊ณ  ๊ฐ•์˜๋Š” ๋‹ค๋ฅธ๊ฑฐ ๋“ค์„๊ฑฐ ์—†์ด ์ด๊ฑฐ ํ•˜๋‚˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐ•์˜ ์‚ฌ์„œ ๋“ค์–ด๋ดค๋Š”๋ฐ์š”, ์ด๊ฒŒ ์ œ์ผ ์ข‹์Šต๋‹ˆ๋‹ค. ๊ฐ•์˜๊ฐ€ ๋งŽ๊ณ ์š”, ๊ทธ๋งŒํผ ์„ค๋ช…์„ ์ž์„ธํžˆ ํ•ด์ฃผ์‹ญ๋‹ˆ๋‹ค. ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€๋„ ์ž˜ํ•ด์ฃผ์…”์„œ ๋„ˆ๋ฌด ์ข‹์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋‹ค๋ฅธ ์žฅ๊ณ ๊ฐ•์˜๋„ ๋“ค์„๋•Œ ๋ฌด์Šจ ๋Œ€ํ•™๊ต ๊ต์ˆ˜๋‹˜์ด ๊ทธ๋ƒฅ ppt์ฝ์œผ๋ฉด์„œ ๊ฐ•์˜ํ•˜๋Š” ๋А๋‚Œ๋‚˜๊ณ  ๊ทธ๋ฆฌ๊ณ  ์งˆ๋ฌธํ•˜๋ฉด chatGPT์จ์„œ ๋ณต๋ถ™ํ•˜๋Š”๊ฒƒ๋„ ๋ดค์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜๋Š” ์ด๋Ÿฐ๊ฑฐ ์ „ํ˜€ ์—†๊ณ , ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€๋„ ๋„ˆ๋ฌด ์ข‹์Šต๋‹ˆ๋‹ค.

        ์ด์ง„์„๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜

        ์ง€์‹๊ณต์œ ์ž๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

        ๋น„์Šทํ•œ ๊ฐ•์˜

        ๊ฐ™์€ ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

        ์›” โ‚ฉ44,000

        5๊ฐœ์›” ํ• ๋ถ€ ์‹œ

        โ‚ฉ220,000