본문 바로가기

프로젝트/Django - How Dimt?36

2022.09.21 - Django poj.c A4) 개발과정 정리 페이지 Howdimt - 주류 정보 공유 웹 애플리케이션 바로가기: http://www.howdimt.xyz/ Github: https://github.com/dpcalfola/cocktail_how_did_i_make_this Web Framework: Python Django DB: postgreSQL Web Server: Nginx Deploy: 개인 NAS의 Docker 1. 프로젝트 진행 과정 시간 순으로 보기 더보기 2022.04.18 - Django poj.c A0 ) 진행과정 기록에 관하여 - 0일차 2022.04.19 - Django poj.c C0 ) DB 선택 - 1일차 2022.04.20 - Django poj.c B0 ) Bootstrap5 설치 및 base.html 작성 - 2일차 20.. 2022. 9. 21.
Django poj.c E5) CSRF token에 대하여, 토큰 검증 문제 해결 - 프로젝트 마감 추가글 2번 Code E - Server 5번 글, 6월 1일 (수) 자격증 시험 준비로 미뤄 두었던 프로젝트 34~35일 차 (5월 21일~22일) 프로젝트 진행 과정 기록 ( 프로젝트 마감 추가글 2번 ) 1. Error 상황 CSRF 토큰을 사용하는 form 태그의 post 요청 시 접근하고 있는 호스트가 신뢰할 수 있는 origins 목록에 없다는 Debug 메시지와 함께 403 forbidden 에러가 발생하였다. 2. CSRF 토큰? Django Framework는 form tag로 데이터를 전송할 때 필수로 {% csrf_token %} 코드를 요구한다. CSRF는 Cross-site Request Forgery의 약자이다. 사이트 간 위조 요청.. 2022. 6. 1.
Django poj.c E4) Django / nginx 도커 컨테이너 간 정적 파일 공유 - 프로젝트 마감 추가글 1번 Code E - Server 4번 글, 5월 31일 (화) 자격증 시험 준비로 미뤄 두었던 프로젝트 34~35일 차 (5월 21일~22일) 프로젝트 진행 과정 기록 ( 프로젝트 마감 추가글 1번 ) 0. 컨테이너 간 정적 파일(static / media files) 공유 과정 niginx 웹 서버가 정적 파일 요청을 처리하기 위해서는 Django 컨테이너의 정적 파일을 nginx 서버와 동기화하는 작업이 필요하다 1. Django 컨테이너 세팅 Django 컨테이너에서 정적 파일을 한 곳에 모은다 python manage.py collectstatic 정적 파일은 setting.py의 STATIC_ROOT에 명시된 경로로 모두 모이게 된다. 2. nginx 컨테이너 세팅 ngnix.conf 파일에 정적 .. 2022. 5. 31.
Django poj.c F1) 프로젝트 마무리, 해킹 공격, 프로젝트 기록 보류 - 36일차 Code F 기타 1번 글, 프로젝트 36일 차 5월 23일 (월) 0. 5월 28일 토요일 sqld 시험 준비 관계로 프로젝트와 관련된 모든 기록이 일시 중지. 1. 가까스로 프로젝트를 마무리했다. 모든 도커 컨테이너가 유기적으로 돌아간다. 또 구입한 도메인을 ngnix 컨테이너로 연결하였다. 간단하게 시연 방식으로 학원에서 발표. 2. 그러나 일요일 저녁에 연결한 도메인 주소를 어떻게 알았는지 12시간도 넘지 않은 시점에 끊임없이 해킹 시도가 들어왔다. .env 를 요청, admin 접속을 시도 등등등. 그리고 내가 만든 앱이 워드프레스 페이지라고 생각했는지 관련 파일을 계속 요청하고 있었다. 당장은 공격자의 ip를 추적해서 차단할 수 있는 기술이 없어서 서버를 내려놓은 상태. 3. 프로젝트를 완성하.. 2022. 5. 25.
Django poj.c E3) 프로젝트 서버 진척 내역 - 33일차 Code E - Server 3번 글, 프로젝트 33일 차 (금) 33일 차 프로젝트 서버 진척 내역 1. 파이썬 패키지 pip freeze > requirements.txt pip install -r requirements.txt 사용된 python 패키지 목록을 만들고 그 목록을 이용하여 서버 컨테이너에 패키지를 설치 2. gunicorn 설치 gunicorn은 웹 서버와 장고 애플리케이션을 연결해주는 인터페이스이며, 웹 페이지가 요청하는 동적 로직을 장고로부터 전달한다. 서버 컨테이너 내부에서는 이제 python manage.py runserver 0.0.0.0:포트번호 대신 gunicorn --bind 0.0.0.0:포트번호 config.wsgi:application 명령어를 이용해 웹 애플리케이.. 2022. 5. 21.
Django poj.c E2) 실패한 모든 시도의 원인은 방화벽이었다 - 32일차 Code E - Server 2번 글, 프로젝트 32일차 (목) 0. 해결 방법 Docker 가 사용하는 172번으로 시작하는 IP의 nas 방화벽 개방 (default bridge - 172.17.0.1~ , custom bridge - 172.18.0.1~ ) 1. 기존에 시도했던 Docker in docker 가 작동하지 않았던 이유도, 우분투 컨테이너에 정상적으로 설치했던 도커 엔진이 작동하지 않았던 이유도, 도커 브릿지에 묶여 있는 컨테이너 사이에 통신이 불가능했던 이유도, 그 외에 수없이 생성되었다 삭제된 컨테이너와 이미지들 모두가, 그 모두의 원인은 단 하나였다. 그 한 가지 원인을 깨닫는데 하루 해결하는데 하루가 걸렸다. 2. 원인 22번 포트를 이용한 ssh 접속이나, DB와 연동하여 레.. 2022. 5. 21.
Django poj.c E1) Docker In Docker 는 포기 - 31일차 Code E - Server 1번 글, 프로젝트 31일차 (수) 1. nas의 터미널과 종일 씨름했다. docker in docker는 포기하는 것으로 결정 docker hub의 dind(docker in docker) 이미지의 여러 태그들을 시도해 보았으나 모두 컨테이너 밖으로 인터넷 연결조차 되지 않아서 실패했다. 지푸라기 잡는 심정으로 Ubuntu 이미지를 unminimize 하고 각종 업데이트와 유틸들을 모두 설치한 후 컨테이너 위에 리눅스 도커 엔진을 올려 보려 시도했다. 설치는 오류 없이 잘 마무리되었으나 엔진을 start 할 수가 없었다. 2. nas의 ssh 터미널을 이용하여 docker를 cli 환경에서 사용할 수 있게 되었으니 나스 ssh가 하나의 클라우드 인스턴스 컴퓨터인 것처럼 간주.. 2022. 5. 19.