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 원격 접속
    1. sudo chmod 400 (keypair 파일 드래그&드랖)
    2. ssh -i (keypair file) ubuntu@(인스턴스 퍼블릭 IPv4 주소)
      -> ubuntu: Permission denied (publickey).
      -> 해결 방법:
      1. sudo nano /etc/ssh/sshd_config (keypair file)
      2. #PermitRootLogin prohibit-password 하단에 PermitRootLogin yes 추가 후 저장 & 나감
      3. 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 &
  • 다시 끄기 (파일을 지우고 업로드 한 후)
    1. ps -ef | grep 'app.py -> ps -ef (돌아가는 모든 프로그램) 중 grep 'app.py' (app.py 포함된 프로그램만 솎아내라)
    2. 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 순서
    1. ps -ef | grep 'app.py'
    2. kill -9 pid X2
    3. Filezilla 에서 기존 파일들 삭제
    4. 새로운 파일 업로드
    5. nohup python app.py &
  • og tag 수정 시 카카오톡/페이스북에서 바로 바뀌지 않음

좋은 웹페이지 즐겨찾기