시퀀스 리턴시 최고의 리턴 타입은?
원소 시퀀스를 반환하는 API를 개발할 일이 생겼다면? 어떤타입을 반환하는 방법이 최선일까?
당연히 컬렉션으로 반환하는것이 최선이다. 왜냐면 스트림으로 처리하기를 원하는 사용자와 반복으로 처리하길 원하는 사용자 모두를 다 만족시킬수 있으니까.
스트림은 iterable인터페이스가 정의한 추상메서드들을 전부 포함하지만 extend하고있지 않고있어서 반복문을 사용할수는 없음. (나중에 java가 수정되서 스트림이 iterable 메서드들 사용할수있게되면 그때 되서나 stream을 반환하라고 저자가 권유하고있음)
단, 만약 사용자가 Stream만 사용하길 원한다면 Stream을, Iterable만 사용하길 원한다면 Iterable만 반환해도 괜찮다.
Continue reading
스트림은 함수형 프로그래밍에 기초한 패러다임이다. 따라서 그냥 가져다 쓴다는 생각보다는, 이 패러다임 자체를 이해해야한다.
(함수형 프로그래밍의 개념에 대해서는 차후 다시 정리. 간단히 말해서는 순수한 함수를 작성해 사용해서 share/mutable한 상황을 겪지 않는 안정적인 프로그래밍을 지향하는 방식)
Continue reading
java8부터 추가된 Stream API 에 대해 알아보자
Continue reading
이번 아이템은 java stream을 잘 사용하는 방법에 대한 내용이다.
cf. JAVA Stream API란? 참고.
Continue reading
pod를 특정 nod에 한정해서 올리기
Continue reading
자주쓰는 쿠버네티스 커맨드 모음
Continue reading
Object이 기본 toString 메서드는 보통 클래스_이름@16진수 해시코드
를 반환함. 그러나 toString 일반규약에 따르면 간결하면서도 사람이 읽기 쉬운 형태의 유익한 정보를 반환해야한다. 또한 모든 하위 클래스에서 이 메서드를 재정의하라 고 명시하고있다. toString 메서드를 잘 재정의하면 println, assert, 디버거가 객체를 출력할 때 자동으로 불리므로 훨씬 사용하고 디버깅하기쉬워진다.
Continue reading
equals를 재정의한 클래스 모두에서 hashCode도 재정의해야함. 그렇지않으면 hashCode 일반규약을 어기게되어 HashMap이나 HashSet 의 원소로 사용할때 문제가될수있음.
Continue reading