2021. 12. 17. 01:05ㆍ개발일지/내일배움캠프 TIL

웹 프로그래밍 개발 5주차 과정 1회독을 마치게 되었다.
사실 오늘은 몸이 좋지 않아서 많이 힘들었는데
악으로 깡으로 버틴 것 같다.
두 곳의 병원을 방문했고
결과적으로 경추에 문제가 생겼다는 것을 알게되었다.
몸이 건강해야 돈도 벌 수 있지 않겠는가.
그런데 아이러니 하게도 돈을 벌기 위해
건강은 사실 조금 포기하게 되어버리는 상황이 생기게 된다.
그리고 번 돈으로 다시 건강을 회복하려 하는...
아무튼 여러분들은 일이나 공부를 핑계로
운동이나 스트레칭을 소홀히 하지 말고
건강을 챙기시길 바란다...

오늘은 결과적으로 나만의 웹페이지를 만들었다.
수업을 꼼꼼히 들으면 누구나 만들 수 있지만
코딩을 처음 시작하는 초보자들이
어떠한 정보도 제공받지 않은 상태에서
웹페이지를 3-4일 동안 뚝딱하고
만들어내는 것은 불가능에 가깝다.
나와 같은 과정을 듣고 있는 혹은 들었거나
사실 따라하기만 했어도 똑같은 기능의
다른 UI를 보여주는 웹사이트를 만들어내는 것이 가능했을 것이다.
http://noze-fan.shop/
노제 팬명록
no:ze 님께 응원 한마디를 남기고 가주세요~!
noze-fan.shop
올해 스타트업 마케팅팀에서 인턴으로 일할 무렵
스우파 댄서들이 핫이슈였는데,
그러다보니 우연히 노제 님의 'Hey Mama' 댄스를
접하게 되었고 정말 멋있다는 생각이 들었다.
Flask, pymongo, dnspython, bs4, requests 등을
파이썬 설정에서 패키지 설치를 하고
지금까지 만든 HTML 파일에
backend 파일을 연결하는 과정을 거쳤다.
POST, GET 요청을 연습하여
팬명록을 만드는 데 성공했다.
그 다음은 역시 다른 사람들도 나의 웹페이지를
볼 수 있도록 하는 것이었다.
- AWS 클라우드 컴퓨팅 서비스
- Git bash
- FileZilla Client
- 가비아 접속해 도메인 생성
AWS 클라우드 컴퓨팅 서비스를 활용하여
나만의 컴퓨터를 사용할 수 있었다.
리눅스 무료 OS를 사용하기 때문에 편리하다.
인스턴스로 들어가서 시작을 누른다.
Ubuntu server 20.04를 선택한다.
(컴퓨터 1대에 대해서 무료이다.)
검토 및 시작->시작하기를 누른다.
새 키페어 선택을 선택하고 키 페어 이름을 아무거나 정한다.
키페어 다운로드를 누르고 저장한다.
인스턴스를 시작하고 인스턴스 보기를 누른다.
실행 중 상태이면 클릭한다.
(오른쪽 버튼 인스턴스 중지->컴퓨터 종료, 인스턴스 종료->컴퓨터 반납)

