728x90
반응형

PostgreSQL 2

Sqlalchemy를 통한 postgresql timezone 설정

개발을 하다보면 날짜를 다루는 일을 꽤 많이 하게 된다. 그만큼 중요한 업무이기도 하다. 보통 테이블을 설계할 때 Row 단위로 해당 Row가 생성된 일시와 수정된 일시, 그리고 삭제된 일시를 자동으로 남기도록 한다. 이 때 각 데이터베이스마다 날짜를 다루는 컬럼 타입이 조금씩 상이하다. mysql에서는 timezone이라는 개념이 없이 timestamp, datetime, date 등의 형태로 지정한다. 이와 다르게 postgresql에서는 timestamp에 timezone을 같이 저장하는 형태와 저장하지 않고 timestamp만 저장하는 형태 두 가지로 구분하여서 생성한다. 국내용으로 개발할 때는 굳이 timezone을 저장할 필요없이 timestamp만 저장하면 될 것이고 해외도 같이 서비스를 할..

Programming/Python 2023.05.08

[sqlalchemy] Postgresql Query ORM 변환

어제 회사에서 코드를 보다가 뭔가 개선점을 발견하고 한참을 작업해서 코드를 수정했는데 기록을 남겨두고자 포스팅한다. AS-IS 해당 코드는 이런 역할을 한다. 검색에서 광고로 사용할 키워드를 등록해두면 사용자가 검색 질의를 하면 해당 키워드가 현재 사용중인 광고에 포함되는 키워드인지 확인해보는 것이다. 각 광고는 여러개의 키워드를 가질 수 있으면 광고와 키워드 간의 관계는 m:n의 관계이며 각 광고는 서비스의 시작일과 종료일을 가진다. 이렇게 키워드를 추출하는 이유는 DB의 부하를 줄이기 위해서 키워드 리스트만 따로 추출해서 레디스에 들고 있다가 질의가 들어오면 해당 키워드로 등록된 광고가 있는지 확인하고 있으면 정보를 가져오고 없으면 빈 값을 보내기 위해서이다. 즉, 디비의 부하를 줄이기 위한 조치이다..

Programming/Python 2023.03.22
728x90
반응형