
React를 이용해 Todo List를 만드는 중 key값으로 Date.now()를 사용했다.
고유하게 구별할 수 있는 값을 주기 위해서인데 이게 정확히 무엇인지 궁금했다.
대충 눈에 보이기로는 마치 현재 시간 값을 가져올 것 같은데, 그러면 " 이게 고유한 값이 될 수 있나? " 싶었다.
먼저 Date객체를 짚고 넘어가자. 이는 built-in Object, 즉 이미 JS에서 기본적으로 탑재되어 제공해주는 고유 객체이다.
Date객체는 1970년 1월 1일 UTC(협정 세계시) 자정과의 시간 차이를 밀리초로 나타내는 정수 값을 담는다(MDN참고).
그리고 이 객체엔 다양한 메소드가 함께 제공되는데 그것 중 하나가 .now()이다.
Date.now()는 기준이 되는 UTC 기준으로 1970년 1월 1일 0시 0분 0초부터 현재까지 경과된 밀리 초를 반환한다.
즉, 내 예상과 달리 현재의 시간을 담는 것이 아니라 특정 시점으로부터 경과된 시간을 담기 때문에 매번 담는 값은 같은 수가 없고 고유한 값이 되는 것이다.