Archive: 2019/7

0

장바구니 및 주문 구현 수정 - 1

강사님께 질문을 하면서 내가 구현한 장바구니 부분보다 더 간단한 방법을 제안해주셨다. 일단 signal 함수라는 것은 유지보수 자체가 힘들다는 것을 알았다. 그래서 리뷰 평점을 계산하는 것도 모델 단에서 save를 재정의하는 방법을 검색해서 재구현했다. 123456def save(self, *args, **kwargs): super(Review, se

0

serializer.save()

장바구니에 상품들이 담기면 총 상품에 대한 가격이 계산되어야 했다. 상품을 실제로 파는 것은 아니었으므로 회의를 통해 배송 가격은 무료로 정했다. 따라서 상품의 가격의 가격들만 더하면 총 가격이 되었다. 그래서 REST Framework의 generic view에 있는 serializers.save()를 사용하기로 했다. 기존에 이미 해당 유저의 정보를 저

0

그래프 순회(Graph traversal)

그래프(Graph)정의 그래프는 객체와 객체 사이의 ‘관계’를 표현하기 위한 자료구조이다. 그래프 G는 두 ‘집합’ V, E로 나타낸다. V(G) : 노드(node) 혹은 정점(vertex)의 집합 E(G) : 정점을 잇는 에지(edge)의 집합 방향1. 무방향 그래프(Undirected graph) 출처 : https://github.com/yth

0

균형 이진 트리(balanced-binary tree)

이진 탐색 트리(BST)는 O(log(n))의 시간 복잡도를 가진다. 이것은 탐색 트리가 균형 트리일 경우에만 해당된다. 출처 : https://github.com/ythwork/CS 위 그림처럼 최악의 경우, O(n)의 시간 복잡도를 가지게 된다. 균형 이진 트리 self-balancing(balanced-binary tree) 균형 이진 트리

0

authenticate()

IOS, Front-End와 회의 중 소셜 로그인 구현 얘기가 나왔다. 실제 “오늘의집” 사이트에서도 소셜 로그인이 가능하고 현재 다른 사이트들에서도 소셜 로그인이 대부분 가능하기 때문에 IOS 분들과 먼저 앱에서 구현을 먼저 하기로 했다. 개인 프로젝트를 진행할 때에는 django 자체에서 서버와 클라이언트를 모두 구현했던 것과는 달리 이번에는 Front

0

장바구니 및 주문

스토어를 중심으로 구현하고 있었기 때문에 장바구니는 핵심 기능 중 하나였다. 장바구니에 대해서 내가 정리한 건 다음과 같았다. 유저마다 장바구니가 존재 장바구니에 담긴 상품을 구매하게 되면 장바구니에 있는 목록은 삭제 장바구니를 통한 구매와 바로 구매하는 두 가지 주문 방법이 있음 일단 유저가 담은 상품들을 저장하는 모델을 만들었다. 123class P

0

시간에 따라 바뀌는 데이터

“오늘의집”에서는 오늘의 딜이라는 정해진 시간마다 데이터가 바뀌는 상품들이 있다. 직접 상품을 파는 것은 아니었기 때문에 팀 회의에서 하루를 기준으로 변경하자고 의견을 모았다. 처음 생각한 것은 crontab이었지만, 한번도 적용해보지 못해 시간이 얼마나 걸릴지 몰랐다. 그래서 일단은 Front분들이 API 요청을 통해 데이터를 받을 수 있도록 다른 방법을

0

분할 정복(Divide and Conquer)

분할 정복(Divide and Conquer) 알고리즘 문제분할 정복(Divide and Conquer) 먼저 분할하고 정렬하는 경우 - merge sort 먼저 정렬하고 분할하는 경우 - quick sort recursion(재귀)에서 중요한 것 base case(기저 조건) 재귀할 때 문제의 사이즈(부분 문제, sub problem)를 줄여야 한다

0

Django Signals

상품 리뷰에 대한 평점을 데이터베이스에 저장해야 했다. 그런데 평점이기 때문에 리뷰의 개수와 점수에 따라 평점이 달라져야 했다. 그래서 방법을 생각하다가 Django에서 Signals가 떠올랐다. 어떤 특정한 일을 수행할 때마다 지정한 동작이 수행될 수 있도록 할 수 있다. 리뷰 관련 DB Model에서 저장이 완료되면 리뷰의 평점을 계산해서 필드에 저장하

0

Crawling - get_text() Option

“오늘의집”이라는 사이트를 이곳저곳 클릭하다보니 스토어의 상품과 모두 연관되어 있다는 것을 확인했다. 그래서 팀 회의에서 카테고리 중에 스토어를 먼저 구현하자는 의견이 나왔고, 스토어의 상품에 대한 정보는 유저가 아닌 관리자의 작업이기 때문에 크롤링을 먼저 하기로 했다. requests와 beautifulsoup4를 사용했고, 하는 과정 중에 “br” 태그