PyCharm 개발환경 세팅하기

개발을 파헤치다/Django|2018. 4. 30. 14:00

Python 설치

Python 3.6 설치를 진행합니다.

설치하려면 다음의 링크를 참조하십시오.

https://www.python.org/downloads/





Python 설치가 완료되었는지 확인하기 위해 Window + R 키를 누릅니다.

cmd를 입력하여 콘솔창을 띄웁니다.

> python --version

Python 3.6이라고 콘솔창에 표시되면 정상적으로 설치가 완료된 것입니다.



PyCharm 설치

PyCharm은 Jetbrain에서 만든 강력한 Python 개발 도구입니다.

PyCharm은 Community Edition과 Professional Edition이 있으며, 본 글에서는 Professional Edition을 기준으로 설명합니다.

PyCharm을 설치하기 위해서 다음의 링크를 참조하십시오.

https://www.jetbrains.com/pycharm/download/#section=windows




PyCharm을 설치하고 새로운 프로젝트를 생성합니다.



프로젝트 폴더를 설정하고 create를 누르면 프로젝트를 생성할 수 있습니다.

Basic interpreter에 아무것도 뜨지 않는다면 Python이 제대로 설치되지 않은 것입니다.

이때에는 Python 3.6버전을 다시 설치합니다.



VirtualEnv란 무엇인가?


PyCharm을 활용하여 Python 프로젝트를 생성하기 전에 알아야할 사항이 있습니다. 바로 가상환경에 관한 것입니다.

학교 숙제가 아닌 실제 프로덕트 레벨에서 개발을 한다면 라이브러리나 프레임워크의 사용은 불가피합니다. 현대의 서비스는 빠른 배포가 가능해야 하고 시장의 반응에 맞춰 발 빠르게 수정할 수 있어야 하기 때문입니다. 우리가 라이브러리나 프레임워크를 사용하는 이유는 바로 여기에 있습니다. 많은 사람들이 서비스를 만들 때 필요한 공통적인 부분들을 체계화 해 놓은 것이 바로 라이브러리나 프레임워크입니다. 많은 개발자들에 의해 개발되고 검증되었기에 자신의 서비스 목적에 맞는 검토가 이루어진다면 사용하는 것이 당연시 됩니다.

하지만 이 때문에 문제가 발생하기도 합니다. 운영체제의 버전, 라이브러리간 호환성, 프레임워크 버전별 호환성등 여러가지 패키지들을 사용하면서 관리의 어려움을 겪게 됩니다. 언어의 버전과 패키지 버전간의 의존관계에서도 문제가 발생할 수 있습니다. 대표적으로 윈도우의 DLL 지옥이 있고 Python의 경우는 2버전에서 3버전으로 진화하면서 거의 10년간 개발자들을 힘들게 했습니다.

이와 같은 이유 때문에 Anaconda나 VirtualEnv같은 가상환경 관리자가 등장하게 됩니다. 가상환경 관리자는 프로젝트별, 그룹별로 각기 다른 환경을 관리해줌으로서 패키지들이 얽혀 발생하는 문제를 줄여줍니다. 버전에 맞는 환경변수 그룹을 만들어서 이름을 부여하고, 그룹마다 지정된 경로에 패키지들을 설치하는 것입니다. 그리고 사용할 때는 해당 경로에 있는 패키지들만 가져다가 사용하면 됩니다. 이렇게 관리를 하기 때문에 다른 환경변수 그룹으로 이동하면 전혀 다른 패키지들을 보게 됩니다.
이렇게 다른 환경을 가상 환경이라고 지칭하고 이들을 관리할 수 있는 도구를 가상환경 관리자라고 합니다. 대표적으로 Anaconda나 VirtualEnv가 존재합니다.


Python에서는 가상 환경을 제공합니다.
프로젝트 내에 버전별로 관리를 하거나, 프로젝트를 새로운 호스트 환경으로 이전할 때마다 필요한 패키지들을 다시 설치하는 것은 정말 번거롭습니다.

또한, 개발을 위해 많은 Python 패키지들을 설치하다 보면 실제 서비스 운영시 패키지 충돌에 의한 에러를 맞이할 수 있습니다.
따라서 프로젝트 또는 어플리케이션 별로 다른 환경들을 구축할 필요성이 생깁니다.

Python의 VirtualEnv가 이것을 제공합니다. VirtualEnv를 사용하면 어플리케이션별로 필요한 Python 패키지를 설치할 수 있습니다. 이 뿐만 아니라 필요한 패키지 목록을 따로 저장해 놓을 수 있기 때문에 새로운 환경에서도 필요한 환경세팅을 쉽고 빠르게 할 수 있습니다.



PyCharm Professional Edition 프로젝트 생성


Django 웹 어플리케이션을 만들 것이므로 Django를 선택합니다.

*주의
PyCharm Community Edition에서는 Django나 Flask를 지원하지 않습니다. 이는 PyCharm Professional Edition에서만 가능합니다.



프로젝트 폴더를 정합니다.

