개발자 , Trend 를 파헤치 다 . :: PyCharm 개발 환경 세팅 하 기 
 PyCharm 개발 환경 세팅 하 기 
 개발 을 파헤치 다 / Django | 2018 . 4 . 30 . 14 : 00 
 Python 3 . 6 설치 를 진행 합니다 . 
 설치 하 려면 다음 의 링크 를 참조 하 십시오 . 
 Python 설치 가 완료 되 었 는지 확인 하 기 위해 Window + R 키 를 누릅니다 . 
 cmd 를 입력 하 여 콘 솔창 을 띄웁니다 . 
 Python 3 . 6 이 라고 콘 솔창 에 표시 되 면 정상 적 으로 설치 가 완료 된 것 입니다 . 
 PyCharm 은 Jetbrain 에서 만든 강력 한 Python 개발 도구 입니다 . 
 PyCharm 은 Community Edition 과 Professional Edition 이 있 으며 , 본 글 에서 는 Professional Edition 을 기준 으로 설명 합니다 . 
 PyCharm 을 설치 하 기 위해서 다음 의 링크 를 참조 하 십시오 . 
 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 EC 2 인 스턴스 에 연결 을 수행 합니다 . 
 EC 2 의 경우 SSH Key 를 사용 하 여 암호 화 된 연결 을 수행 하 기 때문 에 SFTP 타입 을 선택 합니다 . 
 host → 도메인 이나 원격 서버 IP 주소 를 적 어 줍니다 . 
 Root Path → 원격 서버 접속 시 루트 디렉 토리 의 위치 를 적 어 줍니다 . 
 User name → 원격 접속 시 사용 자 이름 을 적 어 줍니다 . 
 Password → Key pair 를 선택 해줍니다 . 
 Key pair 를 선택 하 면 Private key file 을 선택 하 는 부분 이 등장 합니다 . 
 AWS EC 2 를 생성 할 때 받 아 놓 은 . 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 를 누르 면 우측 에 원격 서버 의 디렉 토리 정보 가 나타나 게 됩니다 . 이제 생성 한 코드 를 원격 서버 에 배포 할 수 있 습니다 . 
 ' 개발 을 파헤치 다 > Django ' 카테고리 의 다른 글 
 Django REST Framework 를 사용 하 다 - 3 ( 1 ) 
 Django REST Framework 를 사용 하 다 - 2 ( 0 ) 
 Django REST Framework 를 사용 하 다 - 1 ( 0 ) 
 ViewSet list 의 super ( ) 메서 드 파헤치 기 ( 0 ) 
 Django 에서 HTML 태그 추출 하 기 - Beautiful Soup ( 0 ) 
 PyCharm 개발 환경 세팅 하 기 ( 0 ) 
 태그 : Django , JetBerains , pycharm , Python , 개발 , 파이썬 , 프로그래밍