내가 말을 걸었을 때, 어떤 말인지 인지하고 대답을 해주는 '하루하루' 를 만들어 보았습니다.
여기에서 더 나아가는 방향에 대해 다루어 보려고 합니다.
지금은 계속 파이썬 코드가 실행이 되야 하므로 내가 쓰는 컴퓨터를 항상 켜놓아야 합니다.
이렇듯 항상 컴퓨터가 켜져있어서 코드가 실행되게 만드는 것을 '서버' 라고 부릅니다.
우리 컴퓨터에서 하루하루 코드를 24시간 실행시키게 된다면 '서버' 의 기능을 수행한다고 볼 수 있어요.
내 컴퓨터를 계속 켜놓아야 하는 상황을 개선하는 방법을 몇 가지 소개드리면
1. 라즈베리파이와 같은 미니pc를 사서 와이파이 등으로 연결시킨 후, 코드를 실행시켜 계속 켜놓는다.
2. 네이버, 아마존, 구글 등의 서버 제공 서비스를 이용하여, 코드를 계속 실행시킨다.
각기 장단점이 있지만, 2번의 경우 무료로 이용이 가능하기 때문에
이 글에서는 2번을 다뤄보고자 합니다.
네이버, 아마존, 구글 등에서는 무료로 코드를 실행할 수 있게 해주는 서비스를 제공하는데요
보통 고사양을 요구하지 않을 경우 최초 1 년 동안에는 무료로 이용할 수 있습니다.
우리는 가장 저사양의 컴퓨터에서도 무리없이 돌아가는 수준이기 때문에
무료 이용기간인 1년이 지나도 크게 무리가 안되는 정도의 금액으로 유지가 가능합니다.
(여기서 1년, 저기서 1년... 식으로 하게 되면 상당히 길게 사용이 가능하겠죠?)
1. 네이버 클라우드 플랫폼 에 회원가입 (네이버 클라우드 와는 다른 서비스입니다!)
2. 회원가입시 카드정보 입력은 처음 이용시 무료이므로 걱정하지 말고 입력해도 됩니다.
3. All products -> server 클릭
4. 부팅 디스크 크기 -> 제일 작게,
이미지 타입 -> OS
OS 이미지 타입 -> ubuntu
서버 타입 -> Micro

5. ubuntu 16.04 버전을 선택하고 다음을 누른다.

6. 인증키는 비밀번호를 만든다는 의미입니다. 만들면 자동으로 다운로드 되는데, 이를 분실하지 마세요.
7. 네트워크 접근 설정과 최종 확인은 특별히 확인할 사항이 없습니다. 다음 다음 하면서 넘어가 주세요~
여기까지 다 되었다면 아래와 같은 화면이 나올 겁니다.(오른쪽 버튼을 누르면 세부사항이 보여요)

지금까지의 작업은 서비스 제공자로부터 컴퓨터를 할당받는 것이었습니다.
이제, 컴퓨터를 사용하면 되겠습니다.
이 단계를 위해 필요한 것이 몇 가지 있습니다.
1. 외부접속이 가능하게끔 해주는 포트포워딩 작업
2. 코드 실행을 위한 프로그램인 putty
3. 파일을 전송을 위한 프로그램인 winscp 또는 filezilla
4. 접속할 때 로그인 하기 위한 아이디와 비밀번호
1번은 왼쪽 상단에 포트 포워딩 이라는 버튼이 있는데,
이 곳에서 포트번호(컴퓨터 안의 특정 골목) 를 입력하고 추가 버튼을 눌러줍니다. (예제에서는 8888)
여기서 다루는 정보는 앞으로 '어디로' 접속하면 되는지에 사용됩니다.
서버 접속용 공인 IP 와 외부 포트를 복사하여 보관해둡니다.
2번 putty 프로그램은 포트 포워딩 설정하는 곳에 링크가 있으므로 그곳에서 받으면 되겠습니다.
만약 버튼을 찾지 못하겠다면, 검색 사이트에서 putty 라고 검색 후 다운받으시면 됩니다.
3번 프로그램은 검색 사이트에서 검색 후 다운받으시면 됩니다.
(지금 당장은 사용하지 않습니다.)
4번은 '관리자 비밀번호 확인' 버튼을 눌러서 알아볼 수 있습니다.
서버 위에 마우스를 올려두고, 오른쪽 클릭을 하면 관리자 비밀번호 확인이 나옵니다.
여기 들어가서 아까 다운받은 인증키(비밀번호) 를 이용하여 접속할 아이디와 비밀번호를 얻어냅니다.

