본문 바로가기

Howdimt35

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.
Django poj.c B15) 자유게시판 CRUD - 25일차 Code B Django 15번 글, 프로젝트 25일차 (목) 1. CBV !!! 드디어 CBV를 제대로 활용했다 CreateView, DetailView(==Read 역할), UpdateView, DeleteView -> CRUD 모두 Class Based View로 구현하는데 성공. 이제야 Django의 CRUD 가 어떻게 돌아가는지 큰 그림이 조금 보인다. 2. 아쉬운 점 (1) CBV를 자유자재로 사용하진 못하고 있는 게, 게시물 삭제 이후로 Delete 성공 메시지를 출력하고 싶었는데 잘 되지 않았다. FBV로 만든 간단한 함수를 통해 Delete 성공 메시지를 담고 있는 html 파일로 연결하는 방법으로 해결했다. 3. 아쉬운 점 (2) 삭제, 수정 이후 자유게시판으로 돌아갔을 때 페이지네이션.. 2022. 5. 14.
Django poj.c B14) 페이지네이션 - 24일차 Code B Django 14번 글, 프로젝트 24일차 (수) 1. 페이지네이션 적용. CBV로 손대는 방법이 너무 막막해서 게시판 페이지 자체를 FBV로 다시 설계. CBV로 내가 원하는 로직을 구현하기 위한 세세한 CBV 사용법을 찾아볼 시간에 FBV 안에서 기본 파이썬 코드 방식으로 하나씩 구현하는 쪽이 압도적으로 효율적인 상황이다. CBV를 잘 사용할 수 있는 날이 오기는 할까. 2. 페이지네이션 예제 코드를 참고하다 aria로 시작하는 html 속성에 대해 알게 되었다. 이는 접근성과 관련된 속성이다. 시각적 접근이 어려운 이용자가 웹을 사용할 때는 구글의 chrome vox 나 애플의 voice over 같은 읽기 도구를 사용하여 페이지를 읽는다. 이번에 사용한 aria-disabled="tr.. 2022. 5. 12.
Django poj.c B13) 게시판 뼈대, 모델 클래스 내부에 함수 넣기 - 23일차 Code B Django 13번 글, 프로젝트 23일차 (화) 1. 자유게시판 뼈대 작성 Post라는 이름의 글 모델과 Comment라는 이름의 댓글 모델 작성 및 마이그레이션 300개의 더미 데이터 생성 Class Based View로 작성했는데, 페이지네이션이 어려울 것 같아서 Function Based View로 다시 작성해야 하나 고민 중 정말 CBV 한 번을 쓰기가 힘드네. 2. 작성자 로직 프로필 업데이트 기능을 통해 nickname을 설정했다면 nickname이 표시되고 설정하지 않았다면 @+username(로그인 시 입력하는 idr값)으로 표시하도록 만듦 Profile 모델 클래스 내부에서 일반적인 파이썬 클래스처럼 함수 식을 작성해도 된다는 것을 알아냄 @property 어노테이션을 처음.. 2022. 5. 11.