나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2024-09-27 08:38:16

2022년 문제


1. 개요2. 설명3. 임시 해결책

1. 개요

2022년의 날짜를 "YYMMDDHHMM" 형식으로 저장 후 정수형으로 그대로 변환할 때 오버플로가 발생하는 버그. 업계에서는 이를 'Y2K22 버그'라고 부른다.[1]

2. 설명

예를 들어 2022년 1월 1일 0시 0분을 "YYMMDDHHmm" 형식으로 저장하면 "2201010000"이 된다. 이를 문자열 형태로 저장할 경우는 아무 문제가 되지 않지만 그대로 정수형으로 변환할 경우 2201010000이 되는데 이는 부호가 있는(signed) 32비트 정수형(C언어, C++, Java의 int형)의 최대값인 2147483647를 넘어서기 때문에 오버플로가 발생한다.

마이크로소프트 익스체인지 서버에서 이 버그가 발견되었으며 이메일이 정상적으로 전송되지 않는 버그가 발생했다. # 마이크로소프트는 문제가 발견되자 즉시 해결 방법을 내놓아 대처했다.

3. 임시 해결책


[1] 1999년에 발생한 Y2K 문제와 유사하다. 다만 2022년 문제는 Y2K 문제보다 사고 규모가 매우 작다.