여기에서 알아봅니다.

여기에서 아이디와 비밀번호를 알아내었으면, 이제 모든 준비가 끝났습니다.
putty 를 실행하면 다음과 같은 화면이 보일 것입니다.

여기에서 HostName 부분에 아까 알아두었던 서버 접속용 공인 IP 를 넣어줍니다.
오른쪽의 port 는 우리가 설정한 8888 을 넣어줍니다.
이것으로 우리는 해당 컴퓨터의 '장소' 로 접속을 할 수 있게 되었습니다.
IP 와 port 를 적고나면, 이것을 항상 외우는 것이 쉽지 않기 때문에
saved sessions 에 내가 기억하고자 하는 이름을 넣고
오른쪽 save 버튼으로 이 접속 장소를 저장해 줍니다.

접속을 한 이후에는 로그인을 해야 되는데요,
login as: 뒤에는 root 라고 쓰고 엔터를 눌러줍니다.
이 직후에는 비밀번호를 입력하게 되는데, 아까 알아두었던 관리자 비밀번호를 적어줍니다.
$$ 내가 친 글자가 화면에 나오지 않는다면 정상적으로 입력되고 있다는 것입니다!!
위 그림과 같이, 몇 번 정도는 비밀번호를 틀리게 적어도 문제가 되지 않아요.
까만 것은 화면이고 흰 것은 글자... 라는 것이 뭔가 많이 생소할 수 있지만
이 것도 엄연한 컴퓨터랍니다!
여기에서도 우리가 윈도우에서 했던 것과 마찬가지로 파이썬을 실행시킬 수 있어요.
우리는 함수들을 따로따로 파일로 저장했었죠?
이 파일들을 한 폴더에 몰아넣고, 원격 서버에 파일을 전송시켜 볼게요, 파일 전송 프로그램을 사용합니다.
winscp 또는 filezilla 에서 접속시에도 putty 와 동일하게 ip 와 포트를 이용하면 됩니다.
to do:
check_msg 함수 try: catch:
controller import time 추가
dust_ city 판별 break문 추가
이제부터는 아래의 코드들을 순서대로 입력해서 설치를 진행합니다.
apt install 은 우분투에서 프로그램 설치를 할 때 쓰이는 코드입니다.
pip install 은 파이썬에서 프로그램 설치를 할 때 쓰이는 코드입니다.
이전에 여러 번 다룬 적이 있지요?
한 줄 입력 후, 설치가 완료되었을 때 다음 줄로 넘어가면 됩니다.
apt install python3-pip
pip install --upgrade pip
pip install bs4
pip install python-telegram-bot
pip install xmltodict
간단한 명령어 몇 가지를 알아보면?
ls -> 현재 폴더에 무엇이 있는지 알아보는 명령어 입니다.
cd .. -> 상위 폴더로 이동합니다.
cd 폴더이름 -> 해당 폴더로 이동합니다.
python3 파일이름 -> 파이썬 파일을 실행시킵니다.
기능이 추가된다면?
새로운 함수가 들어있는 파일을 추가해주고
controller 파일을 새로운 버전으로 갈아 끼워주면 됩니다!
혹시 파일을 옮기는 것이 불편하다면?
리눅스에서도 코드를 작성할 수 있는 방법이 있습니다.
vi controller.py
를 해보면 파일 안에 들어있는 코드가 보일텐데요
여기에서 i 를 누르면 코드의 수정이 가능하게 됩니다.
자동으로 들여쓰기가 되지는 않지만, 그래도 엄연한 코드 편집기에요.
코드를 수정한 이후에는
esc 를 누르고
wq! 를 입력 후 엔터를 눌러주면 파일의 수정이 완료 됩니다.
혹시 수정했는데 저장은 하고 싶지 않다면?
esc 를 누르고
q! 를 입력 후 엔터를 눌러주세요
우리는 간단하게 controller 파일 하나에 제어하는 기능을 전부 넣었기 때문에
python3 controller.py
명령어로 24시간 돌아가는 우리 친구를 만들 수 있습니다.
이제, 제대로 작동하는지
말을 걸어 볼까요?
'[일상봇 만들기] 나의 하루하루를 도와줄 친구!' 카테고리의 다른 글
level_01_part_2 (0) | 2019.08.02 |
---|---|
level_01_part_1 (0) | 2019.08.02 |
200%_part_02 (0) | 2019.08.01 |
200%_part_01 (0) | 2019.08.01 |
level_04_part_3 (0) | 2019.07.23 |