IT기초

μ„œλ²„ νƒ€μž„μ‘΄κ³Ό μ‹œκ°„ 동기화 문제 – 둜그 μ‹œκ°„μ΄ 이상할 λ•Œ 해결법

πŸ₯„ν…Œν¬ ν•œ μŠ€ν‘Ό 2026. 5. 28. 10:01

λͺ©μ°¨

  1. 둜그 μ‹œκ°„μ΄ 9μ‹œκ°„ μ–΄κΈ‹λ‚œλ‹€λ©΄?
  2. νƒ€μž„μ‘΄μ΄λž€ 무엇인가?
  3. μ„œλ²„ νƒ€μž„μ‘΄ 확인 및 λ³€κ²½ν•˜κΈ°
  4. NTPλž€ 무엇인가? – μ„œλ²„ μ‹œκ°„μ΄ ν‹€μ–΄μ§€λŠ” 이유
  5. μ‹œκ°„ 동기화 μƒνƒœ 확인 및 μ„€μ •
  6. νƒ€μž„μ‘΄ 문제둜 λ°œμƒν•˜λŠ” μ‹€μ œ 사둀
  7. 정리 및 λ‹€μŒ 단계

1. 둜그 μ‹œκ°„μ΄ 9μ‹œκ°„ μ–΄κΈ‹λ‚œλ‹€λ©΄?

μ„œλ²„ 둜그λ₯Ό ν™•μΈν•˜λ‹€ 보면 μ‹€μ œ λ°œμƒ μ‹œκ°„κ³Ό λ‘œκ·Έμ— 기둝된 μ‹œκ°„μ΄ 9μ‹œκ°„ 차이가 λ‚˜λŠ” κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€. μ˜€μ „ 10μ‹œμ— λ°œμƒν•œ 였λ₯˜μΈλ° λ‘œκ·Έμ—λŠ” μƒˆλ²½ 1μ‹œλ‘œ κΈ°λ‘λ˜μ–΄ μžˆλŠ” μ‹μž…λ‹ˆλ‹€.

이 문제의 원인은 μ„œλ²„μ˜ νƒ€μž„μ‘΄μ΄ ν•œκ΅­ μ‹œκ°„(KST)이 μ•„λ‹Œ UTC둜 μ„€μ •λ˜μ–΄ 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€. UTC와 KST의 차이가 μ •ν™•νžˆ +9μ‹œκ°„μ΄κΈ° λ•Œλ¬Έμ— 이런 ν˜„μƒμ΄ μƒκΉλ‹ˆλ‹€.

νƒ€μž„μ‘΄ 섀정은 λ‹¨μˆœνžˆ 둜그 μ‹œκ°„ 문제뿐 μ•„λ‹ˆλΌ, λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯λ˜λŠ” λ‚ μ§œ·μ‹œκ°„ 데이터, cron μž‘μ—…μ˜ μ‹€ν–‰ μ‹œκ°„, SSL μΈμ¦μ„œ μœ νš¨μ„± 검사 λ“± μ—¬λŸ¬ 곳에 영ν–₯을 λ―ΈμΉ©λ‹ˆλ‹€.

2. νƒ€μž„μ‘΄μ΄λž€ 무엇인가?

**νƒ€μž„μ‘΄(Time Zone)**은 지역별 ν‘œμ€€ μ‹œκ°„λŒ€λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. μ§€κ΅¬λŠ” 경도에 따라 μ‹œκ°„μ΄ λ‹€λ₯΄κΈ° λ•Œλ¬Έμ—, μ „ 세계λ₯Ό μ—¬λŸ¬ κ΅¬μ—­μœΌλ‘œ λ‚˜λˆ„μ–΄ 각 ꡬ역에 ν‘œμ€€ μ‹œκ°„μ„ μ§€μ •ν•©λ‹ˆλ‹€.

**UTC(ν˜‘μ • μ„Έκ³„μ‹œ)**λŠ” ꡭ제 ν‘œμ€€ κΈ°μ€€ μ‹œκ°„μœΌλ‘œ, 영ꡭ κ·Έλ¦¬λ‹ˆμΉ˜ μ²œλ¬ΈλŒ€λ₯Ό κΈ°μ€€μœΌλ‘œ ν•©λ‹ˆλ‹€. λŒ€λΆ€λΆ„μ˜ ν΄λΌμš°λ“œ μ„œλ²„λŠ” 기본적으둜 UTC νƒ€μž„μ‘΄μœΌλ‘œ μ„€μ •λ©λ‹ˆλ‹€.

**KST(ν•œκ΅­ ν‘œμ€€μ‹œ)**λŠ” UTC보닀 9μ‹œκ°„ λΉ λ¦…λ‹ˆλ‹€. λ¦¬λˆ…μŠ€μ—μ„œλŠ” Asia/Seoul둜 ν‘œκΈ°ν•©λ‹ˆλ‹€.

