본문 바로가기

프로젝트

[Python] Flask Project 구조 구성하기 (feat. github)

개발을 하면서 우리는 Git과 Github을 많이 이용한다.
내 경우 Github이 포트폴리오 겸 스터디 코드 저장소로 사용하고 있기 때문이다.
또한 팀업을 할때도 Github을 즐겨사용하는 편이다.

나는 아직 대학생이라 많은 공부와 경험이 더 필요하지만 전부터 들었던 내용을 정리해보려고 한다.
소스코드나 프로젝트 내용을 Github에 올리다보면 Repo관리가 생각보다 힘들다.
물론, 잘되어있는 Repo를 참조하는 편이지만 이것 역시 많은 어려움을 겪었다.
최근 진행하고자 하는 프로젝트가 HTML + Flask + ML을 이용한 고급검색이다.


오늘은 이를 위한 사전학습을 Flask를 중심으로한 Project의 관리와 배포에 대해 포스팅하겠다 😁

Github은 기본적으로 개발하는데 사용한 환경파일 및 내부정보가 드러날만한 내용을 올리면 안된다고 배웠다.
사실 당연한 얘기이다. 전세계 개발자들이 다 볼수있는 환경에서 내 작업환경 및 여러가지 정보가 유출되면 안되는것이다. 이를 원격저장소에 업로드할 때 환경파일을 올리는게 아닌 이를 정리한 목록을 업로드해주어야한다.
자, Flask Project의 구조를 Github에 업로드할 수 있게 바꾸어보자.

먼저, pip freeze > requirement.txt명령어를 이용해 설치되어있는 패키지를 "requirement.txt"로 옮긴다.
( node.js의 package.json과 같은 개념이라고 생각한다. 많은 양의 패키지를 업로드할 수 없으나 프로젝트에 필요한 내용이고 서비스의 형태를 띄고 있다면 사용자가 받아서 실행해볼텐데 복잡해지기만 할 것이다!! )

패키지 목록을 requirement.txt에 담았다면 프로젝트의 루트 디렉토리로 이동하여 .gitignore 파일을 작성해주자.
.gitignore파일은 github에 본인의 로컬 워크페이스에서 진행한 내용의 일부를 github에 올리고 싶지 않을때 제외할 목록을 작성해주는 파일이다.

이때 본인이 만드는 프로젝트에서 어떠한 파일을 제외할 지 목록을 정하기 어렵다면
gitignore.io 사이트를 참고하자. 본인의 개발환경에 키워드를 적어주면 자동으로 목록을 생성해준다!

이제 본인 github에 업로드할 Repo를 만들어주고, 로컬 워크스페이스와 연결한 뒤 push해주면 끝이다.