[๐ŸคœMiniproject]Westagram-๊ธฐ๋ณธ ์„ค์ •

์—ฌ์ฃผ๋งยท2020๋…„ 12์›” 13์ผ
0

Project

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

๋Œ€๋ง์˜ "Westagram"๐ŸŽ‰

C.R.U.D์—์„œ (๋ˆˆ๋ฌผํ˜๋ฆฌ๋ฉฐ) ๋ฐฐ์šด๊ฑธ ์‹ค์ œ๋กœ ํ•œ๋ฒˆ ์จ๋จน์„ ์‹œ๊ฐ„๐Ÿ’ƒ ์™”๋‹ค๋„ค ์™”๋‹ค๋„ค~ ์œ„์Šคํƒ€๊ทธ๋žจ์ด ์™”๋‹ค๋„ค~๐Ÿ’ƒ

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

ํ”„๋กœ์ ํŠธ ์‹œ์ž‘๋‹จ๊ณ„ ์„ค์ •(ํ„ฐ๋ฏธ๋„)

1. git branch

์œ„์Šคํƒ€๊ทธ๋žจ์„ ์œ„ํ•œ ๊ธฐ๋ณธ์  ์ž๋ฃŒ๋ฅผ ๋ฉ˜ํ† ๋‹˜๋“ค์ด ์˜ฌ๋ ค๋†“์€ Github์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ๋กœ ํ–ˆ๋‹ค.
git.. ์•„์ง๋„ ๋‚ฏ์„ค๊ณ  ๋ฌด์„œ์šด ์กด์žฌ์ธ๋ฐ.. ์ด๋ฒˆ์—๋Š” ์ฒ˜์Œ ์‹œ๋„ํ•˜๋Š”๊ฑฐ๋ผ ๋ฉ˜ํ† ๋‹˜๋“ค์ด๋ž‘ ํ•จ๊ป˜ ํ•ด์„œ ๋นจ๋ฆฌ ๋ฐ›์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค!

์œ„์˜ ํ๋ฆ„๋Œ€๋กœ ์ง„ํ–‰์ด ๋œ๋‹ค!

  • git init์œผ๋กœ git์„ ์ƒ์„ฑํ•œ๋‹ค
  • git branch ๋งŒ๋“ค๊ณ ์‹ถ์€์ด๋ฆ„๋ช…๋ น์–ด๋กœ branch๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • ๋งŒ๋“  branch๋กœ ์ด๋™ -> git checkout ๋ธŒ๋ Œ์น˜์ด๋ฆ„
  • git clone ์ฃผ์†Œ(github์—์„œ ๊ฐ€์ ธ์˜ด) ์ฒ˜์Œ ๋ฐ›์•„์˜ค๋Š”๊ฑฐ๋‹ˆ๊นŒ clone์„ ํ•œ๋‹ค!(2,3๋ฒˆ์งธ๋กœ ๋ฐ›์•„์˜ค๋Š”๊ฑฐ๋ฉด ์œ„ ์ด๋ฏธ์ง€์˜ git pull์„ ์ด์šฉ!!

2.Project์ƒ์„ฑ

  • westagram์ด๋ผ๋Š” project์ƒ์„ฑ
$ django-admin startproject westagram

3.'.gitignore' ์„ค์ •

gitignore๋ž€?

๊นƒ์— ์˜ฌ๋ฆด๋•Œ ์˜ฌ๋ฆฌ๊ณ  ์‹ถ์ง€ ์•Š์€๊ฒƒ๋“ค์ด ์กด์žฌํ•˜๊ธฐ ๋งˆ๋ จ์ด๋‹ค. ์ด๊ฒฝ์šฐ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ•ด๋‹น ๊นƒ์ด ์„ค์น˜๋œ ๋””๋ ‰ํ† ๋ฆฌ(westagram)์— .gitignore๋ผ๋Š” ํŒŒ์ผ์„ ์ƒ์„ฑํ›„ ๊ด€๋ฆฌํ•ด์•ผํ•œ๋‹ค.

์ ์šฉ๋ฐฉ๋ฒ•

1.gitignore์‚ฌ์ดํŠธ์— ๋“ค์–ด๊ฐ€ .gitignore์— ์ ์šฉํ•  ์š”์†Œ๋“ค์„ ์ƒ์„ฑ&๋ณต์‚ฌ ํ•œ๋‹ค.
2.1๋ฒˆ์˜ ๊ฒฐ๊ณผ๋ฌผ์„ ๋ณต์‚ฌํ•œ๋’ค ๋‚ด์šฉ์„ ์ €์žฅํ•œ๋‹ค

cd 'ํ”„๋กœ์ ํŠธ ํด๋”๋ช…'
touch .gitignore
#vi๋ฅผ ํ†ตํ•ด 1๋ฒˆ์—์„œ ๋ณต์‚ฌํ•œ ๋‚ด์šฉ์„ ๋„ฃ์–ด์ค€๋‹ค
vi .gitignore

#์•„๋ž˜ ๋‘๊ฐ€์ง€ ์ถ”๊ฐ€
my_settings.py (๋ณด์•ˆ ๊ด€๋ จ ํŒŒ์ผ์€ github์— ์—…๋กœ๋“œ๋˜๋ฉด ์•ˆ๋จ)
*.csv (crwalingํ•œ ํŒŒ์ผ ์—ญ์‹œ ์—…๋กœ๋“œํ•˜์ง€ ์•Š๋Š”๋‹ค)
  1. ๋งˆ์ง€๋ง‰์œผ๋กœ my_settings.py์— ์ ‘์†ํ•ด ๋‚ด์šฉ์„ ์ž…๋ ฅํ•œ๋‹ค -> ์ˆœ์„œ

4.Project์„ธ๋ถ€์‚ฌํ•ญ ์„ค์ •

#westagram(project)/settings.py

SECRET_KEY = my_settings.SECRET

DEBUG = True

ALLOWED_HOSTS = ['*']

INSTALLED_APPS = [
 #    'django.contrib.admin',
 #    'django.contrib.auth',

     'corsheaders',
     'user',
 ]

 MIDDLEWARE = [
   
 #  'django.middleware.csrf.CsrfViewMiddleware',
 #  'django.contrib.auth.middleware.AuthenticationMiddleware',
     
     'corsheaders.middleware.CorsMiddleware',
 ]
  DATABASES = my_settings.DATABASES

1)SECRET_KEY

