목차
🏁 시작하기
개발자로 일해오면서 여러 가지 언어로 수많은 프로젝트를 셋업 해봤지만, django만큼 쉽게 환경을 구성할 수 있는 언어도 없는 것 같다. 아니면 내가 너무 익숙해 진건가? ㅎㅎ
python의 모토가 life is shot, I do python 인 것만 봐도 python 진영이 뭔가 간단함을 추구한다는 것은 알 수 있다. django도 python 진영이다 보니 그 사상을 많이 따라간 것 같다.
django를 이미 여러 번 사용해 봤다면, 이번 강의는 그냥 건너뛰어도 좋다. 이번 강의에서는 IDE 선택, python 버전 선택, django 프로젝트 시작하기에 대한 간단한 내용을 다룰 예정이다.
🛠️ IDE 선택하기
통합개발툴(IDE - Integrated Development Enviroment)은 개발을 쉽게 도와주는 역할을 할 뿐만 아니라 최근 copilot 같은 ai의 도입으로 개발 편의성 및 효율성을 대폭 향상해 주는 역할을 한다. 최근에는 IDE를 안 쓰는 사람을 본 적이 없긴 한대, 예전에 금융사에서 일할 때 vim을 가지고만 개발했던 기억이 새록새록하다. (라때는...)
나는 IDE를 선택할 때 정말 고민도 하지 않고 JetBrains의 툴을 고른다. java진영은 intelliJ, python은 PyCharm, Ruby는 RubyMine, DB는 DataGrip.
예전에는 JetBrains의 툴이 편의성도 좋고 기능도 많아서 좋았는데, 최근에는 vscode도 기능이 많고 편해져서 많은 개발자들이 사용하는 것 같다. 비유하자면 윈도우 유저는 vscode, 맥 유저는 JetBrains 쓰는 느낌이랄까? ㅎㅎ 물론 개인적인 생각이긴 하다.
이번 강의 역시 JetBrains의 PyCharm Pro버전으로 진행한다. 무료 버전인 Comunity 버전도 있지만 Pro버전이 더 많은 기능을 지원하며 편의성 역시 높다. PyCharm은 무료버전이라도 있는데, DB를 조회할 때 사용하는 DataGrip은 무료버전도 없다. ㅎㅎ
만약 자기가 개발에 익숙해서 자신이 사용하는 IDE로 강의를 따라갈 수 있다면 자신이 사용하던 툴을 계속 사용하는 것을 추천한다. 하지만 따로 사용하던 툴이 없거나 개발경력이 많지 않다면 JetBrains 툴을 사용하며 강의를 따라 하기를 권장한다. 기본적으로 30일 무료이기 때문에 30일 동안 강의를 완료한다는 생각으로 하는 게 좋을 것 같다. (동기부여도 될 겸) 혹은 대학생일 경우 교육 라이선스를 공짜로 받아서 쓸 수 있기 때문에 무기한으로 사용할 수 있다.
🆕 python 버전 정하기
개발을 하기 전에 사용하는 언어나 프레임워크의 버전을 정하는 일은 신중해야한다. 메이저 버전일 경우 상당히 많은 변화가 생기기 때문에 너무 오래된 버전으로 개발하면 특정 라이브러리나 코드를 사용할 수 없을 수도 있고, 보안적인 취약점이 발생할 수 있기 때문이다.
물론 우리는 상용화된 서비스를 굴리는 목적이 아닌, 교육이 목적이기 때문에 python의 최신버전을 사용할 예정이다. (이 강의가 오래되면 예전 버전이 되겠지만..) 하지만 만약 회사에서 사용할 프로젝트를 만들 것이라면, 너무 최신버전도 안정성이나 호환성 문제로 안 좋을 수 있다.
사실 이러한 문제들은 개발하면서 마주하기 때문에 처음에 정할 수 없을지도 모르지만, 대부분의 언어나 프레임워크는 Stable버전이라고 해서 여러 사람들의 사용을 통해 안정성이 검증된 버전을 제공하고 있다. 현재 시점으로 python 공식 홈페이지에 들어가니 3.12.6 버전이 보편화된 버전인 것 같아서 3.12.6 버전으로 강의를 진행해보려고 한다.
📂 신규 프로젝트 생성
Django 신규 프로젝트를 생성하는 방법은 CLI(Command Line Interface)를 이용하는 방법과 IDE를 이용하는 방법이 있다. cli를 이용하면 아래와 같은 명령어를 치면 된다.
django-admin startproject mysite
물론 그냥 입력하면 안된다. python이 설치되어 있어야 하고, django package가 설치되어 있어야 한다. python이 설치되어 있다면 django는 아래와 같이 설치할 수 있다.
pip install django
python을 설치할 때 보통 pip가 같이 설치되기는 하는데, pip 명령어를 못 찾는다고 나온다면 pip도 설치해줘야 한다. 이는 운영체재마다 설치과정이 다르기 때문에 여기서는 생략하도록 하겠다.
위처럼 cli를 이용해서 프로젝트를 시작하는 방법이 있고, IDE를 통해서 프로젝트를 시작하는 방법이 있다. PyCharm에서는 신규 프로젝트 시작하기 > Django 선택을 통해 아주 쉽게 신규 프로젝트를 시작할 수 있다.
물론 python은 설치되어있어야 하며, 가상환경(virtual enviroment)도 자동으로 설치된다. 이런 편리함 때문에 IDE사용을 적극 권장한다.
이렇게 생성한 프로젝트는 프로젝트 이름의 폴더, manage.py 파일, 가상환경이 적용되어있는 .venv 폴더가 기본적으로 들어있다. templates의 경우 프론트화면을 위해 생성되기는 하지만, 이번 강의에서는 사용되지 않으니 지워도 좋다.
이렇게 간단히 생성만 해도 프로젝트를 실행할 수 있는데, pycharm에서 오른쪽 위에 run 버튼(초록색 화살표 모양)을 누르면 실행이 된다.
실행하게 되면 http://localhost:8000/으로 development server가 실행 중이라는 메시지를 확인할 수 있다. 실제로 해당 url로 접속해 보면 장고가 실행 중인 것을 확인할 수 있다.
# 메시지 상세 설명
You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
-> django는 orm을 지원하기 때문에 model을 만들면 migrate를 통해 DB에 테이블을 생성하게 됩니다.
django프로젝트를 새로 만들면 기본적인 model들이 생성되는데, migrate를 아직 하지 않아서 발생하는 메시지입니다.
October 08, 2024 - 04:12:17
-> 실행 시간
Django version 5.1.1, using settings 'UltimateDjangoCource.settings'
-> django 버전, 사용한 환경설정 파일 (기본적으로 settings.py 사용)
Starting development server at http://localhost:8000/
-> 서버 실행 정보
Quit the server with CONTROL-C.
-> 종료하기 위한 방법
default 설정으로 django를 실행해도 실행이 잘 되는 것을 볼 수 있다. 다음 강의부터는 여기에 하나씩 기능들을 덧붙이면서 좀 더 상용화된 프로그램으로 만들어보자.
⚙️ 그 밖에 사용하면 좋은 툴
pycham 말고도 강의를 따라가는 데 사용하면 좋은 툴들이 있다.
DataGrip
일단 위에서 언급한 DataGrip은 데이터베이스를 조회하고 저장된 데이터를 수정하거나 변경하는데 좋은 툴이다. 한 가지 흠이라면 유료인 점..? 30일 무료나 교육 라이선스를 활용해서 무료로 최대한 사용해 보고, 정 아니다 싶으면 다른 툴을 사용해도 사실 데이터베이스를 확인하는데 큰 문제는 없다.
Postman
API 테스트를 위해 제일 많이 사용하는 툴이다. 어떤 걸 개발해도 가장 많이 사용하는 툴이기도 하고, 한번 만들어놓으면 공유하기도 쉽고 수정하기도 쉽고 추가 및 수정하기도 쉽다.
회사에서도 많이 사용하는데, 요즘에는 QA분들도 Postman을 통해 API를 테스트를 하는 것 같다. 모두가 사용하는 툴이 되는 느낌?
간단하게 Post, Get API를 찌르기에는 UI가 좀 복잡한 면이 있긴 한데, 그만큼 다양한 기능을 제공하기 때문에 한번 익숙해지면 너무 편리하다.
만약 라이트하게 사용하고 싶다면 insomnia라는 툴을 추천한다. Postman보다 가볍고 디자인이 조금 더 이쁘다.
Sublime Text
컴퓨터를 새로 세팅할 때 항상 같이 설치하는 소프트웨어다. 기능은 그냥 메모장인데, 글에 syntax나 highlight기능이 너무 좋다. 개발용 메모장이라고 해야 하나? 여러 플러그인이 있어서 실제로 sublime Text만을 이용해서 개발하는 사람도 있다. 나는 그냥 메모장 정도로만 사용한다 ㅎ
공식 홈페이지에서 무료로 받을 수 있다.
'Course > django : 실전 장고 백엔드 구축 & 운영' 카테고리의 다른 글
Django: 실전 백엔드 구축 & 운영, #0 Django 백엔드 강의는 이거 하나로 종결 (4) | 2024.09.23 |
---|