티스토리 뷰
PostgreSQL 의 timezone 을 보다가 jvm의 timezone 까지 확인할 일이 생겼다. 서버를 처음 구축할 당시 아무 생각없이 timezone 을 .profile 에
TZ='Asia/Seoul'; export TZ
설정을 추가하여 사용하고 있었는데 java 의 로그시간이 이상한 것을 보고 어느 부분을 수정해 주어야 하는지 찾아 보았다. 우선 date 명령어를 통해서 현재 시간이 맞지 않는 것을 확인했고 이것을 고치면 jvm 도 같이 고쳐질 것이라고 생각했다.
1. /etc/localtime 은 어떤 시간대를 사용할 지 정해주는 파일로 사용해야 하는 파일은 /usr/share/zoneinfo/ 밑에 있는 폴더 안의 파일들을 사용하면 되는데 서울은 /usr/share/zoneinfo/Asia/Seoul 파일이다. 이 파일로 변경해주자.
sudo mv /etc/localtime /etc/localtime.back (무서워서 백업..)
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
이렇게 하고 터미널을 재접속 해주면 date 명령어에 정확한 시간이 나오는 것을 확인할 수 있다. 그리고 jvm을 기동하니 로그가 여전히 잘 못된 시간을 표현해 주고 있었다.
2. /etc/timezone 있는데 vi 로 열어보면 기본 Etc/UTC 로 되어있었다. 이 경로도 /usr/share/zoneinfo/ 의 하위 폴더 경로와 비슷하다고 생각해서 확인해 보니가 /usr/share/zoneinfo/Etc/UTC가 있었고 timezone 파일 내용을 변경해 보았다.
sudo vi /etc/timezone
Asia/Seoul 입력
그렇게 한 뒤 jvm 을 재기동해 보니 로그시간이 정상적으로 출력되는 것을 확인했다. 개발한지 조금 지났는데 모르는 것이 너무 많은..ㅠㅠ
'IT > 개발' 카테고리의 다른 글
Java9 - Collection Factory Methods (0) | 2019.03.14 |
---|---|
Java9 - Module System (0) | 2019.03.12 |
Java8 Feature (0) | 2019.03.04 |
local Docker 개발 환경 만들기 (0) | 2018.10.19 |
Spring @Transactional 사용하기 (0) | 2018.10.18 |