한국에서 많은 분들이 프로그래밍을 하고 있지만 대부분 국내에서만 프로그래밍을 하시는 경우가 많아 글로벌 환경을 고려하여 프로그래밍을 해야 하는 경우 간혹 실수를 하시는 경우가 있습니다. 아무래도 평소 습관대로 프로그래밍을 하시기 때문에 발생되는 문제인데, 하지만 이럴 경우 나중에 큰 낭패를 보게 될 수도 있다고 생각합니다.

그 중 대표적인 것이 바로 Time Zone인데, 우리나라의 경우 단일 시간대에 전 국토가 분포하고 있기 때문에 다른 시간대에 가보는 것은 비행기를 타고 해외여행을 가는 정도밖에 없기 때문에 많은 분들에게 익숙하지 않아 생기는 문제이기도 합니다. 미국이나 러시아 같이 여러 시간대에 걸칠 정도로 넓은 국토를 가진 나라의 개발자들은 어려서부터 Time Zone에 대해 학교에서 배우기 때문에 Time Zone에 대해 상당히 익숙한 편이여서 이런 부분에 대해서는 사전에 고민을 많이 하고 프로그래밍을 하는 것 같습니다.

그렇다면 프로그래밍을 하는데 있어 Time Zone이 왜 문제가 될까요?

이 문제를 이해하기 위해서는 먼저 시간대와 관련된 몇 가지 개념을 알고계셔야 하는데, 시간대와 관련한 중요한 개념은 시스템 타임, 유저 타임 그리고 지리적 타임이 있습니다. 마지막으로 언급된 지리적 타임의 경우 조금 예외적인 경우에 사용되기 때문에 시스템 타임과 유저 타임의 2가지를 위주로 간략하게 설명 드리겠습니다. 시스템 타임은 바로 서버가 운영되는 곳의 Time Zone을 의미하여, 두 번째로 언급한 유저타임은 사용자가 컴퓨터를 사용하는 곳의 Time Zone을 의미합니다. 예를 들어 한국에 서버가 놓여있고, 사용자가 미국에 있는 경우 미국의 사용자가 한국의 서버에 접속해서 일을 하는 것을 가정하시면 앞으로 제가 드릴 설명을 보다 잘 이해하시리라 생각합니다.

위의 예와 같은 경우 사용자가 데이터를 저장한다고 하면 어떤 시간을 기준으로 데이터를 저장해야 하는 것이 가장 바람직할 것인지에 대해 한번 생각하실 필요가 있습니다.

이 문제를 얼핏 생각하면 사용자 테이블에 칼럼 하나을 만들어서 해당 유저의 Time Zone을 기록하고, 데이터를 저장할 시점에 관련 데이터에 시스템 타임을 더해서 기록하면 될 것 같습니다. 하지만, 그렇게 할 경우 사용자가 데이터에 대한 쿼리를 보낼 때마다 시간 부분에 대한 Conversion이 이루어진 상태로 데이터가 검색이 되어야 하며, 이 때 항상 년도와 날짜에 대한 계산이 병행되어서 진행되어야 하는 문제가 발생합니다. 게다가 검색된 데이터를 사용자 기준으로 보여주기 위해서는 사용자에게 보내기 전 사용자 기준의 Time Zone으로 Conversion 해야 하는 작업이 진행되어야 합니다. 그래서, 이렇게 설계를 할 경우 상당히 번거로울 뿐만 아니라 조금만 잘못 생각하면 엉뚱한 데이터를 보여줄 가능성이 매우 높다고 하겠습니다.

또한, 앞서 언급한 문제를 해결하기 위해 시스템 타임과 유저타임을 같이 데이터베이스에 저장하면 쉽게 해결될 것처럼 보이지만 데이터베이스에 저장되어야 하는 데이터가 많을 경우 저장공간을 많이 차지하게 되어 좋은 솔루션이 될 수 없는 경우가 있습니다. 게다가 설사 이렇게 구성을 한다고 하더라도 서버에서 돌아가는 배치작업이 생기는 경우에는 사용자 별로 처리되기가 힘들어 결국 시스템 타임으로 데이터가 저장되는 경우가 발생하며, 이럴 경우 시간처리에 대한 부분이 각기 다르게 처리가 되기 때문에 자칫 실수할 경우 문제가 매우 심각해집니다. 따라서, Time Zone과 관련된 부분은 설계 시 상당한 고려를 해야 하며, 그렇지 않고 개발이 된 경우에는 운영 시 상당한 어려움을 겪을 수 밖에 없게 됩니다.

한국은 이미 여러 부분에서 국제화되어 있고 이러한 변화가 점차 심화될 것이기 때문에 앞으로 국내의 많은 프로그래머 분들이 해외로 나가실 일이 더 많아질 것이라고 생각되는데, 혹시라도 국제화 프로그래밍을 하실 때 제가 드린 이야기를 한번쯤 고려해서 프로그래밍을 하신다면 좀 더 좋지않을까 하는 마음에서 이 글을 써 봅니다.

댓글을 달아 주세요

카테고리

나누어보기 (648)
스타트업 & 벤처 (15)
컨설팅이야기 (239)
MBA이야기 (39)
CC Korea 이야기 (36)
문화 이야기 (92)
세상사는 이야기 (188)
IT 이야기 (39)
Statistics Graph
BLOG main image
세상을 보는 또 다른 시선
때로는 '사실'보다 '희망'이 더 절박할 때가 있습니다. 적절한 희망이야말로 사람을 움직이게 하는 원동력이 되고, 사람이 움직이면 희망은 곧 사실로 바뀌게 됩니다.
by 5throck

세상을 보는 또 다른 시선

5throck's Blog is powered by Tattertools / Supported by TNM Media
Copyright by 5throck [ http://mbastory.tistory.com/ ]. All rights reserved.

Tattertools TNM Media DesignMyself!