์šฐ๋ฆฌ์˜ ์ปดํ“จํ„ฐ๋Š” ํ•ญ์ƒ ๊ณ ์ •์ ์ธ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ, ์ด๊ฑธ git์„ ํ†ตํ•ด github์— ์˜ฌ๋ฆฐ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด๋ผ...
๋น„๋ฐ€๋ฒˆํ˜ธ ์˜คํ”ˆํ•˜๋Š”๊ฑฐ๋ž‘ ๋‹ค๋ฆ„์ด ์—†๋Š”๊ฑฐ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฑธ my_settings.py๋ผ๋Š” ํŒŒ์ผ์„ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด ์ค€๋’ค, ์—ฌ๊ธฐ์— ์ž…๋ ฅํ•˜๊ณ 
git๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด github์— pushํ• ๋•Œ ์˜ํ–ฅ์ด ์—†๋„๋ก ์„ค์ •ํ•œ๋‹ค. ์ด ๋ช…๋ น์–ด๋Š” ๋’ค์— ๋‚˜์˜ฌ๊ฑฐ๋‹ค~

2)DEBUG

๋””๋ฒ„๊ทธ! ์ด๊ฑด ์šฐ๋ฆฌ๊ฐ€ ์‹ค์ œ๋กœ ์œ ์ €์—๊ฒŒ ๊ณต๊ฐœํ• ๋•Œ๋Š” False๋ฅผ ํ•ด์„œ ๋ฌด์Šจ ๋‚ด์šฉ์ธ์ง€ ๋ชจ๋ฅด๊ฒŒํ•œ๋‹ค!
๊ทธ๋Ÿฌ๋‚˜ ์ง€๊ธˆ์€ ์šฐ๋ฆฌ๊ฐ€ ๋ฌด์Šจ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฅผ ๊ดด๋กญํžˆ๋Š”์ง€ ์•Œ ํ•„์š”๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ, True ๋กœ ์„ค์ •ํ•ด๋‘”๋‹ค.

3)INSTALLED_APPS,MIDDLEWARE

  • #๋ถ€๋ถ„์€ ์‹ค์ œ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ฃผ์„์ฒ˜๋ฆฌํ–ˆ๋‹ค
  • corsheaders,user : ๋‚˜๋Š” ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ด๊ด„ํ•˜๋Š” ํŒŒ์ผ๋ช…์„ user๋ผ๊ณ  ์ง€์ •ํ–ˆ๋‹ค. ์šฐ๋ฆฌ ํŒŒ์ผ์—๊ฒŒ๋„ ์ด ์‚ฌ์‹ค์„ ์•Œ๋ ค์ฃผ๋Š”๊ฒƒ์ด๋‹ค. corsheaderss๋Š” Cross Domain์ด์Šˆ๊ฐ€ ๋ฐœ์ƒ๋˜๊ธฐ ์ „์— ์‚ฌ์ „์— ์ฒ˜๋ฆฌ๋ฅผ ๋„์™€์ค€๋‹ค
  • middle ware ๋ถ€๋ถ„๋„ ๋™์ผํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•ด์ฃผ์ž

