![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/DwuaR/btsIUUi6uQ3/BVTE73WPKyKdS7kEwsvOGk/img.png)
사건의 발단회사 프로젝트에 date를 비교하여 유효한지 체크하는 로직이 있었다.간단한 로직이고 대부분 유저들에게 잘 작동했는데, 어느 한 유저만 작동하지 않는다고 문의가 들어왔다.로그를 살펴보니, 당연히 되어야 하는 date 비교 후 결과를 리턴하는 함수에서 false 를 리턴하는 것이였다. 본래 로직은 서버에서는 "yyyyMMddHHmmss" 형식으로 시작일과 종료일을 date를 내려주고 있었고,date 객체로 변환하여 현재 시점이 validate 한지 체크했었다. 모든게 정상이였다. 대부분 유저들도 잘 사용했고 내 시뮬레이터와 실기기, 테스트코드 환경에서도 잘 작동해서 실마리를 찾는게 어려웠다. 그런데 google 에 'swift dateForamtter issue' 를 검색하니 dateFormatt..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ncoKF/btsCUyMiy5X/yLayNbfKKF9OPOMltWHbC0/img.png)
연말에 전혀 예상하지 못한 오류가 보고되었다. 유저는 분명 2023년 12월 31일을 선택했는데, 2024년 12월 31일 로 나오는 이슈가 있었다. 시간이 바뀌거나 하루 단위면 UTC 관련 이겠구나 싶었는데, 다른 날짜들은 모두 정상이였고, 연도가 바뀌는 현상은? 아무런 생각도 들지 않고 감도 못잡았다. 결론부터 말하자면, 간단한 오타에 의한 이슈였다. DateFormatter DateFormatter는 서비스 영역에서 너무나 자주 만나게되는 고마운 녀석이다. "yyyyMMddHHmmss" 형식을 관례적으로 늘 자주 사용하다보니 dateFormat 이 문제일줄은 몰랐다. 눈을 씻고 기존에 (누군가) 작성해둔 코드를 찾아보니 yyyy가 소문자가 아닌 대문자 YYYY 로 되어 있었고, 여기서, yyyy 와..
- Total
- Today
- Yesterday
- 회고
- KVO
- 애플워치 데이터 전송
- easy cue
- auth
- keyboardtype
- IOS
- Swift
- musicplayer
- flo
- Xcode
- retry
- 소수점
- OAS
- 애플워치
- AVFoundation
- TextField
- openapi-generator
- Xcode15
- demical
- watch connectivity
- SwiftUI
- 2024년
- locale
- DateFormatter
- 토큰
- watchOS
- avplayer
- swift날짜
- open-api-generator
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |