피드로 돌아가기
Dev.toBackend
원문 읽기
Go 언어의 Reference Date 기반 Time Formatting 설계 분석
# Go Beginner Mistake #2: Why `time.Now().Format("YYYY-MM-DD")` Doesn't Work in Go
AI 요약
Context
대부분의 언어가 채택한 Placeholder Token(%Y, YYYY) 방식의 복잡한 포맷 사전 정의 및 암기 필요성 존재. Go 언어는 이를 해결하기 위해 특정 시점의 날짜를 기준으로 하는 새로운 레이아웃 매칭 아키텍처를 도입함.
Technical Solution
- 2006-01-02 15:04:05 MST(1, 2, 3, 4, 5, 6, 7 순차 숫자)라는 고정된 Reference Date 정의
- 포맷 문자열 내의 숫자 패턴을 분석하여 해당하는 시간 구성 요소와 1:1 매핑하는 구조 설계
- Token Dictionary 조회 과정 없이 입력된 레이아웃 자체를 예시 데이터로 인식하여 처리하는 로직 구현
- 2006(4자리 연도), 06(2자리 연도), 15(24시간제) 등 숫자 값에 따른 명확한 의미 부여로 모호성 제거
- 사용자가 원하는 출력 형태 그대로 Reference Date를 재배치하는 직관적인 인터페이스 제공
실천 포인트
- Go에서 시간 포맷팅 시 'YYYY-MM-DD' 대신 '2006-01-02'를 사용했는지 확인 - 24시간제 표현이 필요할 경우 Reference Hour인 '15'를 적용했는지 검토 - 커스텀 레이아웃 작성 시 Mon Jan 2 15:04:05 MST 2006 기준 날짜의 구성 요소를 정확히 준수했는지 체크