Archive: 2019

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” 태그

0

완전 탐색(Brute-force Search)

완전 탐색(Brute-force Search) 알고리즘 문제알고리즘 해결 전략 1권 p.157 소풍을 간 학생들을 두 명씩 짝 지어 행동하게 하려 한다. 서로 친구인 경우에만 짝을 지어야 한다. 서로 친구인 경우의 쌍이 주어질 때, 학생들을 짝 지을 수 있는 방법의 수를 구현해보자. 데이터 개수 n은 항상 짝수이다.12345678910111213141516

0

MAX HEAP

MAX HEAP 완전이진트리 배열, heapsize(배열의 개수가 아닌 데이터의 개수) Priority Queue 때문에 구현한다. ADT 1) is_empty() -> bool 2) is_full() -> bool 3) push(data) -> 반환없음 4) pop() -> 삭제된 원소 반환 5) top() -> 다음 번에 반환

0

동적 배열 vs 연결 리스트

동적 배열(Dynamic array) vs 연결 리스트(Linked list) 동적 배열(Dynamic array) 장점 : search - O(1) = Indexing 단점 : insert, delete - O(n) python의 동적배열은 list이다. append, pop - O(1)123456789다음과 같이 이미 할당된 배열의 공간이 있을 경

0

트리 순회(Tree traversal)

순회 재방문을 허용하지 않고 트리를 구성하는 모든 노드에 다해서 반드시 한번씩 방문하는 것 Queue 계열의 알고리즘 BFS(Breadth First Search) : 너비 우선 탐색 레벨 순서 순회(levelorder traversal) root를 시작으로 다음 레벨 왼쪽부터 방문123456789101112131415161718192021222324252