본문 바로가기
[Java8 In Action] #8 리팩토링, 테스팅, 디버깅 [Java8 In Action] #8 리팩토링, 테스팅, 디버깅 Java8 In Action 내용을 보며 정리한 내용입니다.정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다.위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! 8.1. 가독성과 유연성을 개선하는 리펙토링 -람다 표현식은 익명 클래스보다 코드를 좀 더 간결하게 만든다.람다 표현식은 동작 파라미터화(익명클래스와 동일 개념)의 형식을 지원하므로 람다 표현식을 이용한 코드는 더 큰 유연성을 갖출 수 있다. 8.1.1. 코드 가독성 개선 -일반적으로 코드 가독성이 좋다는 것은 “어떤 코드를 다른 사.. 2018. 12. 28.
[Java8 In Action] #7 병렬 데이터 처리와 성능 [Java8 In Action] #7 병렬 데이터 처리와 성능 Java8 In Action 내용을 보며 정리한 내용입니다.정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다.위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! 7.1. 병렬 스트림 -병렬 스트림이란 각각의 스레드에서 처리할 수 있도록 스트림 요소를 여러 청크로 분할한 스트림이다. 7.1.1. 순차 스트림을 병렬 스트림으로 변환하기 -순차 스트림에 parallel 메서드를 호출하면 병렬로 처리된다.parallelStream 에 sequential 을 호출하면 순차 스트림이 된다. -병렬 스트림.. 2018. 12. 27.
[Java8 In Action] #6 스트림으로 데이터 수집 [Java8 In Action] #6 스트림으로 데이터 수집 Java8 In Action 내용을 보며 정리한 내용입니다.정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다.위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! 6.1. 컬렉터란 무엇인가? -Collector 인터페이스 구현은 스트림 요소를 어떤 식으로 도출할지 지정한다. -다수준(multilevel)로 그룹화를 수행할 때 명령형 프로그래밍과 함수형 프로그래밍의 차이점이 더욱 두드러진다. 6.1.1. 고급 리듀싱 기능을 수행하는 컬렉터 -스트림에 collect 를 호출하면 스트림의 요소에(컬렉터.. 2018. 12. 26.
[Java8 In Action] #5 스트림 활용 [Java8 In Action] #5 스트림 활용 Java8 In Action 내용을 보며 정리한 내용입니다.정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다.위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! 5.1. 필터링과 슬라이싱 5.1.1. 프리디케이트로 필터링 -filter 메서드는 프레디케이트(불린을 반환하는 함수)를 인수로 받아서 프레디케이트와 일치하는 모든 요소를 포함하는 스트림을 반환한다. 5.1.2. 고유 요소 필터링 -고유 요소로 이루어진 스트림을 반환하는 distinct 라는 메서드가 있다.고유 여부는 스트림에서 만든 객체의 has.. 2018. 12. 25.
[Java8 In Action] #4 스트림 소개 [Java8 In Action] #4 스트림 소개 Java8 In Action 내용을 보며 정리한 내용입니다.정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다.위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! 4.1. 스트림이란 무엇인가? -스트림은 자바 API 에 새로 추가된 기능으로, 스트림을 이용하면 선언형(즉, 데이터를 처리하는 임시 구현 코드 대신 질의로 표현)으로 컬렉션 데이터를 처리할 수 있다.또한 스트림을 이용하면 멀티스레드 코드를 구현하지 않아도 데이터를 투명하게 병렬로 처리할 수 있다. -스트림을 사용하면 선언형으로 코드를 구현할 수 .. 2018. 12. 24.
[Java8 In Action] #3 람다 표현식 [Java8 In Action] #3 람다 표현식 Java8 In Action 내용을 보며 정리한 내용입니다.정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다.위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! 3.1. 람다란 무엇인가? -람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화 한 것이다. 익명 이름이 없으므로 익명이라 한다. 함수 메서드처럼 특정 클래스에 종속되지 않으므로 함수라고 부른다. 하지만 메서드처럼 파라미터 리스트, 바디, 반환 형식, 가능한 예외 리스트를 포함한다. 전달 람다 표현식을 메서드 인수로 전달하거나 변수로 저장할.. 2018. 12. 23.
[Java8 In Action] #2 동적 파라미터화 코드 전달하기 [Java8 In Action] #2 동적 파라미터화 코드 전달하기 Java8 In Action 내용을 보며 정리한 내용입니다.정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다.위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! 2.1. 변화하는 요구사항에 대응하기 2.1.1. 첫 번째 시도: 녹색 사과 필터링 2.1.2. 두 번째 시도: 색을 파라미터화 2.1.3. 세 번째 시도: 가능한 모든 속성으로 필터링 2.2. 동작 파라미터화 -전략 디자인 패턴(strategy design pattern)은 각 알고리즘(전략)을 캡슐화하는 알고리즘 패밀리를 정의.. 2018. 12. 22.
[Java8 In Action] #1 기초 [Java8 In Action] #1 기초 Java8 In Action 내용을 보며 정리한 내용입니다.정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다.위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! 1.1. 왜 아직도 자바는 변화하는가? -C, C++ 는 프로그래밍 안전성은 부족하지만 작은 런타임 풋프린트(foot print)덕분에 운영체제와 다양한 임베디드 시스템에서 여전히 인기를 끌고 있다. 하지만, C, C++ 의 낮은 안정성 떄문에 프로그램이 예기치 않게 종료되거나 바이러스 등이 침투할 수 있는 보안 구멍이 있을 수 있다. 실제로 런타임 풋프.. 2018. 12. 21.
[Java] Semaphore 에 대해 알아보자. [Java] Semaphore 에 대해 알아보자. https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Semaphore.html -자바 병렬 프로그래밍을 통해 학습한 내용에도 (http://aroundck.tistory.com/867) 세마포어 내용이 있지만, 이번에 실 사용하면서 semaphore 에 더 깊이 알아봐야 겠다는 생각이 들어 학습하면서 몰랐던 내용이나 중요한 것들 위주로 글을 정리해본다. Overview Counting Semaphore 는 특정 자원이나 특정 연산을 동시에 사용하거나 호출할 수 있는 스레드의 수를 제한하고자 할 때 사용한다.Semaphore 클래스는 가상의 Permit 을 만들어 내부 상태를 관리하며, 클래스를 .. 2018. 12. 20.
반응형