postgresql에는 partial index가 있습니다. 문서에 있는 것을 간단하게 요약하면, 조건을 만족하는 것만 indexing 하기 위해 쓰입니다. To avoid indexing common values가 중요한 부분입니다. django에서 email 필드에 대해, 널 값인 경우 unique 제약조건을 먹히지 않게 하는 방법을 찾다가 아래의 방법을 찾게 되었는데요. 35 ~ 39번째 의미는, 제약 조건을 추가할 텐데 UniqueConstraint를 추가할 거라는 의미입니다. field는 email, name은 email_idx, 중요한 것은 Q 조건입니다. email__isnull이 False인 것에 대해서만 적용하겠다는 의미입니다. 장고에서 이것을 어떻게 쓰는지에 대해, 이 글에서는 언급을 ..
전체 글 검색 결과
안녕하세요. 이번 시간에는 django에서 string 조건 검사를 할 때 쓸 수 잇는 contains, icontains, exact, iexact에 대해 간단하게 알아봅시다. 제대로 이해하시려면 collation에 대한 지식도 필요하고, 이 문서를 볼 필요도 있긴 합니다만, 추후에 조금 딥하게 다뤄보도록 하겠습니다. 먼저, 데이터는 이렇게 3개가 있습니다. "hi my name is cho", "nice to mEet you", "nice to meet you" 이렇게 세 개의 포스트가 있습니다. 먼저, icontains는 대소문자 구분 없이 문자열에 "meet"가 들어가는 것을 뽑아줍니다. "m"이나 "M" 등은 아스키 범위 내에 들어가기 때문에, "mEet"가 걸리던, "meet"가 걸리던 mat..
사실 간단한 테스트도 안 해 보고 무작정 이렇게 하면 되겠다고 생각했다가 뚝배기 깨진 적이 몇 번 있었습니다. localStorage하고 sessionStorage도 그 중 하나이니, 간단하게 기록해 두려고 합니다. 먼저 localStorage의 속성에 대해 간단하게 알아보겠습니다. 티스토리의 스토리에 접속해 봅시다. 다음에, 로컬 저장소 탭을 열어보면, 출처가 티스토리 닷컴이라고 되어 있는데요. 여기에, 키 값이 "local"이고, 값이 "test"인 데이터를 저장해 보겠습니다. 이제 새로운 탭을 열어서, 다른 티스토리 닷컴으로 이동해 봅시다. 그러면 로컬 저장소에 키가 "local"이고 값이 "test"인 것이 잘 들어가 있음을 볼 수 있습니다. 이것을 꺼내오기 위해, localStorage의 get..
postgresql에서 random 함수를 쓰면서 generate_series 함수를 썼습니다. 오늘 이 함수에 대해서 조금 더 자세히 알아보도록 하겠습니다. 먼저, 숫자형에 대해서는, 이렇게 2가지 인자를 줄 수 있습니다. 이 때에는 step이 1입니다. 1씩 증가한다는 의미입니다. start가 1이고, end가 10인데요. 1부터 10까지 순서대로 결과에 나타납니다. 1부터 10까지 출력됨을 볼 수 있어요. 그런데 4씩 증가하게 할 수 없을까요? 3번째 인자로 4를 주면 됩니다. start가 1이고, end가 10, step이 4이므로, 1, 5, 9만 출력됩니다. 9 다음에 13인데요. 13은 10보다 크기 때문에, 출력되지 않습니다. 결과를 보면 1, 5, 9만 나왔음을 알 수 있습니다. 반대로,..
안녕하세요. 이번 시간에는 postgresql에서 random 함수를 알아보겠습니다. random 함수는 꽤 간단하게 쓸 수 있습니다. 그냥 random(). 끝입니다. 결과를 보시면 0.1816107987이 나옵니다. 또 다시 호출해 보겠습니다. 이번에는 0.3785214382가 나오네요. 문서에 따르면 이 함수는 0 이상 1 미만인 실수를 돌려준다고 되어 있어요. 추가로 언급된 부분은, security한 랜덤을 원한다면 crypto를 알아보라고 되어 있어요. 그러면 위 쿼리는 무엇을 하는 것일까요? 일단 random()*100이면, 0이상 100미만인 랜덤 실수를 뽑습니다. 그런데 floor가 붙었네요. 바닥 함수이므로, [0, 99]의 랜덤한 정수를 뽑습니다. 70은 0이상 99이하의 정수이니, 해..
최근댓글