๐Ÿ๐Ÿš€ ํŒŒ์ด์ฌ ์ดˆ๋ณด์ž ๊ฐ€์ด๋“œ : Django ์„ค์น˜ ! (feat. ์›น ๊ฐœ๋ฐœ ์‹œ์ž‘ํ•˜๊ธฐ)

 



์•ˆ๋…•ํ•˜์„ธ์š”! ์›น ๊ฐœ๋ฐœ์˜ ์„ธ๊ณ„์— ๋ฐœ์„ ๋“ค์ด์‹  ์—ฌ๋Ÿฌ๋ถ„์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. **ํŒŒ์ด์ฌ(Python)**์œผ๋กœ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ, ๋ฐ”๋กœ **Django(์žฅ๊ณ )**๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•„์ฃผ ์‰ฝ๊ณ  ์นœ์ ˆํ•˜๊ฒŒ ์•Œ๋ ค๋“œ๋ฆด๊ฒŒ์š”. 


๐Ÿ’ก Django, ์™œ ๋ฐฐ์›Œ์•ผ ํ• ๊นŒ์š”?

Django๋Š” 'The Web framework for perfectionists with deadlines'๋ผ๋Š” ์Šฌ๋กœ๊ฑด์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋งˆ๊ฐ ๊ธฐํ•œ์ด ์žˆ๋Š” ์™„๋ฒฝ์ฃผ์˜์ž๋ฅผ ์œ„ํ•œ ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋ผ๋Š” ๋œป์ด์ฃ . ํŒŒ์ด์ฌ ๊ธฐ๋ฐ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์šฐ๊ธฐ ์‰ฝ๊ณ , ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ์ˆ˜๋งŽ์€ ๊ธฐ๋Šฅ(๋ณด์•ˆ, ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋“ฑ) ๋•๋ถ„์— ๋น ๋ฅด๊ณ  ์•ˆ์ •์ ์œผ๋กœ ์›น ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ํฐ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์Šคํƒ€๊ทธ๋žจ, ์œ ํŠœ๋ธŒ ๋“ฑ๋„ ํŒŒ์ด์ฌ์œผ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์„ ์ •๋„๋กœ ๊ทธ ์“ฐ์ž„์ƒˆ๊ฐ€ ๋ฌด๊ถ๋ฌด์ง„ํ•ฉ๋‹ˆ๋‹ค!




1๋‹จ๊ณ„: ๐Ÿ ํŒŒ์ด์ฌ ์„ค์น˜ ๋ฐ ํ™˜๊ฒฝ ํ™•์ธ

Django๋Š” ํŒŒ์ด์ฌ ์œ„์—์„œ ์ž‘๋™ํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ€์žฅ ๋จผ์ € ์ปดํ“จํ„ฐ์— ํŒŒ์ด์ฌ์ด ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ํŒŒ์ด์ฌ ์„ค์น˜ ํ™•์ธ:

    • **๋ช…๋ น ํ”„๋กฌํ”„ํŠธ(Windows)**๋‚˜ **ํ„ฐ๋ฏธ๋„(Mac/Linux)**์„ ์—ด์–ด์ฃผ์„ธ์š”.

    • ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ(Enter)๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

    Bash
    python --version
    
    • ๋งŒ์•ฝ Python 3.x.x์™€ ๊ฐ™์€ ๋ฒ„์ „ ์ •๋ณด๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด ์„ฑ๊ณต์ž…๋‹ˆ๋‹ค!

    • ๋ฒ„์ „ ์ •๋ณด๊ฐ€ ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค๋ฉด, ํŒŒ์ด์ฌ ๊ณต์‹ ์›น์‚ฌ์ดํŠธ์—์„œ ์ตœ์‹  ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์„ค์น˜ํ•ด ์ฃผ์„ธ์š”. (์„ค์น˜ ์‹œ 'Add Python to PATH' ์˜ต์…˜์„ ๋ฐ˜๋“œ์‹œ ์ฒดํฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค!)




2๋‹จ๊ณ„: ๐ŸŒ ๊ฐ€์ƒ ํ™˜๊ฒฝ ์„ค์ •์˜ ์ค‘์š”์„ฑ

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

  1. ๊ฐ€์ƒ ํ™˜๊ฒฝ ํด๋” ์ƒ์„ฑ ๋ฐ ์ด๋™:

    • ์›ํ•˜๋Š” ์œ„์น˜์— ํ”„๋กœ์ ํŠธ ํด๋”๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. (์˜ˆ: C:\my_django_project)

    • ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ/ํ„ฐ๋ฏธ๋„์—์„œ ํ•ด๋‹น ํด๋”๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    Bash
    # (์˜ˆ์‹œ)
    cd C:\my_django_project
    
  2. ๊ฐ€์ƒ ํ™˜๊ฒฝ ์ƒ์„ฑ ๋ฐ ํ™œ์„ฑํ™”:

    • ํŒŒ์ด์ฌ์— ๋‚ด์žฅ๋œ venv ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ด ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. (๊ฐ€์ƒ ํ™˜๊ฒฝ ์ด๋ฆ„์€ venv๋กœ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.)

    Bash
    python -m venv venv
    
    • ์ƒ์„ฑ๋œ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. (์šด์˜์ฒด์ œ์— ๋”ฐ๋ผ ๋ช…๋ น์–ด๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.)

    ์šด์˜์ฒด์ œ๋ช…๋ น์–ด
    Windowsvenv\Scripts\activate
    Mac/Linuxsource venv/bin/activate
    • ๋ช…๋ น์–ด ์ž…๋ ฅ ํ›„, ํ”„๋กฌํ”„ํŠธ ์•ž์— (venv)๋ผ๋Š” ๊ธ€์ž๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด ํ™œ์„ฑํ™” ์„ฑ๊ณต์ž…๋‹ˆ๋‹ค! ์ด์ œ ์ด ํ™˜๊ฒฝ ์•ˆ์—์„œ Django๋ฅผ ์„ค์น˜ํ•  ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.




