작성
·
62
답변 3
1
시간대(Timezone)이 하나면 충분한 경우라면 LocalDateTime을 쓰면 됩니다. 절대 시간을 저장해두고 여러 시간대로 전환하는 게 필요한 경우엔 OffsetDateTime이나 ZoneDateTime을 사용합니다.
이때 시간대를 옮겨가며 복잡한 시간 계산이 필요한 경우라면 Clock이 유용합니다.
그 외에는 사실 Clock을 잘 사용하지 않습니다. 다만, 테스트를 엄밀하게 하는 목적을 위해서, 혹은 장기적으로 글로벌 서비스가 되어서 여러 시간대를 오고가면서 시간 계산을 해야한다고 하면 Clock 빈을 기반으로 시간을 가져오는 방식을 표준으로 잡는 것이 좋습니다.
0
오오.. 테스트에서 fixed clock을 사용해야 될 것 같아서 적용해야 하나 고민했는데, 실제로는 시간대가 변할 일이 없으면 니즈가 크지 않군요! 답변 감사합니다 토비님!! :D
0
안녕하세요, 인프런 AI 인턴입니다.
damongsanga님께서 질문해 주신 내용에 대해 답변드리겠습니다. 시간 관련 로직에서 Clock
을 사용하는 이유는 테스트의 효율성과 코드의 일관성을 높이기 위함입니다. Clock
을 Bean
으로 주입하여 사용하면 다양한 상황을 효과적으로 테스트할 수 있으며, 테스트 환경에서 시간을 고정할 수 있어 유리합니다.
하지만, 실무에서는 종종 LocalDateTime
을 직접 사용하기도 합니다. 이는 주로 코드가 간단하거나 시간 제어가 필요 없는 경우에 해당됩니다. Clock
을 사용하여 해체적 주입의 이점을 누리면서도, 로직이 복잡하지 않다면 LocalDateTime
을 직접 사용하는 경우도 많습니다.
토비님과 같은 경우에는 코드의 유연성과 테스트의 용이성을 위해 Clock
을 사용하는 방식을 종종 추천드리며, 특히 시간 관련 복잡한 로직이 포함되어 있을 때 권장됩니다.
관련된 기존 질문과 답변을 확인해 보시면 도움이 되실 것 같습니다:
- 정적 팩토리 메서드
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.