일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- DB
- python
- 구글 드라이브
- 아이폰
- 깃허브
- flask
- 단축어
- 코딩
- selenium
- G-Suite
- nocookie
- 추천 영상
- 유튜브
- 파이썬
- List
- MongoDB
- 충북
- 탐욕 알고리즘
- Django
- 장고
- pymongo
- Google Drive
- docker-compose
- 바로학교
- 링크
- 그리디 알고리즘
- venv
- gpu 병렬처리
- 리스트
- 알고리즘
- Today
- Total
목록전체 글 (71)
SSAMKO의 개발 이야기
ubuntu서버 세팅을 처음하고, vim에디터로 편집하려할때, 방향키가 제대로 인식되지 않는 경우가 있다. 이럴때는 vim ~/.vimrc 로 .vimrc를 열어서, 아래 코드를 추가해준다 set nocompatible
api 개발 후 각 api의 응답시간을 체크해 성능지표를 만들고자 할 때, 간단히 사용할 수 있는 코드. unittest, pytest, locust 같이 테스트를 위한 도구들이 있지만, 간단히 응답 시간 정도만 체크하고 싶어서 작성한 코드입니다. import os import requests import datetime import time class valid_api: def __init__(self, count=10): self.host = 'http://localhost/' self.urls = [ 'schedule', 'segments/goods', 'rec_prod', 'rec_prod/user', 'rec_prod/user/hourly', ] self.result = dict() self.c..
mongo shell로 작업을 해야할 때, DB목록과 Collection 목록을 확인하고 싶을 때가 있다. DB목록 db.adminCommand( { listDatabases: 1 } ) Collection목록 db.getCollectionNames()
python을 새 서버에서 운영해야 할 때, 버전관련한 이슈가 생기지 않도록, 개발할 때의 파이썬 버전을 필요로 할 때가 있다. 이럴때, 단순히 기존의 python을 제거하고, python old version을 받아서 설치하는 방법도 있지만, pyenv를 이용해 좀 더 세련되게 관리하는 방법에 대해 알아보자. pyenv의 공식 github는 github.com/pyenv/pyenv 이다. 자세한 내용은 여기서 확인이 가능하고, 해당 포스팅의 내용은 이곳에 나와있는 것을 초보자를 위해 꼭 필요한 부분만 한글로 번역해 안내함을 알린다. pyenv의 원리를 간단하게 나타내면, python이라는 명령어에 해당하는 환경변수(PATH)를 그때그때 변경해주는 것이다. 무슨 말이지 몰라도 괜찮다. pyenv자동 설치..
find_one_and_update는 말 그대로, 특정조건에 부합하는 문서를 찾아서, update 해주는 명령어다. 사용하다보면 update와 동시에 update된 문서를 받아서 사용하고 싶을때가 있다. 그냥 아래처럼 저장하면, vData = user_col.find_one_and_update({'uid':1}, {'$inc':{ 'version': 1}}) uid:1을 가진 문서를 찾아서 'version' field의 값을 1 증가($inc)시키고, 문서를 return 하게되는데, 이때 return하는 문서는 update되기 이전의 문서, 즉 original문서이다. 이것을 업데이트된 문서로 반환받고 싶다면, from pymongo import ReturnDocument vData = user_col...
외부에 API를 제공할때, 해당 URI로 아무나 접근하는 것을 막기 위해 간단하게 적용할 수 있는 방법으로 크게 두 가지가 있다. 첫번째로는 django settings.py에서 ALLOWED_HOST를 수정하여, white list를 구성하는 방법이 있는데, 이 방법은 소수의 제한적 접근을 허용할때는 유용하지만, 요청할 대상이 많아지면 힘들어진다. 이때는 간단히 토큰을 제공하는 방법으로 해결할 수 있다. 이 토큰을 여러 method에 손쉽게 적용할 수 있도록 데코레이터를 사용했다. # decorator.py from functools import wraps from django.core.exceptions import PermissionDenied def check_token(func): """Deco..
mongodb에서 특정 array의 길이가 2이상 되는 document들을 검색하고 싶을때, 보통 array의 길이(사이즈)는 $size를 이용해서 검색한다. 하지만, 이 경우에는 범위range를 사용할 수 없다. 정확하게 매칭되는 하나의 숫자만 검색할 수 있다. col.find({'items':{ '$size' : 2 }}) 이렇게 하면 items에 있는 array의 길이(사이즈)가 2인 document들만 뽑아준다. 여기서 2이상인 것들을 뽑기 위해선 $gte 연산자를 쓰면 될 것 같지만, col.find({'items':{'$size':{ '$gte':2 }}}) 위와 같이 작성한 쿼리는 제대로 실행되지 않는다. 원하는 값을 받기 위해서는, col.find({ '$where':this.items.l..
대용량 파일을 local DB가 아닌 GCS나 AWS S3에 저장하기 위해, 혹은 mongodb같은 써드파티 DB를 사용하는 서버에서, 파일을 단순히 업로드 받아 처리해야할 경우가 있다. 그럴경우엔 forms.py나 model.py 작성없이 바로 views.py에서 작성 가능하다. from django.http import HttpResponse from django.views.decorators.csrf import csrf_exempt from django.views.decorators.http import require_POST from .. import FileManager as fm @csrf_exempt @require_POST def recommend_user_prod(request): fm..