3๋‹จ๊ณ„: ⚙️ Django ์„ค์น˜ํ•˜๊ธฐ

๊ฐ€์ƒ ํ™˜๊ฒฝ์ด ํ™œ์„ฑํ™”๋œ ์ƒํƒœ์—์„œ, ํŒŒ์ด์ฌ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ๋„๊ตฌ์ธ pip๋ฅผ ์ด์šฉํ•ด Django๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

  1. Django ์„ค์น˜ ๋ช…๋ น:

    • ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

    Bash
    pip install django
    
    • pip๊ฐ€ ์ž๋™์œผ๋กœ ์ตœ์‹  ๋ฒ„์ „์˜ Django์™€ ํ•„์š”ํ•œ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋“ค์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์„ค์น˜ํ•ด ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    • ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด, 'Successfully installed django-x.x.x...' ์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

  2. ์„ค์น˜ ํ™•์ธ:

    • ์„ค์น˜๊ฐ€ ์ œ๋Œ€๋กœ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด ๋ด…๋‹ˆ๋‹ค.

    Bash
    django-admin --version
    
    • ์„ค์น˜๋œ Django ๋ฒ„์ „์ด ์ถœ๋ ฅ๋˜๋ฉด ์„ฑ๊ณต์ ์œผ๋กœ ์„ค์น˜๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค!




4๋‹จ๊ณ„: ✨ ์ฒซ ๋ฒˆ์งธ Django ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ ์‹คํ–‰

์ด์ œ ๋“œ๋””์–ด ์—ฌ๋Ÿฌ๋ถ„์˜ ์ฒซ ์›น ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋ณผ ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค.

  1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ:

    • myproject๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ Django ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. (myproject ๋Œ€์‹  ์›ํ•˜๋Š” ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค.)

    Bash
    django-admin startproject myproject .
    

    ์ž ๊น! ๋ช…๋ น์–ด ๋งˆ์ง€๋ง‰์˜ **. (์ )**์€ "ํ˜„์žฌ ํด๋”์— ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด๋ผ"๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์ด ์ ์„ ๋ถ™์ด์ง€ ์•Š์œผ๋ฉด myproject ์•ˆ์— ๋˜ ๋‹ค๋ฅธ myproject ํด๋”๊ฐ€ ์ƒ๊ธฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  2. ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹คํ–‰:

    • ํ”„๋กœ์ ํŠธ ํด๋”๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. (์œ„ ๋ช…๋ น์–ด์— ์ ์„ ๋ถ™์˜€๋‹ค๋ฉด ์ด๋ฏธ ํด๋” ์•ˆ์— ํŒŒ์ผ๋“ค์ด ์ƒ์„ฑ๋˜์—ˆ์œผ๋ฏ€๋กœ ์ด๋™ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, manage.py ํŒŒ์ผ์ด ์žˆ๋Š” ์œ„์น˜์ธ์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.)

    • ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ Django๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    Bash
    python manage.py runserver
    
  3. ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ํ™•์ธ:

    • ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋˜๋ฉด ํ„ฐ๋ฏธ๋„์— 'Starting development server at https://127.0.0.1:8000/' ์™€ ๊ฐ™์€ ์ฃผ์†Œ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

    • ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์—ด๊ณ  ์ด ์ฃผ์†Œ๋กœ ์ ‘์†ํ•ด ๋ณด์„ธ์š”.

    • ๋กœ์ผ“ ๋ชจ์–‘์˜ ํ™˜์˜ ํŽ˜์ด์ง€๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด ์ถ•ํ•˜ํ•ฉ๋‹ˆ๋‹ค! Django ์„ค์น˜์™€ ์ฒซ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์ด ์™„๋ฒฝํ•˜๊ฒŒ ์„ฑ๊ณตํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค! ์ด ํŽ˜์ด์ง€๋Š” 'It worked!'๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ฐธ๊ณ : ์„œ๋ฒ„๋ฅผ ๋ฉˆ์ถ”๊ณ  ์‹ถ๋‹ค๋ฉด ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ/ํ„ฐ๋ฏธ๋„ ์ฐฝ์— **Ctrl + C**๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋ฉ๋‹ˆ๋‹ค.


๐Ÿ–️ ๋งˆ๋ฌด๋ฆฌ ๋ฐ ๋‹ค์Œ ๋‹จ๊ณ„

์˜ค๋Š˜ ์šฐ๋ฆฌ๋Š” ํŒŒ์ด์ฌ ์„ค์น˜ ํ™•์ธ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๊ณ , pip install django ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด Django๋ฅผ ์„ค์น˜ํ•œ ๋‹ค์Œ, **django-admin startproject**์™€ python manage.py runserver ๋ช…๋ น์–ด๋กœ ์ฒซ ์›น์‚ฌ์ดํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ •๊นŒ์ง€ ๋ชจ๋‘ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ์—ฌ๋Ÿฌ๋ถ„์€ ์›น ๊ฐœ๋ฐœ์ž๋กœ์„œ ์ฒซ๊ฑธ์Œ์„ ๋—€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 


๋Œ“๊ธ€