본문 바로가기
Project/pre-print-project

Django 장고 .gitignore 설정 & 민감한 정보 분리 & 깃허브 재개설

by 지식을 쌓는 개구리 2023. 8. 3.

2023 pre-print 개발일지

 

8/2~8/3

 

깃허브 레포 삭제

이전까지 기능을 추가할 때마다 깃허브에 장고 프로젝트 전체를 push 하며 관리했다..

가상환경뿐만 아니라 내부의 올라가지 말아야 할 쓸데없는 파일들과

보안에 중요한 settings.py의 secret키 정보와 데이터베이스까지 올라갔다.

 

. gitignore를 통해서 올라가지 말아야 할 파일을 제외해야 된다는 것을 이제야 알았다..

 

깔끔하게 이전에 작업하던 레포를 삭제하고 새로만들어 다시 커밋을 진행했다.

 

 

민감한 정보 분리

문제를 해결하려 파일을 다음과 같이 local_settings.py파일을 만들어 settings.py에서

시크릿키와 데이터베이스 정보를 분리 했다.

from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent

SECRET = 'djan?go-inse?cursdfgsdfg_?fgdhaw%$^fsdhsgr'

DATABASE = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

 

settings.py에서 아래와 같이 정보를 알 수 없도록 분리한다.

from .local_settings import SECRET, DATABASE
 
SECRET_KEY = SECRET
DATABASES = DATABASE

 

 

. gitignore 파일 생성과 무시할 파일들 설정

위와 같이 local_settings.py을 만들어서 settings.py의 중요한 정보들을 분리하였으니

local_settings.py파일은 노출되어서는 안 된다.

따라서 프로젝트 최상위 디렉터리 루트에. gitignore 파일을 생성한 후

local_settings.py을 추가해 준다.

 

동시에 가상환경, 데이터베이스 및 파이썬 프로젝트에서 공통으로 무시해야 할 파일들을 아래와 같이

작성해 준다.

### Django ###
*.log
*.pot
*.pyc
__pycache__/
local_settings.py
db.sqlite3
db.sqlite3-journal
media

### Django.Python Stack ###
# Byte-compiled / optimized / DLL files
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
.
.
.등등... 무시해야할 부분 모두 작성

 

 

=> 다음과 같이 깃허브에 올라가는 것을 확인할 수 있다.

 

 

여름휴가 동안 미리 공부하려 했는데 미루고 미루다 이제야 gitignore공부를 했다.

장고 프로젝트 전에 미리 방법을 학습했어야 했는데.. 결국 미루다 레포를 삭제하기까지 왔다.

어떤 새로운 프레임 워크를 공부할 때, 작업할 때 필요한 부분 중요한 부분들은 미루지 말고

미리 학습해서 진행해야 할 것 같다.. 

이번 프로젝트는 혼자서 진행하는 프로젝트라 내가 성공하지 못하거나 실패하면

팀원들에게 큰 영향을 끼치기에 조금 더 신중히 진행해야될 필요를 느꼈다.