본문 바로가기

전체 글

(1079)
pytest 시 여러개의 디비 사용하기 참고로 pytest-django 에서 여러개의 디비를 사용하도록 하는 공식적인 버전은 4.3.0 부터 입니다. 해당 버전이 아닐경우 다른 결과가 나올수 있습니다. 1. 테스트 격리! 일단 나의 진행중인 프로젝트에서는 하나의 django에서 4개의 디비를 바라보고 있다. (........) 사실 한 프로젝트에서 여러개의 디비를 사용하는게 이상한 설계인데, SPOF나기 딱 좋은 지점이기 때문이고, 관리도 어렵다. 특히나 테스트시에는 디비를 않쓰는게 가장 베스트이고 (외부 연결점이 없을수록 격리성이 좋다) 테스트시에 디비를 어쩔수 써야 한다면 1번 디비를 테스트 -> 2번 디비를 테스트 -> .. 하는 식으로 단 하나의 디비만을 테스트 하는것을 추천한다. 각 디비를 초기화 및 셋팅하는데 걸리는 시간과 각각의 ..
이력서 자동 생성 - 로직 1. 모델 생성 2. API 서비스 - 스크랩핑을 통한 블로그 키워드 추출 ( tistory / medium / velog ) - 키워드 추출 제시 or 사용자가 키워드 입력(10개) - 결과 저장(생성된 자소서) - 다시 LSTM 실행 후 모델 생성 - 비용 절감을 위해 API 서비스+ 스크랩핑은 람다로 구현 예정 - 모델과 결과 저장은 s3 - 머신러닝은 시간이 너무 오래 걸려 일단은 자체 서버로 해결
8. 메신져 (slack // facebook messenger // whatapp // kakaotalk) 1. 기능 요구 사항 사용자 간의 일대일 채팅 및 그룹 채팅. 사용자가 텍스트, 사진, 비디오 및 기타 파일 전송 채팅 기록 사용자의 온라인/오프라인 상태 표시 알림 2. 추정 및 제약 사항 매일 약 100억 개의 메시지가 전송되는 20억 명의 사용자를 처리 최소 대기 시간으로 실시간 채팅. 메시징 서비스는 고가용성이어야 하지만 이 경우 일관성이 우선순위가 높다. 시스템은 매우 일관성이 있어야 한다. 즉, 모든 사용자는 로그인하는 모든 장치를 통해 동일한 순서로 메시지를 볼 수 있어야 한다. 예상 용량 메시지 저장용량 추정 각 메시지에 대해 평균 크기가 140바이트이고 매일 전송되는 약 100억 개의 메시지를 추정하면 일일 메시지에 대해 약 1.4TB의 저장 용량이 필요 100억 메시지 * 140바이트 ..
raw query + group by 그리고 다른 디비에 접속 django 사용 중 3단 콤보로 맞아서 글로 남김 1. raw query + group by 에러 1 2 3 raw_query = "select date, sum('price') from test_table group by date" Model.objects.raw(raw_query) Colored by Color Scripter cs 실행시 만일 에러가 아래와 같다면 Raw query must include the primary key django에서는 Model.objects.raw() 실행은 ORM 요청이기 때문에 raw 쿼리 요청 시에도 primay key를 요구하는데, 문제는 group by 문구가 들어가면 select 1 id, sum('price') from test_table group ..
object detection with yolo Object Detection 아는 척 하기 시작 1. Object Detection란? Object Detection == 물체 검출 즉, 카메라나 다른 센서를 이용하여 자동차, 사람, 동물, 물건 등을 검출. 추가로 이게 어떤 것을 검출 했는지 나타는 Classification(분류) 이란 단어를 사용 2. object detection Overview 3. Object Detection엔 이런 알고리즘이 쓰였어요 Nearest neighbor (NN): 학습 데이터셋을 저장한 후에, 예측 단계에서는 투입된 이미지와 가장 가까운 데이터의 레이블을 통해 예측 하는 방법 K-nearest neighbor (KNN) : NN은 하나의 레이어만 보고 판단한다. 많은 레이어를 보고 판단방법 Convolutio..
확률적 자료구조 결론!! 1. 이 값이 데이터에 없는지 알고 싶어!! == Bloom filter 2. 그룹별로 카운팅을 하고 싶어!! == count min sketch 3. 엄청 큰 데이터의 카운팅을 하고 싶어 == hyper log log 해당 영상을 정리 및 풀어서 쓴 글입니다. 영상만 봐도 이해하시기 좋습니다!! 해시 == 고유한 key를 만들고 저장하고 싶은 것!! == 검색을 n(1)로 끝내고 싶어!! 하지만 저장하는 공간을 최소화하면 충돌문제가 일어나고, 해시 함수의 연산(보통은 충돌을 없애기 위해 모듈러 함수에서 key값을 엄청나게 큰 소수로 정한다)에도 많은 시간이 들어간다. 충돌이다!! John smith 와 sandra dee가 같은 곳을 바라보고 있다 충돌은 곧 디스크접근을 했다는 것이고, 그건 ..
7. UBER // 쏘카 // lyft // 카카오택시 지리적으로 A TO B까지의 운반해야 하는 모든 서비스에 적용 가능하다. ( 배민 / 요기요 등) 여기에서는 우버를 예로 들었다. 1. 기능 요구 사항 승차 공유 시스템 택시 호출 예약 요청이 들어오면 가까운 차들에게 순서대로 승차 요청이 가며 그중 한 명이 요청을 받을 수 있다 예상 도착 시간을 알 수 있어야 한다 택시 트래킹 (사용 가능한 드라이버를 볼 수 있어야 한다) 예상 가격을 알 수 있어야 한다. 번외 기능 원하는 운전자를 선택할 수 있어야 한다 운전자마다 가격(팁)이 다를수 있다 탑승 날짜와 시간을 예약할수 있어야 한다. 2. 용량 추정 및 제약 3억 명의 고객과 100만 명의 일일 활성 고객, 500,000명의 일일 활성 운전자가 있다고 가정합니다. 하루 100만 라이드를 가정합니다. 모든..
pypy Python의 언어 구현 중 하나로, C로 짜인 기존의 CPython과 달리 Python으로 Python을 만드는 프로젝트이다. 이 프로젝트의 진짜 놀라운 점은 기존 CPython보다 전혀 느리지 않을뿐더러, 오히려 성능면에서 CPython을 능가하고 있다는 점이다. 1. 설치 $ apt install pypy 2. 사용 주피터에서는 그냥 상단에 %%pypy만 쓰면 된다. Just-In-Time (JIT) Compiler 이기 때문에 해당 단락만 pypy로 실행되기 때문이다. (다른 단락은 기존의 python이 실행된다) 그래서 각 단락마다 "import time"을 두번 했다 성능은? 9 배 차이.... 일반 커맨드에서 실행한다면 pypy로 실행하면 된다. $pypy ./test.py 499999999..