[JS] safari에서 Date 사용시 주의사항

ARA JO·2021년 3월 16일
0

Simtime 개발일지

목록 보기
7/7

Nan-Nan-Nan

친구에게 simti.me 을 보여주려다가 매우 당황스러운 일이 있었다. 로그인하고 서버로부터 아무런 데이터를 받아오지 않아 화면이 뜨지 않는 것.

달력 월표시에 Nan.Nan이라고 입력된 것이 수상했다.
request를 확인해보니 ~api/invitations/Nan-Nan-Nan/Nan-Nan-Nan 으로 요청하고 있었다.

개발하면서 단 한번도 겪어본 적 없는 문제라 당황스러웠다.
하지만 단 한번도 겪어보지지 못해서 원인이 명확했다.

친구는 맥북을 쓰고있었다 즉, safari에서 date 로직이 제대로 돌아가지 않고 있다는 것이다. 단 한 대의 애플 기기도 없는 내가 간과해버린 크나큰 문제이다. 이게 그 브라우저 문제구나....... 🙄

그리고 internet explorer에서도 동일한 문제가 발생하는 것을 확인했다.

Safari에서는 new Date('yyyy-m-d')를 쓸 수 없다.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Date

문서를 자세히 읽고 링크를 따라가보면, ECMA Script의 Date Time String Format이 정확하게 규정하고 있는 것을 알 수 있다.

ECMAScript defines a string interchange format for date-times based upon a simplification of the ISO 8601 Extended Format. The format is as follows: YYYY-MM-DDTHH:mm:ss.sssZ

기존에 나는 YYYY-M-D와 같은 포맷도 사용하고 있었다. 하지만 날짜와 관련되어 로직을 구현한다면, 반드시 YYYY-MM-DDTHH:mm:ss.sssZ 형식을 따르는게 안전하다.

공-식-문-서의 중요성

그동안 공식문서를 읽어라 읽어라 참 많이 들었고, 그러도록 노력해야지. 라고 생각은 했다. 하지만 그 중요성의 정도를 깨닫지 못했고, '활용'하는 스킬이 부족했다. 단순히 기능을 구현해내는 것에 급급한 지난 1년의 결과.

읽긴 읽었는데 어떤 점을 특히 유의하면서 봐야하고, 반드시 기억해야할 부분을 짚는 센스가 없었다는 것이다.

이번 일을 겪고나니, 적어도 세가지에 대해서 통감했다.

  • parmeter로 넘어올 수 있는 기본 제공 타입이나 형태를 확실히 하자. 물론 return도.
  • frontend 개발에 있어서는 '브라우저 호환성 부분'을 잘 살펴보는 습관을 갖자.
  • 블로그나 stackoverflow로 문제 해결을 한 후에, 반드시 관련 공식문서를 확인하고 정리하자.

머리로는 알고 있었지만, 쉽게 간과해버린 부분이었던 것 같다. 내친김에 '공식문서 읽기'에 대한 방법을 정리해보는 시리즈를 만들어서 하나하나 기록해둬야겠다.

🍎 ?

수정을 했는데 직접 확인할 길이 없다. 🤦‍ 친구에게 다시 한 번 확인해달라고 부탁할 수 밖에..! (windows용 safari를 다운받아 설치해봤지만 넘나 예전 버전..)

역시 인생은 장비빨인ㄱr .. 다들 이렇게 앱등이로 거듭난걸까.

아직 마련은 하지 않았지만, 마련할 계획만으로 벌써 개발자력 +1 된 것만 같은 이 기분..........

profile
Sin prisa pero sin pausa (서두르지 말되, 멈추지도 말라)

0개의 댓글