먹고 기도하고 코딩하라

파이썬 장고로 카카오 i 오픈빌더 챗봇 만들기 (1) - 가상환경 설정, Django 프로젝트와 앱 만들기 본문

개발일지

파이썬 장고로 카카오 i 오픈빌더 챗봇 만들기 (1) - 가상환경 설정, Django 프로젝트와 앱 만들기

사과먹는사람 2020. 2. 23. 22:07
728x90
728x90

 

Python Django 카카오 i 오픈빌더 챗봇 만들기 튜토리얼에 오신 것을 환영합니다. 이 시리즈는 Amazon EC2로 서버 컴퓨터를 받은 뒤 실제로 학식봇의 기본이 되는 서버 설정을 하고 간단한 스킬을 만드는 과정까지 세세하게 다룹니다. 만들어둔 챗봇은 서버 구축 후에 어떤 코드를 짜느냐에 따라 중고교 급식, 대학교 학식, 날씨, 주가, 미세먼지, 버스 도착 시간 등 다양하게 사용할 수 있습니다.

 

(!) 필요한 것

- Python3 기초 지식

- Linux 명령어 (cd, mkdir, rm, cat, vi, pwd, ls, clr 등..)

- vim 편집기 명령어 (i, d, q, q!, wq, wq!, p, y 등..)

- 카카오 i 오픈빌더 OBT 계정 받아두기

- Amazon EC2에서 서버 받아두기, 윈도우라면 putty 설치해서 접속 성공까지 (참고)

 

Django 지식이 있다면 금상첨화이지만 없어도 괜찮습니다. 여기서 기초적인 부분을 배우면 됩니다. 물론 Django 처음 학습용으로는 블로그를 많이 만들지만 이 다음에 블로그를 만들어도 괜찮습니다. 

아래 제 작업 환경을 적어두겠습니다. 이와 다른 환경에서는 이 포스팅이 크게 도움이 안 될 수도 있습니다(특히 OS 자체가 다른 경우). 참고하시길 바랍니다.

 

 

(!) 본인의 환경

- Amazon EC2 Linux Ubuntu 16.04 LTS

- Apache 2.4.18

- Python 3.5.2

- Django 2.2.10

 


 

처음 접속했다면 pwd 를 해봅니다. /home/ubuntu 라고 나올 건데 이게 최초 접속했을 때의 경로입니다.

경로를 확인했다면 ls 를 입력합니다. 아무것도 없는 걸 확인할 수 있습니다. 이 무(無)의 환경에서 착착 쌓아나가 자동 채팅봇을 만드는 것이 이 시리즈의 목표입니다.

이 포스팅에서는 최초 가상환경 설정과 Django 프로젝트, 앱을 만드는 것을 목표로 합니다.

이제 시작해봅시다. 다음을 입력합니다.

 

$ sudo apt update
$ sudo apt install python3-pip
$ pip install --upgrade pip
$ sudo pip install django

 

일단 apt update부터 해준 다음 python3-pip을 설치해줍니다. apt란 코어 라이브러리와 함께 동작하는 자유 사용자 인터페이스로 데비안 GNU/리눅스 배포판 계열 배포판에서 소프트웨어를 설치하고 제거하는 일을 한다는 설명이 붙어 있는데요. 쉽게 말해 우분투를 포함한 데비안 계열 컴퓨터에서 여러 패키지 설치, 제거를 도와주는 겁니다.

갓 python3-pip을 설치했을 때 이 버전은 아주 낮습니다. 지금 20.x까지 나왔는데 8.x이라 django를 설치할 수 없습니다. 참고로, pip은 파이썬으로 작성된 패키지 소프트웨어를 설치, 관리하는 패키지 관리 시스템을 가리킵니다. 일단 pip 버전을 업그레이드한 다음에 django를 설치할 수 있습니다.

sudo를 빼고 pip install django 를 했을 때 Permission denied 하면서 거부될 수 있는데요, sudo 를 앞에 붙여 설치하거나 pip install django --user 로 설치할 수 있음을 참고하시기 바랍니다.

다음을 입력합니다.

 

$ mkdir [base_name]
$ cd [base_name]
$ sudo apt-get install python3-venv
$ python3 -m venv [venv_name]
$ source [venv_name]/bin/activate

 

프로젝트의 기반이 되는 폴더 하나를 만들어 이동합니다. 그런 다음 python3-venv 를 설치합니다. 가상환경을 만들 수 있도록 하는 건데요. 가상환경을 만드는 이유는 어떤 프로젝트 동작을 위해 적합한 환경설정을 하기 위해서입니다. 우리가 만들 학식봇은 지금은 django, apache 정도만 설치하겠지만 후에 웹크롤링을 하려면 beautifulsoup, selenium 및 드라이버 설치도 필요합니다. 이런 게 중구난방 흩어져있는 것보다 가상환경 활성화를 해두고 설치해서 사용하면 편하겠죠? 물론 안 만들어도 좋지만 이 가이드라인에서는 가상환경을 만드는 방법만 다룹니다.

