오늘은 제가 하고 있는 프로젝트인 Weatherplace project와 관련한 글을 써보려고 합니다. 아직 프로젝트라고 부르기도 미약한 것이지만 또 다음 단계로 나아갈 준비를 하고 있습니다.
다만, 프로젝트가 커지기 전에 Flask로 진행중이던 프로젝트를 Django로 리팩터링하는 게 어떨지 고민 중에 있습니다.
이유는 다음과 같습니다.
1) Flask의 너무 높은 자유도 (아직 초보자이기 때문에... 처음엔 구조가 잘 짜여진 스프링이 어렵다고 생각했지만 오히려 구조가 아예없는 Flask가 더 어려운 것 같다)
2) Spring과 유사한 패턴의 개발 방식(결국은 Java+Spring을 언젠간 해봐야 할텐데 그 때 조금이라도 유사한 Django를 해보는 것이..?)
3) 미래에 개인적으로 Full-stack project를 하기 용이하다. (거의 무에서 유를 창조해내는 Flask보다는 기본적으로 Fullstack Framework를 지향하는 Django가 유리하지 않을까?)
여튼, 그래서 Django 공식 문서를 보며 Project의 틀을 만들고 기존 코드들을 이식하고, 서버에 배포한 뒤 CI/CD 등도 구현해보고, 동시에 기능을 만들면서 필요한 테스트 코드도 작성해보는 연습을 해나갈까 합니다.
첫 시간으로 Django 프로젝트 생성과 하면서 알게된 Python Package의 개념을 소개할까 합니다.
Django를 시작하려면 맨 먼저 설치를 해야겠죠? 터미널에서 pip를 통해 간단하게 설치할 수 있습니다.
$ python -m pip install Django
잘 설치되었는지 확인하려면 터미널에서 다음 명령어를 입력합니다.
$ python
>> import django
>> print(django.get_version())
3.2
다음으로 Django Project를 생성해봅시다. Terminal에서 cd 명령어를 통해 프로젝트 폴더로 이동하거나, IDE 등에서 작업공간 폴더를 생성하고 터미널에 다음 명령어를 입력합니다.
$ django-admin startproject [my_project_name]
my_project_name에 본인의 프로젝트 이름을 정하고 넣으시고, 단 Python이나 Django에서 사용되는 이름(ex. test 등)은 피해야 합니다.
이렇게 입력하면, 해당 폴더의 하위에 다음과 같은 폴더들이 생깁니다.
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
튜토리얼에서는 mysite라는 이름의 프로젝트를 생성했습니다.
이 중 manage.py라는 파일의 용도를 소개하자면,
이제 위에서 나온 manage.py 를 활용해 서버를 구동해봅시다.
terminal에서 다음 명령어를 수행합니다.
python manage.py runserver
그럼 콘솔 창에 서버가 구동되었다는 메시지가 뜨고 서버의 URL이 표시됩니다.
들어가면 로켓이 발사되는 페이지가 뜨고 첫 django project를 구동에 성공했습니다.
이렇게 첫 프로젝트를 생성했으니 다음으로는 첫 앱을 만들어보겠습니다.