가상환경 관리자를 선택하고 기본 Interpreter도 설정합니다. 디폴트로 현재 설치된 Python 버전이 등록되어 있습니다.




Django 프로젝트가 생성되었습니다. PyCharm에서는 Django를 알아서 다운로드 받아 설치해 줍니다.
위의 django_test 디렉토리 아래 Project관련 세팅 파일과 라우팅관련 파일을 확인할 수 있습니다.
venv에서는 가상환경관련 데이터들이 포함되어 있는 것을 확인할 수 있습니다.


Django 프로젝트를 생성하였으니 이제 Application을 생성할 차례입니다.





PyCharm에서 Django Application을 생성하기 위해서는 mana.py를 실행해야 합니다.

Tools → Run manage.py Task를 선택합니다.

그러면 manage.py@[프로젝트 이름]으로 된 콘솔창이 하단에 나타나게 됩니다.

>startapp [어플리케이션 이름]  //새로운 어플리케이션을 생성하는 명령어

위의 명령어를 수행하면 어플리케이션을 생성할 수 있습니다.





그러면 위와 같이 새로운 어플리케이션이 생성된 것을 확인할 수 있습니다.

Application 설치 이후 Django에서 이 Application을 인식할 수 있도록 settings.py에 등록을 해주어야 합니다.



위에서 보는 것처럼 프로젝트의 settings.py 파일의 INSTALLED_APPS에 생성한 Application의 이름을 추가해줍니다.


패키지 설치하기


Ctrl + Alt + S를 누르면 바로 Setting 화면을 띄울 수 있습니다.

여기에서 Project → Project Interpreter를 누르면 설치된 Package들의 목록이 나타납니다.

오른쪽 상단의 녹색 +버튼을 누르면 패키지를 추가할 수 있습니다.

원하는 패키지를 검색한 후 아래의 Install Package를 누르면 설치가 완료됩니다.

설치된 패키지를 Django에서 사용하기 위해서는 프로젝트의 Settings.py에 등록을 해주어야 합니다.



설치된 패키지는 venv 디렉토리내의 Lib → site-packages에 위치하게 됩니다.

여기에서 dist-info가 붙은 디렉토리를 제외하고 나머지 패키지들 중 설치한 패키지 이름을 찾아 settings.py에 추가해주면 됩니다.

settings.py의 INSTALLED_APPS에 추가해주면 됩니다.



원격 저장소 설정



원격 서버에 코드를 배포하기 위해 Deployment 설정을 합니다.

Ctrl + Alt + S를 눌러서 Setting창을 띄웁니다.

Build, Execution, Deployment 탭의 Deployment를 누르면 새로운 원격 저장소를 연결할 수 있습니다.

상단의 녹색 버튼을 눌러서 원격 저장소를 추가합니다.

Type은 원격 저장소에 맞게 설정합니다.

예시로, AWS EC2 인스턴스에 연결을 수행합니다.

EC2의 경우 SSH Key를 사용하여 암호화된 연결을 수행하기 때문에 SFTP 타입을 선택합니다.

  • host → 도메인이나 원격 서버 IP 주소를 적어줍니다.
  • Root Path → 원격 서버 접속시 루트 디렉토리의 위치를 적어줍니다.
  • User name → 원격 접속 시 사용자 이름을 적어줍니다.
  • Password → Key pair를 선택해줍니다.

Key pair를 선택하면 Private key file을 선택하는 부분이 등장합니다.

AWS EC2를 생성할 때 받아 놓은 .pem 파일을 선택하면 됩니다.

host란 옆의 Test SFTP connection을 누르면 성공적으로 연결이 된 것을 확인할 수 있습니다.

만약 실패했다면 다음의 사항들을 검토하세요.

  • Host 부분에 http://를 적지 않았는지 확인한다. 이 부분에는 IP주소나 호스트 이름(예시, naver.com)만 적어주어야 합니다.
  • User name이 정확한지 확인한다. 경우에 따라서는 root가 아니라 다른 사용자 이름으로 원격접속이 가능할 수 있습니다.
  • 등록한 .pem 키가 유효한 키인지 확인한다. 이는 AWS Console에서 확인합니다.




Mapping에 대한 설정을 해주어야 배포가 가능합니다.

두번째 항목인 Deployment path on server “Test Server”에 배포할 위치를 적어주어야 합니다.

앞서 설정했던 루트 디렉토리 하위에 배포가 되게 하려면 /를 입력합니다.

루트 디렉토리 하위, 또 다른 디렉토리 내부에 배포하고 싶다면 /Test라는 방식으로 적어주면 됩니다.

여기까지 설정이 끝났다면 이제 배포할 수 있습니다.


성공적으로 연결하게 되면 원격 서버에 접속할 수 있습니다.

Tools → Deployment → Browse Remote Host를 누르면 우측에 원격 서버의 디렉토리 정보가 나타나게 됩니다. 이제 생성한 코드를 원격 서버에 배포할 수 있습니다.

댓글()