더북(TheBook)

3.4.3 예제

닐 포드는 자신의 책에서 java.util.Calendar 클래스를 여러 책임이 있는 클래스의 예로 언급한다.[64] 달력 기능을 추상화하고 있는 클래스는 날짜를 지원한다고 생각할 것이다. 하지만 java.util.Calendar 클래스는 시각과 관련된 기능도 지원하여 다면적인 추상화 악취로 고통받는다.

날짜와 시각을 지원하는 메서드를 하나로 결합했기 때문에 Calendar 클래스의 인터페이스는 규모가 크고 이해하기도 어렵다. 이 클래스를 사용하는 과정에서 발생하는 어려움을 해결할 수 있는 대안을 찾도록 개발자들을 계속 자극했다. 이런 대안 중 하나가 바로 요다*로, 표준 자바 날짜와 시각 API의 대체물이다. 실제로 날짜·시각 처리와 관련된 다른 클래스와 기존 Calendar 클래스의 난해함 때문에 새로운 날짜와 시각 API를 JDK 버전 8에 도입했다.

 

 


* http://www.joda.org/joda-time/

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.