python3 -m venv [venv_name]으로 가상환경 폴더를 만듭니다. venv_name 은 아무거나 하고 싶은 걸로 합니다. 저는 myvenv 로 이름을 지었습니다. 참고로 가상환경 디렉토리는 베이스 디렉토리 밖에 있어도 되지만 웬만해서는 프로젝트가 있는 폴더와 같은 위치에 있도록 설정해줍시다. (저는 처음에 이동하는 걸 까먹어서 가상환경 디렉토리가 밖에 있습니다 -_-)

source [myvenv]/bin/activate 는 만들어둔 가상환경을 활성화하는 명령어입니다. 앞으로 서버에 접속해서 우리가 만들 봇 관련 일을 할 때는 반드시 가상환경을 활성화하고 작업하도록 합니다.

다음을 입력합니다.

 

$ pip install --upgrade pip
$ pip install django
$ django-admin startproject [project_name]
$ python3 manage.py startapp [app_name]
$ python3 manage.py migrate

 

아까 입력했던 것 같은 pip upgrade 명령어를 실행해줍니다. 이건 아까 했던 거 같은데 왜 또 하는 걸까요? 그것은 가상환경은 가상환경 밖의 리눅스 환경과 별개이기 때문에 pip이 업데이트되지 않은 갓 나온 상태이기 때문입니다. 이처럼 가상환경과 그 밖이 별개라는 점을 기억하고 가도록 합시다. 마찬가지로 django 도 다시 설치해줍니다.

현재 위치는 /home/ubuntu/[base_name]입니다. 여기서 프로젝트를 시작합니다. 프로젝트 이름은 아무거나 하고 싶은 걸로 짓습니다. 저는 학식봇 프로젝트를 할 것이기 때문에 haksik_project 라고 지어봤습니다.

startproject 는 [project_name]라는 이름의 디렉토리를 만들어 주면서 그 안에 기본적인 django 프로젝트를 시작할 수 있는 여러 파일과 디렉토리들을 함께 만드는 명령어입니다. django-admin 은 django의 커맨드라인 유틸리티인데요, 관리자 레벨에서 할 수 있는 여러 일들을 해줍니다.

startapp 은 [app_name]이라는 이름의 디렉토리를 만들어 주면서 그 안에 기본적인 django 앱을 시작할 수 있는 여러 파일들을 만들어줍니다.

django 프로젝트와 앱의 차이는 뭘까요? 프로젝트는 앱을 한 개든 다수 개든 담을 수 있고 그와 관련된 configuration도 함께 담아 하나의 웹사이트를 구성하게 합니다. 앱은 하나의 웹앱(블로그, 학식봇 서버 등) 기능만 하는 것이라고 생각하면 됩니다. 앱은 프로젝트 A와 B, C 등 동시에 여러 프로젝트에 포함될 수 있습니다.

manage.py 는 django 프로젝트와 다양한 방법으로 상호작용 하는 커맨드라인의 유틸리티입니다. django-admin 이나 manage.py 나 거의 비슷한 역할을 하는데요. 일반적인 django 프로젝트를 작업할 때는 manage.py 를 사용하는 것이 더 쉽다고 합니다. 관련된 내용은 여기에서 찾아볼 수 있습니다.

그런 다음 migrate를 해줍니다. migrate 는 사실 굳이 할 필요는 없습니다. 우리는 테스트용으로도 runserver 를 이용하지 않을 거거든요. migrate 전에 python3 manage.py runserver 를 하게 되면 migrate 하라고 하면서 경량 서버가 돌아갑니다. 참고로 우리가 runserver를 이용하지 않는 이유는 runserver 로 확인할 게 없을 뿐더러 그러지도 못하기 때문입니다. 이해가 안 되신다고요? 보다 보면 압니다.

 

이쯤에서 한 번 디렉토리 구조를 살펴봅니다. 아마 여러분의 디렉토리 구조는 이렇게 생겼을 겁니다.

 

# /home/ubuntu 밑에
[base_name]
  - db.sqlite3
  - [app_name]
  - [project_name]
  - [venv_name]
  - manage.py

 

여기까지 했다면 좋습니다! 이 포스팅에서 목표한 일들을 끝냈습니다.

 

다음 포스팅에서는 프로젝트 셋팅과 apache 설치, django 앱을 apache 서버를 통해 배포할 수 있도록 mod-wsgi 와 연동하는 방법을 다루겠습니다.

감사합니다. ^^



다음 글 보기

 

파이썬 장고로 카카오 i 오픈빌더 챗봇 만들기 (2) - 프로젝트 셋팅: Apache2 + mod-wsgi로 Django 앱 배포

이번 포스팅에서는 전 포스팅에서 만들었던 프로젝트 기본 셋팅을 하고 apache 서버를 설치한 다음 mod-wsgi 로 Django 앱을 배포할 수 있도록 설정하는 것이 목표입니다. 일단 위치가 /home/ubuntu 이고 �

dev-dain.tistory.com

 

Reference

django-admin and manage.py

카카오톡 자동응답 API 사용후기(1) - 옐로아이디 신청 및 AWS 서버 등록, 접속

 

 

728x90
반응형
Comments