TIL: 항해99 웹개발 종합반 5주차
220103_MON
5-4.
- 데이터를 먼저 모아두는 작업을 진행한다.
5-6.
- Moviestar API 설계
- pymongo find 기능에서 sort 하기
- movie_star = list(db.mystar.find({}, {'_id': False}).sort('like = 정렬하고 싶은 변수', -1 = 내림차순))
5-7.
- function 에 변수를 받는 경우
function likeStar(name) {
$.ajax({
type: 'POST',
url: '/api/like',
data: {name_give:name},
success: function (response) {
alert(response['msg']);
window.location.reload()
}
});
}
5-9.
- 어떠한 컴퓨터도 서버가 될 수 있다.
- 서버: 브라우저 (클라이언트) 가 요청을 하면 브라우저가 그릴 것을 주거나 혹은 ajax 콜을 하면 데이터를 준다.
- 서버가 항상 켜져 있어야하고 Public IP address로 웹 서비스에 모두가 접근할 수 있어야 한다.
- 편의를 위해 AWS 클라우드 서비스에서 EC2를 구입하여 서버를 관리한다.
5-10.
- 컴퓨터 한 대 한 대를 '인스턴스' 라고 부른다.
- Linux 운영 체제: 오픈 소스 = 무료 -> 여러 계열이 있고, ubuntu가 보편적임 (초심자에게 좋다)
- 터미널에서 Linux os 원격 접속
- sudo chmod 400 (keypair 파일 드래그&드랖)
- ssh -i (keypair file) ubuntu@(인스턴스 퍼블릭 IPv4 주소)
-> ubuntu: Permission denied (publickey).
-> 해결 방법:- sudo nano /etc/ssh/sshd_config (keypair file)
- #PermitRootLogin prohibit-password 하단에 PermitRootLogin yes 추가 후 저장 & 나감
- ssh -i (keypair file) ubuntu@(인스턴스 퍼블릭 IPv4 주소) 으로 다시 시작
- ubuntu 기초 문법
- mkdir filename: filename 이라는 directory 생성
- ls: 내 위치에 있는 파일 정렬
- cd filename: filename 에 들어가기
- cd ..: 현재 file에서 나가기
5-11.
- Filezilla: 서버에 파일을 업로드/다운로드
- server에서도 파이썬, 몽고db 등등 다운로드 필수-> 통상적으로 인프라 엔지니어나 개발팀장님들이 하신다.
- sudo chmod 755 initial_ec2.sh: initial_ec2.sh 의 권한 변경
- ./initial_ec2.sh: 파일 실행
5-12.
- ubuntu 명령어
- pip install (flask, pymongo..): 파일 다운로드
5-13.
- AWS에서 포트 열어주기
-ec2의 보안그룹의 인바운드 규칙 편집 -> Custom TCP 5000, Custom TCP 80, Custom TCP 27017 추가 - 돌아가는 app.py 끄는 법: Ctrl + C
5-14.
- Robo3T를 통해 서버의 pymongo에 접속
- Create -> address 에 ec2 public ipv4 address -> authentication -> perform & user name/password 기입 -> 'test' -> connect
- server user/pw 변경 시: ubuntu setting 전에 initial_ec2.sh 를 파이참에 가져온 후, 변경
- pymongo 계정 접속: client = MongoClient('mongodb://test(user):test(pw)@localhost', 27017)
- app.py, templates, static 을 옮긴 후 실행.
5-15.
-http의 기본 포트: 80 -> 생략 가능 -> 80포트로 들어오는 요청을 5000 포트로 돌아가는 flask에 포워딩! (initial setting 때 되어 있음)
5-16.
- 터미널을 껐을 때도 작동하게 만들기
- nohup python app.py &
- 다시 끄기 (파일을 지우고 업로드 한 후)
- ps -ef | grep 'app.py -> ps -ef (돌아가는 모든 프로그램) 중 grep 'app.py' (app.py 포함된 프로그램만 솎아내라)
- kill -9 다섯 자리 숫자(pid) -> 2번 실행
5-17.
- 가비아에서 도메인 구입 후, 레코드 추가 -> 타입 'A', DNS 관리에서 호스트 '@', 주소 'ec2 public ipv4' 입력 후 저장
5-18.
- og tag 수정
<meta property="og:title" content="내 사이트의 제목" />
<meta property="og:description" content="보고 있는 페이지의 내용 요약" />
<meta property="og:image" content="{{ url_for('static', filename='ogimage.png') }}" />
- ogimage 는 static 에 저장 (사이즈 800x400)
- 파일 update 순서
- ps -ef | grep 'app.py'
- kill -9 pid X2
- Filezilla 에서 기존 파일들 삭제
- 새로운 파일 업로드
- nohup python app.py &
- og tag 수정 시 카카오톡/페이스북에서 바로 바뀌지 않음
- 카카오톡 og 태그 초기화 하기: https://developers.kakao.com/tool/clear/og
- 페이스북 og 태그 초기화 하기: https://developers.facebook.com/tools/debug/
Author And Source
이 문제에 관하여(TIL: 항해99 웹개발 종합반 5주차), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ne_ol/TIL-항해99-웹개발-종합반-5주차-1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)