본문 바로가기
728x90

Backend/Java19

[Java] (1) 시간, 날짜 관련 API(LocalTime, LocalDate, LocalDateTime) (1) 날짜, 시간 관련 API (LocalTime, LocalDate, LocalDateTime) 기존에 사용했던 Date, Calendar 클래스들은 결과가 직관적이지 않고, 달(Month)의 인덱스가 0부터 시작한다는 점과 스레드에 안전하지 않는 등 많은 문제점들이 있었습니다. 이를 보완하기 위해 자바 8 버전에서 추가된 날짜, 시간 관련 클래스인 LocalTime, LocalDate, LocalDateTime API를 지원합니다. 1. 날짜, 시간 관련 정적 팩토리 메서드 1-1. LocalTime now() 현재 시스템 시계에서 현재 시간을 LocalTime 객체를 생성합니다. LocalTime localTime1 = LocalTime.now(); // 01:53:44.770 of(int hou.. 2023. 8. 19.
[Java] 자바 8 - 올바른 Optional 사용법 올바른 Optional 사용법 실무에서 Optional을 사용하면서 정말 좋은 유틸 클래스라고 생각했습니다. Optional로 반환하면서 값이 있을 때와 값이 없을 때의 분기처리를 해줘야 하는 것을 알 수 있기 때문에 NullPointerException과 같은 예외를 방지할 수 있게 됩니다. 실제로 실무에서 Optional을 많이 사용하였는데 가끔 '여기서 굳이 Optional을 사용해야 하나?'라는 상황들이 생겼고, 오히려 코드의 가독성이 저하되는 문제들을 발견하게 되어 불필요한 Optional 사용을 줄이고, 올바른 Optional을 사용하기 위해 포스팅하게 되었습니다. 참고 - 26 Reasons Why Using Optional Correctly Is Not Optional - DZone 1. .. 2023. 8. 13.
[Java] 자바 8 - Optional 사용법 자바 8 - (1) Optional 사용법 Optional은 null이 될 수 있는 값을 명확하고 안전하게 처리하기 위해 자바 8 부터 도입된 Wrapper 클래스입니다. 기존 자바에서는 값이 없는 경우에 null을 반환하는 경우가 많았는데 제대로 null 체크를 해주지 않게 되면 NullPointerException이 발생하는 문제가 빈번히 발생하게 되었습니다. Optional은 이러한 문제를 해결하기 위해 도입된 클래스로 값이 있는 경우에는 해당 값을 감싼 Optional이 반환되고, 값이 없는 경우에는 Optional.empty() 라는 특별한 빈 Optional 객체를 반환합니다. 또한 Optional은 다양한 메서드들을 지원하므로 널 체크를 더욱 간결하고 명확하게 처리하고, 예외 상황을 더욱 세.. 2023. 7. 31.
[Java] 자바 8, 9 - 컬렉션 API 개선 자바 8, 9 - 컬렉션 API 개선 1. 컬렉션 팩토리 자바 9에서 추가된 팩토리 메서드들은 사용 시 주의할 점은 다음 세 가지이며 자세한 내용은 1-4. 주의사항을 참고하시길 바랍니다. 파라미터로 전달한 요소(Element)들은 null이면 안된다. 생성된 Collection은 추가, 삭제, 수정이 불가하다. Collection에서 지원하는 메서드들의 파라미터 또한 null이면 안된다. 1-1. List.of(E e, ..) @DisplayName("List 팩토리 사용") @Test void list_factory_test() { List coffeeList = List.of("메가커피", "스타벅스", "빽다방"); System.out.println("coffeeList = " + coffeeLi.. 2023. 7. 30.
728x90