GIT .gitignore 와 requirements.txt를 알아보자 !😎

0

DJANGO

목록 보기
5/9
post-thumbnail

출처:
Git .gitignore 적용하기
파이썬 패키지에 requirements.txt 추가 및 dependency 해결해 주기

DJANGO의 settings.py ⚙️

DJANGO에서 처음 프로젝트를 django-admin startproject appname 명령어로 시작하면 자동으로 설치되는 파일들이 존재한다. 이 중 프로젝트의 여러가지 설정을 조절할 수 있는 settings.py 라는 파일이 있는데, DJANGO 시작하기 튜토리얼을 따라서 프로젝트를 시작하였다면, 기본적으로 sqlite 데이터베이스가 설치되어있는 것을 확인할 수 있습니다.

SQLite 란?
SQLite는 MySQL나 PostgreSQL와 같은 데이터베이스 관리 시스템이지만, 서버가 아니라 응용 프로그램에 넣어 사용하는 비교적 가벼운 데이터베이스이다.

위에 나와져있는 것처럼 무거운 작업을 수행해야되는 서버 프로그램으로 사용하기에는 부적합하여 MySQL 이나 PostgreSQL과 같은 보다 발전된 형태의 데이터베이스를 사용한다. 이 데이터베이스에 장고 프로젝트가 접근하기 위해서 settings.py에 데이터베이스 접속 정보를 입력하는데, 이는 데이터 베이스의 접속 비밀정보와 같은 보안에 중요한 정보를 내포하고 있어 이 정보들을 따로 파일을 준비하여 거기에 기입하고, import를 하는 방식으로 진행한다. 그 다음 github에 push할 때 해당 파일을 업로드 되지 않도록 설정하는 gitignore파일을 작성하면 된다.

.gitignore 🔒

Project에 원하지 않는 Backup File이나 Log File , 혹은 컴파일 된 파일들을 Git에서 제외시킬수 있는 설정 File이다.

gitignore 파일을 만들때 주의할 점:

  • 반드시 프로젝트 루트 다이렉토리에 만들 필요는 없지만, 일관성있게 적용해야 유지보수가 편함.
  • .gitignore을 뒤늦게 추가해줬거나 잘못된 .gitignore을 올리고 나중에 눈치챈 경우, 이미 모든 파일을 올려서 git이 추적할 수 있다. 이 경우가 발생하면, 무시하고자 하는 파일을 제외하고 commit을 한 다음, git rm -r --cached . 명령어로 프로젝트의 모든 git index만 사라지고 해당 파일들은 사라지지 않는다. 그렇지만, 초기화가 이루어져서 .gitignore가 다시 적용된다. 이제 다시 평소처럼 파일을 올리고 하면 된당 ~ ㅎㅎ
  • 반대로, 뒤늦게 gitignore에 추적하지 않는 파일들을 다시 추적하고 싶을 때는, git add -f 파일명 이렇게 강제적으로 staged_area에 올리고 커밋하면 된다.
  • 이미 원격저장소에 올라가 있는 파일들은 뒤늦게 제외목록에 추가하여도 제외되지 않는 경우가 발생할 수 도 있다. 이런 경우, 해당 파일 또는 폴더를 원격저장소에서 먼저 삭제 후 제외 목록을 적용하면 된다.

gitignore 파일 생성법 :

  • gitignore.io에서 보다 쉽게 gitignore 파일 생성 할 수 있다. 예를 들어서, vscode에 있는 폴더 및 파일을 제외하고 싶다면 vscode tag를 추가하면 된다.
  • 위에서 언급했던 데이터베이스 정보나 SECRET_KEY와 같은 정보는 github에 올라가면 안되기 때문에, 따로 파일을 분리하여 제외목록에 반드시 올리자.

Requirements.txt 📖

requirements.txt 란?
빌드 시스템을 사용하여 다른 사람과 프로젝트를 공유하거나 환경을 복원해야 하는 다른 위치에 프로젝트를 복사하려는 경우 프로젝트에 필요한 외부 패키지를 지정해야 합니다. 이 외부 패키지의 이름과 버젼이 나열된 파일이 바로 requirements.txt 파일 입니다.

내 프로젝트에 설정된 외부 패키지 정보 보는법 !

pip freeze

조금더 깔끔하게 보고 싶다면 😎

pip freeze list

DJANGO에서 requirements.txt 생성법

pip freeze > requirements.txt

이렇게 입력을 하시면 !

다음과 같이 깔끔하게 정돈된다 ! 😎

-끝- 🌈

profile
# 개발 # 컴퓨터공학

0개의 댓글