Skip to main content

Command Palette

Search for a command to run...

typeORM에서 timezone 올바르게 적용하기

Published
1 min read

글로벌 서비스를 대비하여, typeORM 사용시 DB 타임존을 어떻게 적용할지 정리하였습니다.

typeORM 사용시 다음 절차를 통해, 타임존을 올바르게 설정해 사용할 수 있습니다.

  • DB 타임존 확인하기
  • typeORM의 타임존 설정
  • 설정된 타임존 확인하기

DB 타임존 확인하기

DB의 타임존은 다음 쿼리로 확인할 수 있습니다. 현재 저는 AWS RDS mySQL을 사용하고 있어서, 파라미터 그룹 변경을 통해 타임존을 설정할 수 있어요. 참고자료: https://aws.amazon.com/ko/premiumsupport/knowledge-center/rds-change-time-zone/

select NOW(),@@global.time_zone, @@session.time_zone;

그럼 아래와 같이 결과가 나오며, 타임존에 따라 시간이 다르게 표현되는 것을 확인할 수 있습니다.

  • 한국시간(KST, UTC+09:00)

  • UTC

typeORM의 타임존 설정

앞에서 확인한 타임존에 맞게, typeORM의 타임존 설정을 적용하여야 typeORM을 사용한 코드 상에서 시간 컬럼 값이 올바르게 표시됩니다. DB 타임존이 KST인 경우 ‘+09:00’, UTC인 경우 ‘+00:00’ 혹은 값을 생략하면 됩니다.(명시적인 +00:00값을 선호하는 편입니다)

const typeormConfig: DataSourceOptions = {
    type: 'mysql',

// ... DB 설정 ...

    timezone: '+09:00',
};

##

설정된 타임존 확인하기

엔티티의 createdAt 컬럼으로 타임존 적용을 확인하였고, 다음과 같이 타임존 값에 따라 결과가 달라지는 것을 확인할 수 있습니다. 끝의 Z를 통해, UTC format으로 통일된 것도 보이네요. (엔티티를 만들어 쿼리하는 코드는 생략하였습니다.)

// typeormConfig.timezone= '+00:00',
createdAt :: 2021-10-06T17:05:46.000Z

// typeormConfig.timezone= '+09:00',
createdAt :: 2021-10-06T08:05:46.000Z

More from this blog

"고객 인터뷰는 해봤어?" — RAG 프로젝트 회고

AI가 나에게 물었다. "고객 인터뷰는 해봤어?" 이 질문 하나로 개발 프로세스가 바뀌었다. 프로젝트 개요 이 프로젝트는 상담 추천 시스템(콘텐츠 기반 필터링)을 만들기 위해 벡터 DB를 설계하고 POC를 해보는 과정에서 파생됐다. 2026년 3월부터 1주 단위 스프린트 4번으로 4주 동안 기획·디자인·FE·BE·AI 개발을 1인으로 진행했다. 원래는 유사한 상담을 벡터 검색으로 추천해주는 모듈을 개발 중이었다. 여기서 아이디어를 확장하여 새로...

Apr 21, 20263 min read17

『인스파이어드』를 읽고 — 엔지니어의 시선으로

책에 대하여 『인스파이어드』는 IT 제품(앱, 웹, 일반 프로그램 등)을 어떻게 하면 더 잘 만들 수 있을지 가이드를 주는 책이다. 특히 IT 제품팀과 제품 관리자의 관점에서 중요한 내용이 많이 수록되어 있다. 나는 엔지니어로서 더 나은 제품팀을 만드는 데 어떻게 기여할 수 있을지, 그리고 엔지니어링 기술력을 어떻게 효율적으로 활용할 수 있을지에 대한 관점으로 읽어나갔다. 엔지니어의 역할에 주목하며 대부분의 내용은 제품팀과 제품 관리자, 그리고...

Jul 30, 20242 min read10

API 응답 속도가 얼마나 빨라야될까? (페이지 로딩시간, API TPS, latency)

안녕하세요. 팀에서 최근 들어 API 최적화에 대한 논의가 이루어지면서, API의 응답 속도에 대한 기준과 논리가 필요하여 몇 가지 찾아 정리해보았습니다. ## 왜 API 응답 속도가 빨라야 할까요? 사용자가 서비스를 기다리는 페이지 로드 시간이 곧 비용이기 때문입니다. 긴 페이지 로딩 시간은 서비스 트래픽과 전환율에 악영향을 줍니다. (자료가 과장됐거나 정확하지 않을 수는 있겠지만, 일관된 언급이 신뢰성을 준다고 생각합니다.) 기존에 페이지...

Jan 5, 20231 min read8

4년차 초보 개발자의 성장 방법

개발자로써 밥을 먹은 지 4년차가 되었다. 일하면서 배울수록 모르는 것, 배울 것이 많이 보이고, 업무 범위와 책임이 커졌다. 특히 팀장으로써의 직무를 수행하면서 나, 개인에 대한 성장 뿐만아니라 팀의 성장, 회사의 성장을 고민하게 되었다. 동료 개발자들과 일하면서 “4년 동안 어떻게 실력을 키울 수 있었느냐”에 대한 질문을 많이 받았다. 이에 대해서 명확하게 말로 설명할 수 없었던, 정리되지 않은 것들이 있었고, 지금까지 개발하면서 성장하는데...

Sep 7, 20223 min read2
D

dev-marco-song

42 posts

Hi there 👋 백엔드 개발자 마르코입니다.

A natural-born problem solver. I can do this all day :)