728x90
개발시에 특정 날짜로 부터, 혹은 특정 날짜까지의
조건을 가지는 기능을 작성할때가 있다.
라이브러리를 사용하던 new Date() 를 사용하던 말이다.
보통 이런 기능은 작업 후에
기기의 (스마트폰 or 컴퓨터 등) 시간을 임의로 조정해서
테스트 하기 마련이다.
여느날과 같이 작업 후에 디바이스에서 시간을 임의 조정하였다.
하지만 해당 함수가 작동하지 않았다. 함수에 에러가 있나 했지만
함수 자체에는 이상이 없었다. (콘솔만 괜히 열나게 찍었네)
이유는 간단했다.
SSR환경에서 작업환경에서는
서버와 클라이언트의 날짜가 서로 다를 수도 있다는 것을 간과한 것이다.
클라이언트 쪽에 날짜 관련 로직을 작성했다면
디바이스에 임의로 조작한대로 시간이 나온다.
내가 8/10일로 디바이스 날짜를 설정했다면 어플리케이션에서도 8/10일로 보여진다.
반면에 서버 쪽에 날짜 관련 로직을 작성했다면
클라이언트의 날짜를 자기고 오지 않고
서버의 시간을 가지고 오기 때문에
정직하게 오늘날짜를 찍어준다.
그래서 임의로 시간을 조작해도 해당 함수가 작동하지 않는 것이었다.....쓰읍
어찌 보면 당연한것 같기도 하고.,.
그렇다면.. 테스트를 용이하게 위해서는
앞으로 날짜 관련 코드를 작성할때는
클이언트 쪽에 작성해야 할 것 같다!?!
728x90
'Front-end' 카테고리의 다른 글
[Specificity] 특수성: (0,1,0) 파헤치기 (37) | 2024.05.28 |
---|---|
[Nextjs] would you like to use 'src/' directory? App Router? import alias (@/*)? (11) | 2024.05.09 |
[OG] 오쥐는 OG tag, Nextjs에 적용까지 (91) | 2024.04.30 |
[JS] 배열 검사하기 (feat. some(), every() ) (1) | 2024.04.29 |
[내가 만든 쿠키]가 아닌 친구들은 이제.. Third-party cookie will be blocked. Learn more in the Issues tab. (74) | 2024.04.24 |