티스토리 뷰
1.1 역사의 흐름은 무엇인가?
- 자바 8에서는 병렬 실행을 새롭고 단순한 방식으로 접근할 수 있는 방법을 제공함.
- 자바 8에서 제공하는 새로운 기술
- 스트림 API
- 메서드에 코드를 전달하는 기법
- 인터페이스의 디폴트 메서드
- 자바 8은 데이터베이스 질의 언어에서 표현식을 처리하는 것처럼 병렬 연산을 지원하는 스트림이라는 새로운 API를 제공함. 스트림을 이용하면 에러를 자주 일으키며 멀티코어 CPU를 이용하는 것보다 비용이 훨씬 비싼 키워드 synchronized를 사용하지 않아도 됨.
- 메서드에 코드를 전달하는 기법을 이용하면 새롭고 간결한 방식으로 동작 파라미터화를 구현할 수 있음. 메서드에 코드를 전달하는 자바 8 기법은 함수형 프로그래밍에서 위력을 발휘함.
1.2 왜 아직도 자바는 변화하는가?
- 자바 8은 더 다양한 프로그래밍 도구 그리고 다양한 프로그래밍 문제를 더 빠르고 정확하며 쉽게 유지보수할 수 있다는 장점을 제공함. 자바 8에 추가된 기능은 자바에 없던 완전히 새로운 개념이지만 현재 시장에서 요구하는 기능을 효과적으로 제공함.
- 자바 8 설계의 밑바탕을 이루는 세 가지 프로그래밍 개념.
- 스트림 처리
- 코드 일부를 API로 전달하는 기능
- 병렬성
- 스트림이란 한 번에 한 개씩 만들어지는 연속적인 데이터 항목들의 모임.
- 스트림 API의 행심은 기존에는 한 번에 한 항목을 처리했지만 이제 자바 8에서는 우리가 하려는 작업을 고수준으로 추상화해서 일련의 스트림으로 만들어 처리할 수 있다는 것.
- 또한 스트림 파이프라인을 이용해서 입력 부분을 여러 CPU 코어에 쉽게 할당할 수 있다는 부가적인 이득도 얻을 수 있음. 스레드라는 복잡한 작업을 사용하지 않으면서도 공짜로 병렬성을 얻을 수 있음.
- 자바 8에서는 메서드를 다른 메서드의 인수로 넘겨주는 기능을 제공함. 이러한 기능을 이론적으로 동작 파라미터화라고 부름.
- 자바 8 스트림을 이용하면 기존의 자바 스레드 API보다 쉽게 병렬성을 활용할 수 있음.
1.3 자바 함수
- 자바 8에서는 메서드를 일급값으로 취급함.
- 기존에 객체 참조를 이용해서 객체를 이리저리 주고받았던 것처럼 자바 8에서는 메서드 참조를 만들어 전달할 수 있게 되었음.
- 자바 8에서는 메서드를 일급값으로 취급할 뿐 아니라 람다를 포함하여 함수를 값으로 취급할 수 있음.
1.4 스트림
- 컬렉션에서는 반복 과정을 직접 처리해야 했음. 즉, for-each 루프를 이용해서 각 요소를 반복하면서 작업을 수행했음. 이런 방식의 반복을 외부 반복이라고 함.
- 스트림 API에서는 라이브러리 내부에서 모든 데이터가 처리됨. 이와 같은 반복을 내부 반복이라고 함.
1.5 디폴트 메서드와 자바 모듈
- 자바 9의 모듈 시스템은 모듈을 정의하는 문법을 제공하므로 이를 이용해 패키지 모음을 포함하는 모듈을 정의할 수 있음.
- 또한 자바 8에서는 인터페이스를 쉽게 바꿀 수 있도록 디폴트 메서드를 지원함.
1.6 함수형 프로그래밍에서 가져온 다른 유용한 아이디어
- 자바 8에서는 NullPointer 예외를 피할 수 있도록 도와주는 Optional<T> 클래스를 제공함. Optional<T>는 값을 갖거나 갖지 않을 수 있는 컨테이너 객체.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 스택/큐
- http://www.nextree.co.kr/p6960/
- 프로그래머스
- 인터셉터
- 논블로킹
- 필터
- 프로그래머스 Level 2
- 핸들러 인터셉터
- a
- non-blocking
- Asynchronous
- 비동기
- Filter
- blocking
- 프로그래머스 Level 1
- 프로그래머스 Level 3
- 동기
- 코딩테스트 고득점 Kit
- Synchronous
- 블로킹
- Handler Interceptor
- 해시
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 |
글 보관함