본문 바로가기

소프트웨어 이야기/장고와 루비온레일즈

(Django) Rest Frame Work Filter 활용하기 FilterBackend 사용하기ViewSet에서 Request 파라미터로 받은 값이랑 일치하는 데이터를 조회해야할 때, 아래처럼 일일히 파라미터를 받아다가, filter 조건에 추가해줘야한다. class ProductList(generics.ListAPIView): serializer_class = PurchaseSerializer def get_queryset(self): """ This vi..
(PostgreSQL)PostgreSQL의 Idle In Transaction Connection PostgreSQL의 Idle in Transaction 상태란? PostgreSQL에 붙는 Connection은 열려있지만, 아무런 쿼리를 보내지 않는 상태를 의미한다. 세션에 idle in Transaction이 많은 경우 시스템 리소스를 많이 쓰게 된다. 그리고 pgpool, pgbouncer 같은 connection pooler가 transaction pooling mode로 실행되는 경우, 이 설정을 사용하는 의미..
(Django)데이터베이스 커넥션을 관리하는 방법  Connection 재사용Django는 데이터베이스에 쿼리를 처음 날리기 전에 Connection을 맺는다. 그리고 커넥션을 계속 열어뒀다가, 다음 요청이오면 이걸 재사용한다. Request가 날라올 때마다 Connetion을 새로 맺는건 부담이 큰 작업이다. 그래서 Django에는 CON_MAX_AGE라는 설정값이 있다. 여기에 설정된 기간만큼 Connection을 닫지않고, 보존하겠다는 개념이다. 따로 설정해주지 않..
[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..
Django VS Ruby On Rails Django가 루비온레일즈를 보고 만들었다고 하는데, 어떤 점이 같고 다른지 정리해보고자 한다.공통점1. 마이그레이트 파일로 테이블을 관리한다.    레일즈가 schema_migrations 테이블에 마이그레이트 코드를 관리한다면, 장고는 애플리케이션이름과 마이그레이트 파일명 단위로 마이그레이트 코드를 관리한다. 2. 기타 등등* 마이그레이트로 테이블을 만들면, 자동으로 id 필드를 추가해준다.  ..
레일즈에 Service/Decorator Layer 적용하기 (8) - 끝~ 이 포스팅은 
레일즈에 Service/Decorator Layer 적용하기 (7) - Helper 대신에 Decorator 사용하기 이 포스팅은 
레일즈에 Service/Decorator Layer 적용하기 (6) - Service Object으로 콜백 옮기기 이 포스팅은 
레일즈에 Service/Decorator Layer 적용하기 (5) - Form Object에서 유효성 체크하기 이 위키는 Build Sleek Rails Components With Plain Old Ruby Objects을 정리한 글입니다 :)저자는 모델 객체에서는 association과 constant만 관리되는게 더 로직을 깔끔하게 만든다고 이야기했었습니다. 그래서 유효성 체크와 callback 로직은 model에서 다루지 않아야한다고 했죠. 그래서 이번 챕터에서는 model 객체에 있던 유효성 로직을 지우고, 대신에 form object를 사..