일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 기능개발
- 모던 자바 인 액션
- 다리를 지나는 트럭
- 스택/큐
- kubenetes
- H-index
- 정렬
- 전화번호 목록
- 검색 기능 확장
- 스프링 스케쥴러
- 고차원 함수
- @configuration
- 코딩 테스트
- 루씬 인 액션
- 롬복 어노테이션
- 쿠버네티스
- @Data
- @Setter
- 크론 표현식
- 영속 자료구조
- 커링
- @Getter
- K번째수
- 알고리즘
- 해시
- @EnableScheduling
- 가장 큰 수
- 프로그래머스
- Java
- 완주하지 못한 선수
- Today
- Total
목록JAVA & Spring/모던 자바 인 액션 (23)
Today I Learned
이 장의 내용 컬렉션 팩토리 사용하기 리스트 및 집합과 사용할 새로운 관용 패턴 배우기 맵과 사용할 새로운 관용 패턴 배우기 8.1 컬렉션 팩토리 자바에서 적은 요소를 포함하는 리스트를 어떻게 만들까? 다음 방법은 세 문자열을 저장하는데도 많은 코드가 필요하다. List friends = new ArrayList(); friends.add("Raphael"); friends.add("Olivia"); friends.add("Thibaut"); 다음처럼 Arrays.asList() 팩토리 메서드를 이용해 코드를 줄일 수 있지만, 고정 크기의 리스트이기 때문에 요소를 추가하려하면 Unsupported OperationException이 발생한다. List friends = Arrays.asList("Raph..
7.2 포크/조인 프레임워크 병렬화할 수 있는 작업을 재귀적으로 작은 작업으로 분할하여 서브태스크로 처리한 뒤, 각각의 결과를 합쳐서 전체 결과로 만드는 방식 7.2.1 RecursiveTask 활용 스레드풀을 이용하려면 RecursiveTask의 서브클래스를 만들어야하고, 추상메서드 compute를 구현해야 한다. protected abstract R compute(); compute 메서드 구현 형식은 분할 정복 알고리즘의 병렬화 버전을 사용한다. if(태스크가 충분히 작거나 더이상 분할할 수 없으면) { 순차적으로 태스크 계산 } else { 태스크를두 서브태스크로 분할 태스크가 다시 서브태스크로 분할되도록 메시지를 재귀적으로 호출 모든 서브태스크의 연산이 왑료될때까지 대기 각 서브태스크의 결과를 ..
이 장의 내용 병렬 스트림으로 데이터를 병렬 처리하기 병렬 스트림의 성능 분석 포크/조인 프레임워크 Spliterator로 스트림 데이터 쪼개기 7.1 병렬 스트림 병렬 스트림이란 각각의 스레드에서 처리할 수 있도록 스트림 요소를 여러 청크로 분할한 스트림이다. 숫자 n을 인수로 받아서 1부터 n까지의 모든 숫자의 합계를 반환하는 메서드를 구현한다고 해보자. public long sequentialSum(long n) { return Stream.iterate(1L, i -> i + 1) .limit(n) .reduce(0L, Long::sum); } n이 커져서 병렬로 처리해야되는 상황이라면 무엇부터 건드려야할까? 결과 변수는 어떻게 동기화해야할까? 몇 개의 스레드를 사용해야 할까? 숫자는 어떻게 생성..
6.4 분할 분할은 분할 함수라 불리는 프레디케이트를 분류 함수로 사용하는 특수한 그룹화 기능이다. 분할 함수는 불리언을 반환하므로 맵의 키 형식은 Boolean이며, 참 또는 거짓을 갖는 두 개의 그룹으로 분류된다. Map partitionedMenu = menu.stream().collect(partitioningBy(Dish::isVegetarian)); // {false=[pork, beef, chicken, prawns, salmon], // true=[french fires, rice, season fruit, pizza]} true 값의 키로 맵에서 모든 채식 요리를 얻을 수 있다. List vegetarianDishes = partitionedMenu.get(true); //채식인 요리 메..