MVC & MTV / Django 개념
Django Miniconda 가상환경 구축 & Mysql 연동하기(Ubuntu 20.04.1)
장고에서 데이터를 수정하기 위해서는 views.py에 `post` 메소드 안에 작성된 모든 필드명을 받아야 한다. 예를 들어 하나의 메소드 안에서 `korean_name`, `english_name`, `descr
View에 정의된 키(여기에선 id, password)가 모두 전달되지 않았을 때 나는 에러RequestResponse전달될 값이 없어서 RequestResponse해결방법JSONDecodeError를 try, except로 처리모델에 정의된 타입(ex. Integer
앱 생성하기 / 모델 작성하기 / 모델 작성 시 체크할 것! / Relationships(one-to-one, one-to-many, many-to-many) / migrations가 무엇인지 / migrations 적용하기
뷰는 작성된 모델을 바탕으로, 들어오는 데이터를 어떻게 처리할지에 대한 논리를 맡고 있다. 스타벅스 제품 모델을 작성한 것에 이어 뷰를 작성해보자.
이전 포스팅에서는 스타벅스 제품을 생성하고, 조회하는 뷰를 작성하였다. 이번에는 특정 id의 product의 정보를 조회하고, 수정, 삭제하는 뷰를 작성해보도록 하겠다!
백엔드 관점에서 인스타그램의 회원가입 기능을 구현해보도록 하겠습니다. 기본적인 기능만 구현할 수 있지만 저는 최대한 실제 인스타그램과 유사하게 만들어보고 싶어서 도전해보았습니다.
저번 포스팅의 회원 가입 기능에 이어 로그인 기능을 구현해보도록 하겠습니다. 마찬가지로 인스타그램 홈페이지에 들어가서 로그인이 어떤 식으로 이루어지는지 파악합니다.
이전 시간에는 장고로 인스타그램 회원가입 기능과 로그인을 구현하였는데요, 이번에는 bcrypt와 JWT라는 라이브러리를 사용해서 비밀번호를 암호화하고 access token을 발급하는 등 인증 과정을 구현하도록 하겠습니다.
이전 시간에는 장고로 인스타그램 회원가입 기능과 로그인을 구현하고, bcrypt와 JWT로 인증 과정을 구현하였습니다. 이번에는 게시물을 등록하는 기능을 구현하도록 하겠습니다.
지난 시간에는 게시물 등록 기능을 구현하였습니다. 이번에는 권한이 있는 유저만이 서비스를 사용할 수 있는 인가 과정을 구현하겠습니다. 구체적으로 로그인한 유저만 게시물을 등록할 수 있도록 로그인 인증 데코레이터를 만들고, 게시물 기능에 적용해보겠습니다.
이전 시간에는 장고로 게시물 등록, 표출 기능을 구현하고, 로그인 인증 데코레이터로 인가 과정을 구현하였습니다. 이번에는 댓글 등록 기능을 구현하도록 하겠습니다. 마찬가지로 로그인 데코레이터를 사용해서 로그인된 권한있는 유저만이 댓글을 등록할 수 있도록 하겠습니다.
지난 시간에는 인스타그램 댓글 등록, 표출 기능을 구현하였습니다. 이번에는 게시물 '좋아요' 기능을 구현하도록 하겠습니다. 마찬가지로 로그인 데코레이터를 사용해서 로그인된 권한있는 유저만이 '좋아요'를 누를 수 있도록 해보겠습니다.
지난 시간에는 인스타그램 팔로우 기능을 구현하였습니다. 이번에는 게시물 및 댓글 삭제, 수정기능을 구현하겠습니다. 마찬가지로 로그인 데코레이터를 사용해서 로그인된 권한있는 유저만이 기능을 사용할 수 있도록 하겠습니다.
지난 시간에는 게시물 및 댓글 삭제, 수정 기능을 구현하였습니다. 이번에는 대댓글 기능을 구현하도록 하겠습니다. 마찬가지로 로그인 데코레이터를 사용해서 로그인된 권한있는 유저만이 대댓글 기능을 사용할 수 있도록 하겠습니다.
QuerySet(쿼리셋)이란 데이터베이스에서 전달받은 모델의 객체 목록 데이터베이스의 여러 레코드(row)를 담은 형태 리스트와 구조는 같지만, 파이썬 기본 자료구조가 아니여서 별도 자료형 변환이나 serializers가 필요
너무나 헷갈리는 related_name...제대로 이해하지 않고 넘어가려다 호되게 당했다!모델 작성 리뷰에서 related_name에 대한 코멘트를 받았다.related_name이 언제 쓰이는 건지는 알고 있었는데,related_name 안의 내용을 어떻게 지어줘야 할
오늘의 집에는 다양한 정렬 기준이 있는데 여기서는 최신순(+오래된순), 낮은가격순, 높은 가격순, 많은리뷰순 정렬을 시도해보도록 하자.
장고에서 필터링 기능을 구현할 수 있는 방법에는 크게 3가지 방법이 있다. if문을 이용하는 방법, 딕셔너리를 이용하는 방법, Q 객체를 이용하는 방법이다. 오늘의 집을 예시로 해서 3가지 방법을 각각 구현해보도록 하겠다. 오늘의 집에서는 다양한 조건을 한 번에 적
ORM(Object Relation Mapper) 관계형 데이터베이스의 내용을 객체로 변환해서 어플리케이션 소스코드에서 직접 객체를 조작할 수 있도록 구성. ORM을 사용해서 개발자는 데이터베이스를 조작하는데 SQL을 사용하지 않고 직접 객체를 사용할 수 있다.
2차 프로젝트를 마무리하면서 개선하고 싶었던 부분이 메모리 캐싱을 통한 성능 향상이었다. 프로젝트 전체적인 소스코드를 리팩토링하면서 장고에서 메모리 캐싱을 하기 위해 일반적으로 사용하는 prefetch_related에 더해 Prefetch 객체의 적용법을 알게 되었다
쿼리 최적화를 통해 하나의 요청에 60초가 걸리던 것을 4초로 단축시켰다. 하지만 여전히 오래 걸린다. locust를 사용해서 서버가 과연 몇 명의 접속자를 처리할 수 있을지 부하테스트해보려고 한다. 또한, redis를 적용해서 성능을 개선하고 테스트해보겠다.