Archive: 2018/8

Java 스트림 Stream (2) 고급

이전 포스트에 이어서 Java 8의 스트림(Stream)을 살펴봅니다. 자바 8 스트림은 총 두 개의 포스트로, 기본적인 내용을 총정리하는 이전 포스트와 좀 더 고급 내용을 다루는 이번 포스트로 나뉘어져 있습니다. Java 스트림 Stream (1) 총정리 Java 스트림 Stream (2) 고급 살펴볼 내용 이번 포스트에서 다루는 내용은 다음과

Java 스트림 Stream (1) 총정리

이번 포스트에서는 Java 8의 스트림(Stream)을 살펴봅니다. 총 두 개의 포스트로, 기본적인 내용을 총정리하는 이번 포스트와 좀 더 고급 내용을 다루는 다음 포스트로 나뉘어져 있습니다. Java 스트림 Stream (1) 총정리 Java 스트림 Stream (2) 고급 살펴볼 내용 이번 포스트에서 다루는 내용은 다음과 같습니다. 아는 내용

Spark 아파치 스파크 (1) 소개

아파치 스파크(Apache Spark) 스터디를 위해 정리한 자료입니다. 하둡 Hadoop 빅 데이터 처리나 데이터 분석 쪽에는 지식이 없어 하둡부터 간단하게 알아봤습니다. 동작 원리 하둡 프레임워크는 파일 시스템인 HDFS(Hadoop Distributed File System)과 데이터를 처리하는 맵리듀스(MapReduce) 엔진을 합친 것으로 대규모

Java 8 옵셔널 Optional

개발할 때 개발자를 괴롭히는 예외 중 하나는 NullPointerException 입니다. NullPointerException 을 피하고 null 체크하는 로직을 줄이기 위해 빈 값일 때 null 대신 초기값을 사용하길 권장하곤 합니다. 12List<String> names = getNames();names.sort(); // names 가 n

Java 제네릭 Generics DEEP DIVE

JDK API 를 살펴보면 다음과 같은 코드를 흔히 볼 수 있습니다. 1default <V> Function<V, R> compose(Function<? super V, ? extends T> before) 위 코드는 자바 8에 추가된 함수형 인터페이스 Function 의 compose 라는 디폴트 메소드의 시그니쳐입니다.

Java Lambda (7) 람다와 클로저

람다와 클로저 자바 커뮤니티에서는 클로저와 람다를 혼용하면서 개념 상 혼란이 있었습니다. 그래서 자바 8부터 클로저를 지원한다는 글을 보기도 합니다. 이번 포스트에서는 자바에서의 람다와 클로저를 명확히 구분해보고자 합니다. 먼저 일반적인 클로저부터 살펴보겠습니다. 클로저 Closure 보통의 함수는 외부에서 인자를 받아서 로직을 처리합니다. 그런데 클로저는

Java Lambda (6) 예외 처리

예외처리 람다 예외처리에서 주의할 점을 람다 작성 및 호출하는 입장으로 나눠서 살펴보겠습니다. 람다를 작성해서 넘겨주는 입장 : 해당 람다가 어떤 환경에서 실행될 지 알 수 없다. 람다를 받아서 호출(실행)하는 입장 : 람다에서 어떤 예외가 던져질 지 알 수 없다. 예제 다음 예제는 Runnable 을 순서대로 실행하는 메소드입니다. 1234public

연봉 높은 프로그래밍 언어 순위 2018

이번 포스팅에서는 연봉 많이 받는 프로그래밍 언어 세계 순위를 알아보고 몇 가지 언어들에 대해서 살펴보겠습니다. 순위는 stackoverflow Developer Survey Results 2018 을 참고했습니다. 순위 언어가 많으므로 TOP 10 까지만 보겠습니다. 세계 순위와 미국 순위에 모두 올라가 있는 언어는 굵게 표시하였고, 환율은 KRW 1,1

Java Lambda (5) 변수 범위

변수 범위 람다는 새로운 변수 범위를 생성하지 않습니다. 람다 내에서 변수 사용은 둘러싸고 있는 환경의 변수들을 참조합니다. this 나 super 키워드도 마찬가지입니다. 따라서 복잡해지지 않습니다. 아래 예제에서 i 는 단순히 람다를 둘러싸고 있는 클래스의 필드를 가리키게 됩니다. 12345678910111213141516171819public stat

Java Lambda (4) 기본으로 제공되는 함수형 인터페이스

이전 포스트에서 함수형 인터페이스에 대해서 살펴봤습니다. 이번 포스트에서는 자바에서 기본적으로 제공하는 함수형 인터페이스를 살펴보겠습니다. 기본 API 에서 함수형 인터페이스는 java.util.function 패키지에 정의되어 있습니다. Functions Suppliers Consumers Predicates Operators Legacy Functio