[만들어야 할 것]
- 유저가 사용하며 서버와 소통할 클라이언트 (html, css, javascript)
- 데이터를 보관할 DB (python - ex. mongoDB)
- 화면 UI 와 DB 데이터를 사용자 웹으로 보내주는 서버 (python - ex. Flask)
[기본으로 설치할 인터프리터 목록]
flask, pymongo, dnspython, certifi,
requests, bs4(크롤링)
.
.
[만드는 순서]
[들어가기]
1. 조각기능 구현
- 어떤기능이 필요할지 정리하기
- 필요한 기능이 작동가능할지 미리 만들어보기
.
[서버 만들기]
1. Flask 다운받기
- Flask 프레임워크 : 서버 구동에 필요한 코드를 모아둔 패키지로 서버만드는 밀키트라고 보면됨
2. 서버 기본 폴더구조 만들기
- static 폴더 - 이미지, css 파일 넣기
- templates 폴더 - HTML 파일 넣기
- app.py 파일 - 코드작성 (Python)
.
[DB 만들기]
1. Python 으로 데이터 DB에 저장하기
- 먼저, 필요한 기능을 가진 패키지를 설치해 venv 공구함에 모아두기
- 웹 스크랩핑 (크롤링) 해서 필요한 데이터를 가져오기
- 가져온 데이터 혹은 생성한 데이터를 DB 에 저장하기
.
[클라이언트 만들기]
1. HTML 로 웹사이트 뼈대를 만든다.
2. CSS 로 꾸민다.
- 직접 디자인하는 것이 아니라면 부트스트랩을 이용해 요소 가져다 쓰기
- 폰트를 넣기
- 모바일 고려한 % 처리
3. javascript 를 이용해 움직임을 만든다.
- jQuery 로 HTML 제어 코드 짜기
** jQuery: HTML 요소 조작하는 간결한 javascript를 미리 작성해둔 코드 모음 즉, 라이브러리)
- Ajax 로 새로고침 없이 서버에 필요한 부분만 데이터 요청하는 코드 짜기
** Ajax : jQuery 에서 제공하는 기능, JS 로도 만들 수는 있지만 코드가 너무 복잡해서 jQuery 의 Ajax를 쓰는 것을 추천한다.
(관련 내용 : Ajax 는 꼭 jQuery를 써야하나?, AJAX란 무엇인가?)
.
[서버 - 클라 - DB 연결]
1. 서버 - 클라 - DB 연결
- ajax 를 사용해서 서버와 get, post 방식으로 정보 주고받기
- db 의 정보를 서버에 연동시켜서 클라에 보내주기
.
[배포하기]
1. 필요한 것들 구매
- 도메인 구매하기
Ex. 가비아 (gabia) 에서 도메인 구매
- 클라우드 컴퓨터 구매하기
Ex. AWS에서 EC2 서버구매
- 서버에 파일 업로드를 도와주는 프로그램 설치
Ex. filezilla(파일질라) 설치
2. 서버 배포하기
-
filezilla(파일질라)로 완성한 서버파일을 AWS EC2에 업로드
-
터미널로 클라우드 컴퓨터에 원격접속해서 패키지 깔고, 서버 실행
터미널키기
sudo chmod 400 “키페어입력” //
“비번입력” //
ssh -i “키페어입력” ubuntu@퍼블릭 IPv4 주소 입력 //
ls //
ubuntu //
ls //
(폴더명) //
cd (폴더명) //
ls //
app.py static templates //
Python3 app.py //
(서버실행)
패키지(python3, pip 등..)설치 > 메모장에 적어둠
-
AWS 에서 서버 포트 열어주기 (5000, 80) > 연결완료
-
터미널을 닫아도 서버가 계속 실행되게 해주기 (nohup)
ctrl C //
nohup python3 app.py & //
-
서버 유지보수하기
파일을 바꾸려면, 먼저 서버를 강제종료하고
파일질라에서 파일바꾼다음
다시 서버를 연결 & 서버 계속 실행되게 해줘야 함
서버종료키
ps -ef | grep 'python3 app.py' | awk '{print $2}' | xargs kill
-
도메인 연결하기
gabia 에서 구매한 도메인에 IP 주소 연결해서 도메인 완성하기
-
html 에서 og 태그 만들어주기
링크를 전달했을 때 간략한 소개와 이미지등을 보여줄 수 있도록