TIL - 0312~0316

0312

오늘 한 일

  • RDS DB 도커랑 연결
  • Production 버전 연결
  • EB 설명 및 cli 사용

오늘 할 일

  • 수업 내용 복습하기
psql --host=fc7th.c9mdrx6yjpj9.ap- northeast-2.rds.amazonaws.com --user=kahee --port=5432 postgres

AWS Elastic Beanstalk

Browser -> EB -> EB-Nginx -> (proxy) -> Docker container
-> DockerApp-Nginx -> DockerApp-uWSGI -> DockerApp-Django
  • EXPOSE : 도커파일에 expose해서 항상 열려있는 포트
  • eb init -> eb create -> dockerfile /dockerfile:base -> eb deploy -> eb pen
  • eb ssh -> sudo docker ps (우리가 설정한 Dockerfile)
  • docker tag / docker id-password /docker push
  • .ebignore EB CLI가 디렉터리의 특정 파일을 무시하도록 명령, 이 파일이 있는 경우는 .gitignore를 읽지 않는다.

  • 디렉토리 root지정 안해줬을 땐 지정하고나서 pycharm 종료후에 다시하기

0313

오늘 한 일

  • members에 User ninckname 추가
  • index.html 추가 (views, url)
  • eb deploy할 때, .gitignore 사용 : .ebignore를 사용하는 경우, gitignore의 모든 내용이 무시되기 때문에 문제가 발생. -> deploy할때는 .secrets를 올려주는 코드
  • aws container 이용해서, 배포 후 설정 코드 실행
  • django RSET framework


주의 항상 git commit하고 나서 배포하자

오늘의 교훈

  • .gitignore 잘 확인하자, .secrets 입력을 안해서 AWS 키가 올라가는 일이 발생했었다. 이 경우 github와 AWS에서 이메일이 날라오고 무엇을 하라고 알려주므로 침착하게 해결할것 그전에 다시 이런일이 일어나지 않도록 조심 또 조심!

내일 할일

  • DjangoRestfull 튜토리얼 6까지 직접 해보기 </s
  • 복습

aws command

  • 소스코드가 있기 전에

aws container

  • 소스가 있는 후에 실행이 되는 것을 의미함
  • leader_only https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/customize-containers-ec2.html?shortFooter=true#linux-container-commands

Rest framework

http://raccoonyy.github.io/drf3-tutorial-1/ http://raccoonyy.github.io/drf3-tutorial-6/


0314

오늘 한 일

  • REST Django tutorial(4) 까지
  • 탐욕 알고리즘 공부

내일 할 일

  • EB 복습하기

정리해야할 것이라고 쓰고 공부한 것이라고 말한다...

  • REACT
  • Serializer : 직렬화(DICT->JSON)와 역직렬화(JSON->DICT) JSONRender (), JSONParser() ,
  • CRUD
  • Restful

0315

오늘 한 일

  • container_commands와 file을 이용
  • static 파일 S3에서 가져오는게 아니라 EC2에서 가져오게끔 설정 (Storage 설정)
  • melon 프로젝트 aritst views 분리 ()

오늘의 교훈

  • cat /var/log/eb-activity.log 이 로그를 잘 확인하자!!!
  • S3Strorage 부분 잘 모르는 것 같으므로 다시 복습!

오늘의 과제

  • manager 모델에 to_json() 함수로 구현해오기

Container_commands

  • 문제 새로 생성된 컨테이너에 적용이 되는 것이 아니라 지난번 배포했던 것에 적용이 되서 정상작동이 된 것. 원래의 목적은 새로 생성된 컨테이너에 이 명령어를 실행시키려고 한 것이기 때문에 다른 방식으로 바꿔야 한다.

플랫폼 후크

문서

  • 시그널과 비슷하지만, 시그널을 사용하면 코드가 어떻게 작동하는지 모르는게 단점!
  • 특정 디렉토리에 스크립트를 넣으면 특정 시점에 이 스크립트를 실행
  • appdeploy – 애플리케이션을 배포할 때 실행되는 스크립트입니다. 새 인스턴스가 시작될 때와 클라이언트에서 새 배포 버전을 초기화했을 때 Elastic Beanstalk가 애플리케이션 배포를 수행합니다.(우리가 사용하는 것)

S3 - RDS

  • 코드 수정된 부분
    S3                RDS
    
      \           /
          Django
    
              |
    
          uWSGI
    
              |
    
          Nginx
    
              | --------------> 정적 파일처리를 여기서만 하는 걸로....
    
            EC2
    

python http 연결

python -m http.server 3000

직렬화 - 시리얼라이즈

  • 전송이 가능한 형태로 저장하는 것을 시리얼라이즈 python pickle 파이썬내에서 교환이 가능하나, 버전에 따른 영향이 크다. (버전이 다르면 해석이 불가능)
  • JSON

CORS

  • 두번 요청을 하게 됨
  • request -> MiddleWare -> view(controller) -> MiddleWare -> response
  • 미들웨어에 항상 이 요청을 넣어서 보내야한다.
  • Django cors headers https://github.com/ottoyiu/django-cors-headers

0316

오늘 배운 것

  • model_to_dict
  • APIView

내일 해야할 일

  • EC2 S3Strorage
  • EB Docker

과제

  • TDD GOT 6장까지 1.12

과제 리뷰

  • values() 는 다른 데이터베이스가져오는게 불가능함 그래서 특정 요소들은 언급을 해야한다.
  • model_to_dict()

APIView

  • class basic view = APIView
  • as.view() 함수를 반환해줌 (클래스를 반환해주기 때문에)
  • 브라우저 상에서 없을때는 settings.py installapp 확인할 것
  • 실수 get , post request 항상 넣어주자
  • 400 : 내가 잘못햇어 500: 서버가 이상해
  • form-data parse

  • 쿼리 포멧
  • partial_update(부분 업데이트) / update (전체 업데이트)