[ PROJECT ] Westagram endpoint 구현 (1) - git 등록

Hailee·2020년 12월 4일
0

[ PROJECT ]

목록 보기
2/16
post-thumbnail

- 위코드에서 지금까지 한 것은? 👩‍💻

1 CRUD (1)

  • models.py 작성을 통해 DB와 통신!

2 CRUD (2)

  • url.py, view.py, 등 django를 통해 파이썬 로직을 작성하여 기능을 할 수 있는 하나의 API를 만들어낸 것!

- 위코드에서 진행할 westagram 프로젝트의 목표는?! 🙌🏻

  1. 회원가입 및 로그인 기능 구현을 통해 DB에 데이터 저장, 호출 이해
  2. 간단한 CRUD 기능 구현을 통해 게시물 ceate, read, 댓글달기 및 보여주기를 통해 POST/GET 통신 처리 이해
  3. 기본적인 git 흐르을 이해하고 github를 통해 코드리뷰 실행하기!
  4. convention을 지켜 가독성 높은, 협업에 유용한 코드 작성

Git flow

1. 혼자 작업할 때

1. 작업할 프로젝트를 클론받아서 내 로컬로 가져온다
>> git clone

1-1. pull 해서 main branch를 가져온다		-> 맨 처음 clone할 땐 알아서 main branch가 생성되니까 안해도 돼ㅃ
>> git pull origin main

3. 내 main에서 작업할 수 없으니, 로컬 branch를 생성한다
>> git branch @@@
>> git checkout @@@

4. 작업 완료 후 add, commit해서 로컬 git 레포지토리에 반영!
>> git add .
>> git commit -m

5. 원격지로 push 해주기
>> git push origin @@@

6. github 사이트에서 pull request로 merge 요청!

7. main 관리자가 merge 해주면 끗!

8. 가장 최신의 작업내용을 pull 받아서 작업 시작하기
>> git pull origin main

내가 작업 한 내용이 merge 되어서 내 작업내용이 가장 최신의 main 프로젝트와 같다고 해도,
merge된 main을 pull 받아서 작업해야 충돌나지 않는다!

1-1. 여럿이서 작업할 때 환경설정은 어떻게 하나요?


맨 처음 올리는 사람이 개발 환경을 세팅해서 main branch에 프로젝트를 올리면!
다른 팀원들이 main branch를 pull 받아서 작업하면 되는 것!

dJango source code

pip freeze > requirements.txt
pip install requirements.txt

해당 파일 내에 환경설정에 필요한 요소들을 미리 적어두는 것!


2. dJango 초기 환경 세팅

1) 작업 디렉토리 내 가상환경, dJango 프로젝트 생성!

> conda create -n westagram python = 3.8	-> 가상환경 생성
> conda activate westagram			-> 가상환경 활성화

> pip install django				-> 가상환경에 django, MySQLclient 설치
> pip install mysqlclient

> django-admin startproject westagram		-> 프로젝트 생성

2) 기본 설정

- .gitignore 파일 설정
: github을 통해 소스 공유를 하게 될 것이지만, 그 중에서도 공유하면 안될 것들이 있다!
(예를 들면 DB 암호라던지.. 기본값으로 박아둘 무언가 중요한 정보라던지...)

 # 프로젝트 폴더 내 .gitignore 파일 생성
    touch .gitignore
    vi .gitignore

gitignore.io라는 웹사이트에 접속해서 vscode, Pycharm, Python, Django 등을 선택하고 내용 생성해서
.gitignore 파일 내부에 입력해주기!

#### Django ###
...
하위에 추가해줄 것..! 
my_settings.py

(my_settings.py도 보안과 관련된 파일이므로..!)

- settings.py 수정

# 경로: westagram/settings.py

import my_settings			# my_settings.py 내용 import

SECRET_KEY = my_settings.SECRET		# my_settings.py 내용에 있는 secret key 참조

AllOWED_HOSTS = ['*']

INSTALLED_APPS = [
	# 'django.contrib.admin',
    	# 'django.contrib.auth',	# 필요없는 것 주석처리
        ]

MIDDLEWARE = [
	# 'django.middleware.csrf.CsrfViewMiddleware',
       	# 'django.contrib.auth.middleware.AuthenticationMiddleware',	# 필요없는 것 주석처리
        ]

DATABASES = my_settings.DATABASES	# my_settings.py 내용에 있는 데이터 참조

사용하지 않는 부분들은 주석처리 해주기!
SECRET_KEY 부분은 my_settings 내부의 key 값으로 사용하도록 수정해주어야 한다!

- my_settings.py 수정

   # 프로젝트 폴더 내 my_setting.py 파일 생성 및 내용 작성
   DATABASES = {
   	'default' : {
    	'ENGINE' : 'django.db.backends.mysql',
        'NAME' : 'DATABASE 명',
        'USER': 'DB접속 계정명',
        'PASSWORD': 'DB접속용 비밀번호',
        'HOST': '실제 DB 주소',
        'PORT': '포트번호',
    }
   }

   SECRET = '시크릿키'  		# 시크릿키는 settings.py 에서 가져오기

내가 사용할 DB 정보를 입력하고
SECRET_KEY 부분은 settings.py에서 가져올 것!

- corsheaders 플러그인 추가
django-cors-headers는 Cross-Origin Resource Sharing(CORS)에 요청되는 server headers를 다루기 위한 Django app이다. CORS header를 추가하는 것은 다른 도메인으로부터 내 resource에 접속 가능하도록 허용하는 것(Cross domain)

  • cors에 대한 처리를 도와줄 플러그인 설치
pip install django-cors-headers	

- settings.py 수정

# INSTALLED_APPS 안에 내용 추가
INSTALLED_APPS = [
	'corsheaders',
    	...
        ]

# MIDDLEWARE 안에도 내용 추가
MIDDLEWARE = [
	'corsheaders.middleware.CorsMiddleware'
    	...
    	]


# 하단에 아래 내용 추가(허용할 값 정의)

#REMOVE_APPEND_SLASH_WARNING
APPEND_SLASH = False

##CORSsettings.py 
CORS_ORIGIN_ALLOW_ALL=True
CORS_ALLOW_CREDENTIALS = True

CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
)

CORS_ALLOW_HEADERS = (
    'accept',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
    #만약 허용해야할 추가적인 헤더키가 있다면?(사용자정의 키) 여기에 추가하면 됩니다.
)

- requirements.txt 생성
앞서 언급한 팀프로젝트 환경설정을 위한 파일 작성!
동일한 환경에서 동일한 코드를 만지며 작업을 할 수 있어야하기 때문!

# pip free의 결과를 requirements.txt에 기록
pip freeze > requirements.txt

** DB와 연동해서 작업 하고 싶을 때에는
서버가 켜져있는지, DB와 잘 연결되어있는지, git 작업 폴더에 있는지,
conda 가상환경이 켜져있는지, 등을 필수로 확인해 줄 것..!!!
(다 무언가를 확인하지 않은 본인의 경험담.. ^^...

profile
웹 개발 🐷😎👊🏻🔥

0개의 댓글