본문 바로가기

프로젝트39

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.
Django poj.c E0) AWS 대신 NAS - 30일차 Code E - Server 0번 글, 프로젝트 30일차 (화) 1. 지금부터는 코딩보다는 서버 호스팅에 도전하는 시간. 리눅스, 도커, 네트워크 지식의 부족함을 여실히 느끼고 있다. 검색하고 배워서 적용하고 익히자 ⭐️ 2. AWS와 같은 클라우드 인스턴스는 비용 발생 위험이 있고 나는 Docker 컨테이너를 띄울 수 있는 시놀로지 NAS를 가지고 있기 때문에 웹 개발을 하게 된다면 내 서버에 직접 띄울 생각이었다. 웹 서버는 아니어도 지난 프로젝트를 거치며 사용하고 있는 모든 데이터베이스는 NAS 위에 도커 컨테이너로 사용하고 있다. 3. 웹 서버도 DB 서버를 구축하듯 간단하게 서버를 올리고 코드를 복사하면 될 것이라 생각했는데 만만치가 않았다. 계획은 이러했다. 일단 마치 AWS나 구글 클라우드 .. 2022. 5. 18.
Django poj.c B17) 이미지 파일 압축/삭제 - 29일차 Code B Django 17번 글, 프로젝트 29일차 (월) 2022.05.14 - [프로젝트/Django - How Dimt?] - Django poj.c A3) 타겟 유저와 유저 유인 요소, 실 서비스를 위해 필요한 숙제들 - 27일차 1. 실 서비스를 위해 필요한 숙제 2번 - 이미지 압축/삭제를 해결 2. 이미지 삭제 객체를 'UPDATE' 할 때 이미지 필드가 교체되면 기존의 파일을 삭제한다. 아주 간단하게 해결되었다. django-cleanup라는 pip 패키지가 있다. 이 패키지는 FileField와 ImageField의 값이 변한 뒤 모델이 저장되면 기존의 파일을 자동으로 지워준다. 패키지를 설치하고 setting.py에 INSTALLED_APPS에 등록하면 설정 끝. PyPI의 패키지 .. 2022. 5. 17.
Django poj.c B16) Security logic - 403 forbidden - 28일차 Code B Django 16번 글, 프로젝트 28일차 (일) 2022.05.14 - [프로젝트/Django - How Dimt?] - Django poj.c A3) 타겟 유저와 유저 유인 요소, 실 서비스를 위해 필요한 숙제들 - 27일차 1. 실 서비스를 위해 필요한 숙제 1번 보안 문제를 해결하였다. 2. 프로필과 자유게시판의 객체를 생성/수정/삭제 하기 위해서는 두 가지의 검증 절차를 통과하게 된다 1) 버튼 제어 html 코드의 {% if... %} 문을 이용하여 로그인 유저가 타깃 객체의 소유권을 가지고 있을 때만 수정/삭제 기능 버튼을 보여준다. 2) views 단에서의 소유권 검증 'GET' 혹은 'POST' 요청이 들어왔을 때 로그인되어 있지 않거나 로그인 유저가 타깃 객체의 소유권을 가.. 2022. 5. 16.
Django poj.c A3) 타겟 유저와 유저 유인 요소, 실 서비스를 위해 필요한 숙제들 - 27일차 Code A 기획 3번 글, 프로젝트 27일차 (토) 관련글 2022.05.16 - [프로젝트/Django - How Dimt?] - Django poj.c B16) Security logic - 403 forbidden - 28일차 2022.05.17 - [프로젝트/Django - How Dimt?] - Django poj.c B17) 이미지 파일 압축/삭제 - 29일차 0. 컨디션 난조로 휴식을 하고 있다. 대신 프로젝트가 앞으로 나아가야 할 방향에 대해 조금 고민. 1. 프로젝트가 어느새 4주 차 막바지에 다다르고 있다. 당초 계획보다는 기능이 너무 적게 나와서 아쉽지만. 계획했으나 구현하지 못한 기능으로는 칵테일 레시피 공유와 자유게시판의 댓글이 있다. 프로젝트 제목에 칵테일이 들어갔으나 정작 칵.. 2022. 5. 14.