본문 바로가기

소프트웨어 이야기

(Django)데이터베이스 커넥션을 관리하는 방법  Connection 재사용Django는 데이터베이스에 쿼리를 처음 날리기 전에 Connection을 맺는다. 그리고 커넥션을 계속 열어뒀다가, 다음 요청이오면 이걸 재사용한다. Request가 날라올 때마다 Connetion을 새로 맺는건 부담이 큰 작업이다. 그래서 Django에는 CON_MAX_AGE라는 설정값이 있다. 여기에 설정된 기간만큼 Connection을 닫지않고, 보존하겠다는 개념이다. 따로 설정해주지 않..
(PostgreSQL) OOM Killer PostgreSQL 서버에 Out Of Memory가 발생하는 경우, PostgreSQL 자체를 재부팅해야지만 복구할 수 있다. 메모리가 부족해지고, Swap 영역이 증가하게 되면 Linux Kernel의 OOM Killer가 프로세스를 죽이게 된다. 그러면서 부족해진 메모리를 늘리고, Swap 영역을 줄인다. 이러면, 서버에 접속할 수 없는 수준으로 서버가 고장나는 일은 막을 수 있다. 그러나 OOM Killer가 Ses..
(PostgreSQL) work_mem 메모리 설정 postgresql의 work_mem이란? 이 값은 정렬 /  해시 / 조인 등의 동작에 사용될 수 있는 메모리 사용량을 의미한다.   이 메모리는 임시 디스크에 데이터를 쓰기 전에 사용된다.  기본값은 4MB으로 설정된다. 그런데 어떤 아티클에서는 일반적으로 64MB 정도가 적합한 수치라고 한다.  만약 PostgreSQL이 temporary file을 사용하고 있다면, work_mem을 늘리면 좋다..
[Django]Django 테스트코드 라이브러리 unittest VS pytest Django를 시작하면서 파이썬 테스트코드 라이브러리를 찾아봤었다. 파이썬에서는 unittest와 pytest가 많이 사용되는 편이였다Ruby On Rails의 Rspec 같은 BDD + Unit Test 라이브러리를 찾아봤는데, 마음에드는 라이브러리를 찾지 못했다. ( 예를 들면, mamba라는 라이브러리가 있었는데, 대중적이지 않아 보여서 믿음직하지 않았다 )Unittest와 Pytest 간단 소개 이 둘은 테..
[pytest] PyCharm 기본 테스트 라이브러리를 pytest으로 변경하기 PyCharm의 기본 테스트 코드 runner는 unittest로 되어있다. 그래서 pytest으로 테스트코드 돌릴 때에는 설정값들을 변경해줘야한다.1. Pycharm Preferences > Django > Do not use Django test runner 체크해주기 2. Preference > Default test runner를 pytest으로 변경해준다끝 :) 
[django] get_XXX_display 함수 : 모델의 속성 값을 사람이 읽을 수 있는 문장으로 변환하기 Django Model Field에 choices 속성이 걸려있는 경우, 코드에 맞는 display용 텍스트를 볼 수 있게 하는 함수가 있다.음.. 말로하면 어려운데, 아무튼 이런거다.from django.db import models class Book(models.Model): CONDITIONS = ( (1, '새책'), (2, '중고책'), ) name = models.CharField(ma..
[django] 자주 사용되는 query set 모아서 관리하기 자주 사용되는 query set들을 한군데 모아서 관리하는 방법을 설명해보고자 합니다 :) 1. manager.py 를 만들어서, query set을 추가합니다class LessonQuerySet(models.QuerySet): def jazz(self): return self.filter(subject='jazz')2. model에 query set을 manager으로 등록해줘야합니다 class Lesson(mo..
[pytest] 함수의 매개변수로 기대한 값이 전달되었는지 확인하는 테스트코드 작성하기 pytest에서 테스트 코드를 작성할 때, 특정 함수의 매개변수로 기대한 값이 잘 넘어갔는지 확인하고 싶을 때가 있습니다. 예를 들면, 외부 API와 연동하는 함수를 테스트해보고 싶을 때, 이 함수에 특정 값이 매개변수로 잘 전달되었는지 확인하고 싶어지죠. 이럴 때는 mocker 클래스와 assert_called_with 함수를 사용하면 됩니다. 예시아래의 예시는 viewset에서 내부 함수를 호출했을 때, 기대한 매개변수..
(데이터과학)학습 로드맵 과정AI 전문가들의 제언2018/07/08 (민현석 님) https://facebook.com/255834461424286_479160352425028 (김남주 님) https://facebook.com/255834461424286_455382238136173 큐AI 전문가들의 제언 (앤드류) Mooc으로 머신러닝을 학습한 초보자가 논문을 읽고, 산업에 생산적으로 기여할 수 있는 수준으로 도달하는 방..
(데이터 시각화)Redash란? Redash는 데이터 조회 / 시각화를 편하게 해주는 툴입니다. (이런 느낌? ) 특징 - SQL문을 날리면, 반환된 값으로 그래프를 만들 수 있습니다. - 당연히, CSV 다운로드 기능도 있습니다. - RDB / ElasticSearch / NoSQL / Athena / BigQuery 등의 여러 데이터 소스를 연결해서 사용할 수 있습니다. - 여러 데이터 소스에서 얻은 쿼리 ..