일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 기능개발
- 알고리즘
- @Setter
- 영속 자료구조
- 스택/큐
- 프로그래머스
- 롬복 어노테이션
- H-index
- 완주하지 못한 선수
- 스프링 스케쥴러
- 고차원 함수
- @configuration
- @Data
- 커링
- 정렬
- 모던 자바 인 액션
- 다리를 지나는 트럭
- @EnableScheduling
- Java
- 검색 기능 확장
- kubenetes
- 해시
- 루씬 인 액션
- K번째수
- 쿠버네티스
- 코딩 테스트
- 전화번호 목록
- 가장 큰 수
- 크론 표현식
- @Getter
- Today
- Total
목록JAVA & Spring/모던 자바 인 액션 (23)
Today I Learned
19.3 스트림과 게으른 평가 스트림은 한 번만 소비할 수 있다는 제약이 있어서 재귀적으로 정의할 수 없다. 이 제약 때문에 발생하는 문제들을 살펴보자. 19.3.1 자기 정의 스트림 다음은 소수를 생성하는 예제 코드이다. public static Stream primes(int n) { return Stream iterate(2, i -> i + 1) .filter(MyMathUtil::isPrime) .limit(n); } public static boolean isPrime(int candidate) { int candidateRoot = (int) Math.sqrt((double) candidate); return IntStream.rangeClosed(2, candidateRoot) .noneM..
이 장의 내용 일급 시민, 고차원 함수, 커링, 부분 적용 영속 자료구조 자바 스트림을 일반화하는 게으른 평가와 게으른 리스트 패턴 매칭, 자바에서 패턴 매칭을 흉내 내는 방법 참조 투명성과 캐싱 19.1 함수는 모든 곳에 존재한다 자바8에서는 ::연산자로 메서드 참조를 만들거나 람다 표현식으로 직접 함수값을 표현해서 메서드를 함수값으로 사용할 수 있다. 19.1.1 고차원 함수 Comparator.comparing처럼 다음 중 하나 이상의 동작을 수행하는 함수를 고차원 함수라 부른다. 하나 이상의 함수를 인수로 받음 함수를 결과로 반환 스트림 연산과 마찬가지로 고차원 함수를 구현 시, 인수로 전달된 함수가 부작용을 포함할 가능성을 염두에 두어야 한다. 19.1.2 커링 커링은 x와 y라는 두 인수를 받..
18.1 시스템 구현과 유지보수 함수형 프로그래밍이 제공하는 부작용 없음(no side effect)과 불변성(immutability)이라는 개념은 시스템의 유지보수에 큰 도움을 준다. 18.1.1 공유된 가변 데이터 공유된 가변 데이터 구조로 인해 변수가 예상하지 못한 값을 갖게 되고 데이터 갱신 사실을 추척하기 어려워진다. 클래스 또는 객체의 상태를 바꾸지 않으며 return 문을 통해서만 자신의 결과를 반환하는 메서드를 순수(pure) 메서드 또는 부작용 없는(no side effect) 메서드라고 부른다. 여기서 부작용은 함수 내에 포함되지 못한 기능을 의미한다. 자료구조를 고치거나 필드에 값을 할당(setter 메서드 같은 생성자 이외의 초기화 동작) 예외 발생 파일에 쓰기 등의 I/O 동작 수..
이 장의 내용 리액티브 프로그매잉을 정의하고 리액티브 매니패스토를 확인함 애플리케이션 수준, 시스템 수준의 리액티브 프로그래밍 리액티브 스트림, 자바 9 플로 API를 사용한 예제 코드 널리 사용되는 리액티브 라이브러리 RxJava 소개 여러 리액티브 스트림을 변환하고 합치는 RxJava 동작 살펴보기 리액티브 스트림의 동작을 시각적으로 문서화하는 마블 다이어그램 리액티브 프로그래밍 패러다임의 중요성 : 달라진 환경 빅데이터 : 페타바이트 단위로 구성되며 계속해서 증가 다양한 환경 : 모바일 디바이스에서 클라우드 기반 클러스터에 이르기까지 사용 패턴 : 사용자는 24시간 서비스를 이용할 수 있으며 밀리초 단위의 응답을 원함 다양한 시스템과 소스에서 들어오는 데이터 항목 스트림을 비동기적으로 처리하고 합쳐..