4)DATABASE

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋„ my_settings.py์˜ ๊ธฐ๋ณธ ์„ค์ •์„ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ด๋ฏ€๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.

5.user/my_settings.py์ƒ์„ฑํ›„ ์ž…๋ ฅํ•ด์ฃผ๊ธฐ

 DATABASES = {
     'default' : {
         'ENGINE': 'django.db.backends.mysql',
         'NAME': 'project์ด๋ฆ„',
         'USER': 'root',
         'PASSWORD': '๋น„๋ฐ€๋ฒˆํ˜ธ',
         'HOST': '127.0.0.1',
         'PORT': '์ •ํ•ด์ค€ ๋Œ€๋กœ',
     }
 }
 SECRET ='์‰ฟ!'

์ด๊ฒƒ๋„ ๋ฉ˜ํ† ๋‹˜๋“ค์ด ๋‹ค ์•Œ๋ ค์ฃผ์‹ ๋‚ด์šฉ์ธ๋ฐ, ์ด๋Ÿฐ์‹์œผ๋กœ ์ž…๋ ฅํ•œ๋‹ค.

  • HOST๋Š” ๊ธฐ๋ณธ ์œ„์™€ ๊ฐ™์€ '127.0.0.1'์ด๋‹ค
  • SECRET๋Š” ์œ„์—์„œ ๋งํ–ˆ๋˜ ๋ณด์•ˆ์„ ์œ„ํ•ด ๋ณ„๋„๋กœ ๋นผ๋‘์—ˆ๋‹ค.

6.requirements์„ค์ •

requirements๋ž€?

ํŒ€ํ”„๋กœ์ ํŠธ์—์„œ ํ•„์ˆ˜์ ์ธ ์กด์žฌ๋กœ, ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋‚ด ์ฝ”๋“œ๋ฅผ ์ „๋‹ฌ๋ฐ›์„๋•Œ, ๋‚˜๋ž‘ ๋™์ผํ•œ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•ด์•ผํ•œ๋‹ค.
github์— pushํ• ๋•Œ ๋‚ด๊ฐ€ ์–ด๋–ค ํ™˜๊ฒฝ์ด์˜€๋Š”์ง€๋ฅผ ์•Œ๋ ค์ฃผ๊ณ ๋Š” ํ•˜๋‚˜์˜ ํ…์ŠคํŠธ๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ, ์ด๊ฒŒ๋ฐ”๋กœ requirement.txt์ด๋‹ค

ํ”„๋กœ์ ํŠธ ์‹œ์ž‘๋‹จ๊ณ„ ์„ค์ •(MySQL)

ํ•ด๋‹น ๊ณผ์ •์€ MySQL์€ ์„ค์น˜๋œ ํ›„์˜ ๊ณผ์ •์ด๋‹ค

1. Database์ƒ์„ฑ

$ mysql.server start

$ mysql -u root -p

mysql> create database "NAME" character set utf8mb4 collate utf8mb4_general_ci;

2. Django,MySQL๋ฅผ ์—ฐ๊ฒฐํ•ด์ค€๋‹ค(migrate)

์ด์ „์—๋Š” makemigrations์„ ํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ migrate๋ฅผ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค! ์•„์ง models.py์— ์„ค์ •์ด ์—†๊ธฐ ๋•Œ๋ฌธ

$ python manage.py migrate

๊ฐ„๋‹จ(?)ํ•˜๊ฒŒ ์š”๋ ‡๊ฒŒ ์…‹ํŒ…์„ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค! ๊ทธ๋Ÿฌ๋ฉด ์ด์ œ๋ถ€ํ„ฐ ์šฐ๋ฆฌ๋Š” ํšŒ์›๊ฐ€์ž…๊ณผ ๋กœ๊ทธ์ธ์„ ํ–ฅํ•œ ์—ฌ์ •๐Ÿงณ ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค~

profile
๐ŸŒฑBackend Developer๐Ÿ‘ฉโ€๐Ÿ’ป

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