3. μ„œλ²„ νƒ€μž„μ‘΄ 확인 및 λ³€κ²½ν•˜κΈ°

ν˜„μž¬ μ„œλ²„μ˜ νƒ€μž„μ‘΄μ„ ν™•μΈν•©λ‹ˆλ‹€.

 
 
timedatectl

좜λ ₯ κ²°κ³Όμ—μ„œ Time zone ν•­λͺ©μ„ ν™•μΈν•©λ‹ˆλ‹€. UTC둜 ν‘œμ‹œλœλ‹€λ©΄ 변경이 ν•„μš”ν•©λ‹ˆλ‹€. μ‚¬μš© κ°€λŠ₯ν•œ νƒ€μž„μ‘΄ λͺ©λ‘ 쀑 Asia κ΄€λ ¨ ν•­λͺ©μ„ κ²€μƒ‰ν•˜λ €λ©΄ μ•„λž˜ λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

 
 
timedatectl list-timezones | grep Asia

νƒ€μž„μ‘΄μ„ μ„œμšΈλ‘œ λ³€κ²½ν•©λ‹ˆλ‹€.

 
 
sudo timedatectl set-timezone Asia/Seoul

λ³€κ²½ ν›„ λ‹€μ‹œ timedatectl둜 ν™•μΈν–ˆμ„ λ•Œ Time zone: Asia/Seoul (KST, +0900)으둜 ν‘œμ‹œλ˜λ©΄ μ„±κ³΅μž…λ‹ˆλ‹€.

νƒ€μž„μ‘΄μ„ λ³€κ²½ν•œ ν›„μ—λŠ” Nginx, MySQL λ“± μ£Όμš” μ„œλΉ„μŠ€λ₯Ό μž¬μ‹œμž‘ν•΄μ•Ό λ³€κ²½λœ νƒ€μž„μ‘΄μ΄ ν•΄λ‹Ή μ„œλΉ„μŠ€μ—λ„ μ μš©λ©λ‹ˆλ‹€.

 
 
sudo systemctl restart nginx
sudo systemctl restart mysql

4. NTPλž€ 무엇인가? – μ„œλ²„ μ‹œκ°„μ΄ ν‹€μ–΄μ§€λŠ” 이유

νƒ€μž„μ‘΄μ„ μ˜¬λ°”λ₯΄κ²Œ μ„€μ •ν–ˆλ”λΌλ„, μ„œλ²„μ˜ μ‹œμŠ€ν…œ μ‹œκ°„ μžμ²΄κ°€ μ‹€μ œ μ‹œκ°„κ³Ό μ‘°κΈˆμ”© 차이가 λ‚  수 μžˆμŠ΅λ‹ˆλ‹€. μ„œλ²„μ˜ ν•˜λ“œμ›¨μ–΄ μ‹œκ³„λŠ” μ‹œκ°„μ΄ μ§€λ‚˜λ©΄μ„œ μ˜€μ°¨κ°€ λˆ„μ λ˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ **NTP(Network Time Protocol)**λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. NTPλŠ” μΈν„°λ„·μ˜ μ‹œκ°„ μ„œλ²„μ™€ 주기적으둜 동기화해 μ„œλ²„ μ‹œκ°„μ„ μ •ν™•ν•˜κ²Œ μœ μ§€ν•˜λŠ” ν”„λ‘œν† μ½œμž…λ‹ˆλ‹€.

ν˜„λŒ€ Ubuntu μ„œλ²„λŠ” systemd-timesyncdλΌλŠ” λ‚΄μž₯ μ‹œκ°„ 동기화 μ„œλΉ„μŠ€κ°€ 기본으둜 ν™œμ„±ν™”λ˜μ–΄ μžˆμ–΄ λŒ€λΆ€λΆ„μ˜ 경우 별도 μ„€μ • 없이 μžλ™μœΌλ‘œ λ™κΈ°ν™”λ©λ‹ˆλ‹€.

5. μ‹œκ°„ 동기화 μƒνƒœ 확인 및 μ„€μ •

동기화 μƒνƒœλŠ” timedatectl λͺ…λ Ήμ–΄λ‘œ ν™•μΈν•©λ‹ˆλ‹€. 좜λ ₯ κ²°κ³Όμ—μ„œ NTP service: active와 System clock synchronized: yesκ°€ ν‘œμ‹œλ˜λ©΄ μ •μƒμ μœΌλ‘œ 동기화 μ€‘μž…λ‹ˆλ‹€.

동기화 μ„œλΉ„μŠ€ μƒνƒœλ₯Ό λ³„λ„λ‘œ ν™•μΈν•˜λ €λ©΄ μ•„λž˜ λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

 
 
sudo systemctl status systemd-timesyncd

동기화가 μ•ˆ 될 λ•ŒλŠ” μ„œλΉ„μŠ€λ₯Ό μž¬μ‹œμž‘ν•©λ‹ˆλ‹€.

 
 