이후 Git bash를 실행한다.
windows os의 경우 '$ ssh -i '를 먼저 적는다.
키페어를 Git bash에 드래그 앤 드랍한다.
'ubuntu@'를 이어 적는다.
AWS 인스턴스 창에 IPv4 주소를 복사한다.
그리고 붙여넣을 때 windows os의 경우
오른쪽 버튼을 눌러 paste를 클릭해 붙여넣기 한다.
엔터를 누르면 내가 받은 리눅스 컴퓨터를 켠 상태가 된다.
리눅스의 경우 명령어로 컴퓨터를 다룰 수 있다.
수 많은 명령어가 있기 때문에 우선은 필요한 명령어 몇 개만
알아두면 유용하다.
mkdir A : A 폴더를 생성한다.
ls: 현재 위치에 있는 폴더를 본다.
cd A : A 폴더 내부(하위)로 들어간다.
cd .. : 상위 폴더로 간다.
python 파일명.py: 잘 실행되는지 확인 가능하다.
화살표 위 키, 아래 키: 최근 또는 나중에 썼던 명령어를 불러올 수 있다.
또한 서버를 세팅하기 위해 거쳐야 하는
(또는 거치면 좋은)
작업들을 진행했다.
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
이후 Git bash에 입력하면 python3 라고 입력해야하는 것을
python으로 입력해도 되게 한다.
sudo apt-get update
sudo apt-get install -y python3-pip
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
마찬가지로 패키지 설치 시 pip가 필요하다.
pip을 설치하고
pip3를 pip으로 입력할 수 있게 한다.
한 줄씩 차례로 복사해서 입력하자.
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000
localhost를 5000주는 것을 안하도록 하게 한다.
그리고 하나 더!
ps -ef | grep 'python app.py' | awk '{print $2}' | xargs kill
: 강제종료가 가능하다.(일반 종료는 ctrl + c)
FileZilla Client 를 실행해보자.
왼쪽 로컬 사이트가 나의 실제 컴퓨터,
오른쪽 리모트 사이트가 가상으로 받은 리눅스 컴퓨터이다.
동그라미 친 부분을 클릭하여 연결을 시도해보자.
New site를 누르고 이름을 아무거나 설정한다.
프로토콜은 SFTP 로 진행한다.
호스트는 앞서 IPv4 주소를 복사하여 붙여넣는다.
키포트는 '22'로 정해져 있는 값이다. 넣어주자.
로그온 유형을 키파일로 설정한다.
키파일을 찾아와 넣어주고 사용자는 ubuntu 로 진행한다.
연결을 눌러 완료한다.
HTML 파일과 .py 파일 등을 오른쪽으로 그대로 옮겨놓으면 성공!
...인 줄 알았겠지만 Flask, pymongo 를 안 깔아서 안 된다.
pip install flask, pip install pymongo, pip install dnspython을 차례로 Git bash에 입력한다.
마지막으로 python 파일명.py를 입력하면 실행이 완료된다...!
이후 나의 IPv4 주소에 5000을 적어 인터넷 접속을 시도하자!
안 된다.
왜냐하면 5000으로 접속할 수 있는 권한이 아직 없기 때문이다...
AWS 인스턴스 -> 보안
으로 들어가보자.
보안그룹을 눌러보자.
'Edit inbound rules' 를 클릭하자.
규칙추가를 눌러 포트 범위 5000,
Anywhere IPv4 로 설정하고 규칙을 저장한다.
규칙을 저장할 때 하나를 더 추가해주면 굳이 5000을 적지 않고도,
즉 IPv4의 주소만으로도 자신이 만든 웹페이지에 접속하는 것이 가능하다.
(리눅스에서 기본으로 제공하는 포트포워딩을 이용하는 것이다만...
어떻게 하는지는 비밀~)

이러면 내가 만든 주소를 입력하는 모든 사람이
나의 웹페이지를 보며 반응할 수 있게 된다.
WOW
정말 고생했다...
복습을 위해 밤을 새며 개발일지를 작성하는 나의 모습을 보며
감동받았다.
그러나 아직 해결 못한 부분이 있다.
바로 Git bash를 종료하면 연동되는 모든 것이 종료된다.
그래서 Git bash를 종료해도 연동이 가능하기 위해
Git bash에 마무리 작업을 진행한다.
nohup python 파일명.py &
를 입력한다.
Git bash를 종료해도 연동이 되는 것을 확인할 수 있다.
(끄는 법은 이 글 위에 적어둔 강제종료 코드 입력)
정말정말 마지막으로 가비아에서 도메인을 만들어
연동하면 나만의 웹페이지 완성!
DNS를 생성할 때 호스트 이름은 @ 로 지정하고
IP주소는 인스턴스 IP 주소 (숫자와 '.'만 들어가도록!!)
를 입력하고 확인 후 저장한다.
(TMI 상식!!! .shop 1년권을 550원에 구입했다...)

마무리하는 김에 여담으로
코딩에 미쳐 날밤을 새고 있지만...
사실 대학교 기말시험이 이틀남았는데
대학 공부를 많이 하지 못해 조금 아쉽다.
어쨌거나... 웹페이지 만들기 성공!
그럼 내일 만나요~ 뿅
'개발일지 > 내일배움캠프 TIL' 카테고리의 다른 글
6일차 내일배움캠프 개발일지 (0) | 2021.12.20 |
---|---|
5일차 내일배움캠프 개발일지 (0) | 2021.12.18 |
3일차 내일배움캠프 개발일지 (0) | 2021.12.15 |
2일차 내일배움캠프 개발일지 (0) | 2021.12.14 |
1일차 내일배움캠프 개발일지 (0) | 2021.12.13 |