728x90
반응형

개발팁 4

Sqlalchemy를 통한 postgresql timezone 설정

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

Programming/Python 2023.05.08

[Nextjs] API 기능을 통한 파일 업로드 처리(base64) #2

개요 얼마 전 포스팅에서 nextjs를 통해서 api 구조에서 파일을 업로드하는 내용을 다루었다. 이게 로컬에서 개발할 때는 잘 작동하고 별 문제 없이 백엔드로 파일이 전달이 되었는데, 배포하려고 서버에 올려두고 테스트를 진행하니 backend에서 파일을 전달받을 때 자꾸 파일이 바뀌어서 업로드 되었다. 미세하게 파일 용량이 바뀌어서 업로드되는데 이렇게 되면 파일이 손상되어서 이미지 파일이 브라우저에서 열리지 않는 문제가 발생하였다. 어떤 원인 때문일지 디버깅을 해보다가 파일이 로컬 브라우저에서 nextjs API로 전달될 때 이미 파일이 바뀌 상태에서 업로드되었다. 위의 그림과 같이 파일이 전달되는데 브라우저에서 nextjs server로 전달될 때 이미 파일이 바뀐다. 근데 로컬 nextjs를 구동할..

Programming/Nextjs 2023.03.22

[fastapi] Pydantic Model을 Request Form 데이터로 받기

회사에서 Fastapi를 통해서 개발을 하고 있는데 Fastapi의 장점 중에 하나가 Swagger와 Redoc으로 자동으로 문서를 만들어준다는 것이다. Fastapi를 사용하면서 백엔드 개발자의 입장에서 이점이 가장 마음에 든다. 코드만 잘 작성해두면 자동으로 문서를 만들어준다니!! Request parameter와 Response Model을 잘 정리해두면 이쁜 문서가 짠 하고 만들어진다. 근데 개발을 하다가 Request parameter에 Schema로 이쁘게 만들 수 있는데 이게 json형태로 자동으로 지정된다. Schema를 잘 작성하면 Frontend에서 거기 맞게 데이터를 잘 가공해서 보내면 문제가 없는데 파일 업로드를 같이 하면서 데이터를 받으려니 Form으로 받아야 하는데 그럼 정성스럽..

Programming/Python 2023.01.31

[Codeigniter 3.x] 쿼리 로그 남기기 #1

개발을 하다가보면 로그의 중요성은 아무리 말로 설명해도 부족하기만 하다. 몸소 체험하고 왜 로그가 중요한지 절실하기 느껴봐야 어떤 로그를 어떻게 남겨야 하는지 느낄 수 있게 된다. 웹 개발에서 있어서 Query에 관련된 로그는 필수적이라고 볼 수 있을 것이다. 어떤 쿼리를 던졌고 해당 쿼리를 처리하는데 걸린 시간이 얼마인지 알 수 있다면 사이트 혹은 프로그램이 느려지는 구간을 찾는데 많은 도움을 받을 수 있게 된다. 해당 글에서는 Codeigniter 3.x 버전에서 쿼리를 남기는 코드를 남겨보고자 한다. 기본적으로 Codeigniter 3.x 버전의 디렉토리 구조를 파악하고 있다는 전제로 하고 설명을 시작한다. 우선 /application/config/hooks.php 파일을 열어서 다음에 코드를 입력..

Programming/PHP 2023.01.27
728x90
반응형