728x90 전체 글86 [modern java in action] stream(3) 4-3 매핑 → 특정 객체에서 특정 데이터를 선택하는 작업 1) 스트림의 각 요소에 함수 적용하기 map : 인수로 제공된 함수는 각 요소에 적용되며 함스를 적용한 결과가 새로운 요소로 매핑된다. → 새로운 버전을 만드는 개념 (변환에 가까운 매핑) List dishNames = menu.stream() .map(Dish::getName) .collect(toList()); 2) 스트림 평면화 map과 Arrays.stream 활용 String[] arrayOfWords = {"Goodbye", "World"}; Stream streamOfWords = Arrays.stream(arrayOfWords); words.stream() .map(word -> word.split("")) //각 단어를 개별 문.. 2021. 6. 24. [Modern java in action] Stream(2) 4-1 필터링 → 스트림의 요소를 선택하는 방법 1) 프레디케이트로 필터링 → 스트림 인터페이스는 filter 메서드를 지원한다. filter메서드는 Predicate(boolean을 반환하는 함수)를 인수로 받아서 일치하는 모든 스트림을 반환한다. 예시) 프레디케이트 필터링 List vegetarianMenu = menu.stream() .filter(Dish::isVegetarian) .collect(toList()); 2) 고유 요소 필터링 → 고유 요소로 이루어진 스트림을 반환하는 distinct 메서드도 지원한다. (고유 여부는 스트림에서 만든 객체의 hashCode, equals로 결정됨) 예시) 고유 요소 필터링 List numbers = Arrays.asList(1,2,1,3,3,2,4);.. 2021. 6. 24. [modern java in action] Stream(1) 3-1 스트림이란? → 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소 특징 - 선언형 : 더 간결하고 가독성이 좋아진다. - 조립할 수 있음 : 유연성이 좋아진다. - 병렬화 : 성능이 좋아진다. 3-2 스트림 시작하기 - 연속된 요소 : 특정 요소 형식으로 이루어진 연속된 값 집합의 인터페이스 - 소스 : 컬렉션, 배열, I/O 자원 등의 데이터 제공 소스로부터 데이터를 소비한다 / 정렬된 컬렉션으로 스트림을 생성하면 정렬이 그대로 유지된다. - 데이터 처리 연산 : 함수형 프로그래밍 언어에서 지원하는 연산과 데이터베이스와 비슷한 연산을 지원한다. (filter, map, reduce, find, match, sort) / 스트림 연산은 순차적, 또는 병렬로 실행할 수 있다. 스트림 의 중.. 2021. 6. 24. [MQ] KafKa kafka ? - 여러 대의 분산 서버에서 대량의 데이터를 처리하는 분산 메시징 시스템 구성요소 - Broker - Message - Producer - Consumer - Topic Broker ? - 하나의 서버당 하나의 데몬 프로세스로 동작하여 메시지 수신/전달 요청을 받아들임 - 디스크의 총 용량에 따라 장기간 데이터를 보존할 수 있음 Partition? - 토픽에 대한 대량의 메시지 입출력을 지원하기 위해, 브로커 상의 데이터를 읽고 쓰는 것의 단위 - 브로커 클러스터 안에 분산 배치되며 Producer로부터 메시지 수신, Consumer에게 배달 분산을 실시함으로 하나의 토픽에 대한 대규모 데이터 수신과 전달을 지원 * 메시지 처리속도, Consumer 개수, Consumer 내 스레드 수 등.. 2021. 6. 10. 이전 1 ··· 16 17 18 19 20 21 22 다음 728x90