sudo systemctl restart systemd-timesyncd

κΈˆμœ΅μ΄λ‚˜ 둜그 뢄석 λ“± μ‹œκ°„ 정확도가 μ€‘μš”ν•œ μ„œλΉ„μŠ€λΌλ©΄ chronyλΌλŠ” 더 μ •λ°€ν•œ NTP ν΄λΌμ΄μ–ΈνŠΈλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

 
 
sudo apt install chrony -y
sudo systemctl enable chrony
sudo systemctl start chrony

μ„€μΉ˜ ν›„ chronyc tracking λͺ…λ ΉμœΌλ‘œ 동기화 μƒνƒœλ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

6. νƒ€μž„μ‘΄ 문제둜 λ°œμƒν•˜λŠ” μ‹€μ œ 사둀

사둀 1. cron μž‘μ—…μ΄ μ—‰λš±ν•œ μ‹œκ°„μ— 싀행됨 "맀일 μ˜€μ „ 9μ‹œμ— 리포트 이메일 λ°œμ†‘" cron을 μ„€μ •ν–ˆλŠ”λ° UTC κΈ°μ€€μœΌλ‘œ λ™μž‘ν•΄ ν•œκ΅­ μ‹œκ°„ μ˜€ν›„ 6μ‹œμ— λ°œμ†‘λ˜λŠ” μƒν™©μž…λ‹ˆλ‹€. νƒ€μž„μ‘΄μ„ Asia/Seoul둜 λ³€κ²½ν•˜λ©΄ ν•΄κ²°λ©λ‹ˆλ‹€.

사둀 2. λ°μ΄ν„°λ² μ΄μŠ€μ˜ λ‚ μ§œ 데이터가 ν•˜λ£¨μ”© λ°€λ¦Ό MySQL의 νƒ€μž„μ‘΄μ΄ UTC둜 μ„€μ •λœ μƒνƒœμ—μ„œ μžμ • 이후 데이터λ₯Ό μ €μž₯ν•˜λ©΄ λ‚ μ§œκ°€ ν•˜λ£¨ μ•žμœΌλ‘œ κΈ°λ‘λ˜λŠ” κ²½μš°μž…λ‹ˆλ‹€. MySQL μ„€μ •μ—μ„œ default_time_zone = '+09:00'을 μΆ”κ°€ν•΄ ν•΄κ²°ν•©λ‹ˆλ‹€.

사둀 3. SSL μΈμ¦μ„œ μœ νš¨μ„± 였λ₯˜ μ„œλ²„ μ‹œκ°„μ΄ μ‹€μ œ μ‹œκ°„κ³Ό 크게 차이 λ‚˜λ©΄ SSL μΈμ¦μ„œ μœ νš¨μ„± 검사가 μ‹€νŒ¨ν•  수 μžˆμŠ΅λ‹ˆλ‹€. NTP λ™κΈ°ν™”λ‘œ ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

7. 정리 및 λ‹€μŒ 단계

였늘 배운 핡심을 μ •λ¦¬ν•©λ‹ˆλ‹€.

  • ν΄λΌμš°λ“œ μ„œλ²„μ˜ κΈ°λ³Έ νƒ€μž„μ‘΄μ€ UTC이며, κ΅­λ‚΄ μ„œλΉ„μŠ€λΌλ©΄ Asia/Seoul둜 λ³€κ²½ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • sudo timedatectl set-timezone Asia/Seoul λͺ…λ Ή ν•˜λ‚˜λ‘œ νƒ€μž„μ‘΄μ„ λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • νƒ€μž„μ‘΄ λ³€κ²½ ν›„μ—λŠ” κ΄€λ ¨ μ„œλΉ„μŠ€λ₯Ό μž¬μ‹œμž‘ν•΄μ•Ό μ μš©λ©λ‹ˆλ‹€.
  • NTPλ₯Ό ν†΅ν•œ μ‹œκ°„ λ™κΈ°ν™”λ‘œ μ„œλ²„ μ‹œκ°„μ΄ μ‹€μ œ μ‹œκ°„κ³Ό 차이 λ‚˜μ§€ μ•Šλ„λ‘ μœ μ§€ν•©λ‹ˆλ‹€.
  • Ubuntu μ„œλ²„λŠ” systemd-timesyncdκ°€ κΈ°λ³Έ ν™œμ„±ν™”λ˜μ–΄ μžˆμ–΄ 별도 μ„€μ • 없이 λ™κΈ°ν™”λ©λ‹ˆλ‹€.

λ‹€μŒ κΈ€μ—μ„œλŠ” ν™˜κ²½λ³€μˆ˜λž€ 무엇인지, μ„œλ²„μ—μ„œ λΉ„λ°€λ²ˆν˜Έλ₯Ό μ½”λ“œμ— λ„£μœΌλ©΄ μ•ˆ λ˜λŠ” 이유λ₯Ό μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.