본문 바로가기

도서/모던 자바 인 액션7

모던 자바 인 액션 - 10장 람다를 이용한 도메인 전용 언어 배울 내용 도메인 전용 언어(domain-specific languages, DSL)이란 무엇이고, 어떤 형식으로 구성되는가? DSL을 API에 추가할 때의 장단점 JVM에서 활용할 수 있는 자바 기반 DSL을 깔끔하게 만드는 대안 최신 자바 인터페이스와 클래스에 적용된 DSL에서 배움 효과적인 자바 기반 DSL을 구현하는 패턴과 기법 이들 패턴들은 자바 라이브러리와 도구에서 얼마나 흔히 사용되는가? 서론 많은 개발자들이 프로그래밍 언어도 결국 '언어' 라는 사실을 잊곤 합니다. 언어라는 것은 전달하고자 하는 바를 명확하고 안정적인 방식으로 전달하는 것입니다. 프로그래밍 언어도 결국 언어라는 사실은 프로그램도 결국 사람들에게 이해하기 쉽고 명확한 형태로 만들어져야 한다는 것을 의미합니다. 이해하기 쉬운 .. 2023. 8. 27.
모던 자바 인 액션 - 7장 - 병렬 데이터 처리와 성능 배울 내용 병렬 스트림으로 데이터를 병렬 처리 병렬 스트림의 성능 분석 포크/조인 프레임워크 Spliterator로 스트림 데이터 쪼개기 배웠던 내용 새로운 스트림 인터페이스를 이용해서 데이터 컬렉션을 선언형으로 제어하는 방법에 대해 배움 외부 반복 -> 내부 반복으로 바꾸면 네이티브 자바 라이브러리가 스트림 요소의 처리를 제어할 수 있음 그래서 자바 개발자들은 컬렉션 데이터 처리 속도를 높이려고 따로 고민할 필요 X 컴퓨터의 멀티 코어를 활용해서 파이프라인 연산을 실행할 수 있음 자바 7 에서는 컬렉션을 병렬로 처리하기 굉장히 까다로웠습니다. 간단한 병렬 처리 순서 데이터를 서브파트로 나누어서 각각의 스레드로 할당 자원에 대한 레이스 컨디션(race condition)이 발생하지 않도록 동기화 처리 마.. 2023. 8. 10.
모던 자바 인 액션 - 6장 - 스트림으로 데이터 수집 해당 포스팅은 모던 자바 인 액션이라는 책을 읽고 정리한 것입니다. 배울 내용 Collectors 클래스로 컬렉션을 만들고 사용하기 하나의 값으로 데이터 스트림 리듀스하기 특별한 리듀싱 요약 연산 데이터 그룹화와 분할 자신만의 커스텀 컬렉터 개발 앞장 간단 정리 스트림으로 데이터베이스 질의와 비슷한 형태의 코드와 연산을 수행할 수 있게 됨 스트림은 중간 연산과 최종 연산이 있고 중간 연산은 파이프라인을 생성할 수 있고, 스트림 요소를 소비하는 시점이 아님 반면 최종 연산은 스트림의 요소를 소비하는 실제로 연산을 실행해 결과를 도출, lazy를 통한 연산 최적화 적용 이번장의 핵심은 collect를 이용해 다양한 요소를 누적하여 스트림의 결과로 반환하는 리듀싱 연산을 배워볼 것입니다. 다양한 요소 누적 방.. 2023. 8. 5.
모던 자바 인 액션 - 5장 다양한 스트림 활용 해당 포스팅은 모던 자바 인 액션이라는 책을 읽고 정리한 것입니다. 이 장에서 배울 내용 필터링, 슬라이싱, 매칭 검색, 매칭, 리듀싱 특정 범위의 숫자와 같은 숫자 스트림 사용하기 다중 소스로부터 스트림 만들기 무한 스트림 이번 장에서는 스트림 API가 지원하는 다양한 연산을 살펴봅니다. 필터링, 슬라이싱, 매핑, 검색, 매칭, 리듀싱 등 다양한 데이터 처리 질의를 한번 배워보겠습니다. 그리고 여러 종류의 데이터 소스를 스트림으로 만드는 방법과, 무한 스트림과 같은 특수한 스트림도 한번 배워보겠습니다. 5.1 필터링 Predicate를 이용해서 요소를 필터링하는 방법과 고유 요소만 필터링하는 방법이 존재합니다. 5.1.1 Predicate로 필터링 이렇듯 이 filter 메서드는 Predicate를 인.. 2023. 8. 2.