개요
PyCharm에는 프로젝트를 실제 서비스를 제공할 서버에 업로드하는 Deployment라는 기능을 제공합니다. 이 기능을 이용하면 소스코드의 변경사항을 신속하게 서버에 반영할 수 있습니다. 원격 서버에 업로드하는 기능은 Linux 운영체제를 기준으로 설명합니다.
업로드 설정
PyCharm을 실행시킨 뒤 서버에 배포할 프로젝트를 불러옵니다. 여기선 간단한 웹 페이지를 출력하는 프로젝트를 대상으로 진행합니다.
제일 먼저 해야할 일은 이 앱이 배포될 서버에서 이 앱으로 접속하기 위한 도메인 주소를 settings.py에 지정해야 합니다. 프로젝트 폴더 안에 있는 settings.py에서 ALLOWED_HOSTS 리스트가 바로 이를 설정하는 부분입니다.
배포 서버로 올리기 위해 Deployment 설정을 합니다. Tools -> Deployment -> Configuration... 을 선택한 후
+ 버튼을 누른 후 SFTP를 선택합니다. 이어 나오는 New server name은 우리가 배포할 서버 프로필에 대한 별명을 지어줍니다. 여기서는 배포 서버라 지었습니다.
배포 서버에 접속하기 위한 URL과와 SFTP ID 및 비밀번호를 입력한 후 Test Connection 버튼을 눌러 정상적으로 로그인이 되는지 확인하세요!
Test Connection 누르고 아래 이미지처럼 인증 경고가 나타나면 Yes 누릅니다.
아래 이미지처럼 로그인이 성공하면 다음 단계로 넘어갑니다.
Root path에서 폴더 아이콘을 선택한 후 나타나는 경로 선택 창에서 app을 선택한 후 확인을 누릅니다. 이 작업은 우리가 업로드할 프로젝트 파일들이 어느 경로에 저장될 지 지정합니다. 반드시 app을 선택하여 Root path에 /app이라고 나타나도록 하십시오.
Mappings 탭에서 Deployment path 경로를 백슬래쉬(\)로 지정한 뒤 OK를 눌러 설정을 마칩니다.
다시 Tools -> Deployment -> Options... 로 들어가서 업로드 작업에서 제외시킬 파일 및 폴더들을 지정해야 합니다.
Exclude items by name에 적혀있는 여러 파일/폴더 경로 끝에 콜론(;)(구분자)을 입력하고 venv라 적습니다. OK를 눌러 설정을 저장합니다.
PyCharm에서 배포 서버로의 업로드 설정을 마쳤습니다. 이제 업로드하는 작업만 남았습니다. 이제부터는 부가적인 설정을 하지 않고 아래 과정만으로 서버에 올려진 앱을 업데이트 할 수 있습니다.
배포
먼저 웹 서버가 정적 파일을 불러올 수 있도록 python manage.py collectstatic 명령을 통해 한 곳에 모아주어야 합니다. 정적 파일은 Django에서 처리하지 않고 웹 서버가 직접 다루는 것이 Django의 특징입니다. 정적 파일을 사용하지 않는다면 이 과정은 건너 뛰어도 됩니다.
왼쪽 프로젝트 탐색기 창에서 최상위 디렉터리인 hello_django(프로젝트 명)를 선택한 상태(클릭)에서 Tools -> Depolyment -> Upload to 배포 서버를 클릭하여 업로드를 진행합니다. PyCharm 하단에 업로드 진행 과정이 나타나므로 이 작업이 완료될 때 까지 네트워크 연결을 유지하십시오.
파일 작업
SFTP 연결을 통해 GUI로 서버의 파일 시스템을 관리하고 싶다면 FileZilla와 같은 무료 FTP 클라이언트 프로그램을 활용할 수 있습니다.