SlideShare a Scribd company logo
1 of 39
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Java 8의 모든 것
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
목차
1 Java
2 Java8의 8가지특징
table of contents
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
- Lamda expression
- Functional interface
- Default method
- Stream
- Optional
- 날짜 및 시간 API
- CompletableFuture
- JVM의 변화
- Why Java?
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
1
Java
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 1
Java -Why Java?
https://www.jetbrains.com/ko-kr/lp/devecosystem-2022/
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 1
Java -Why Java?
https://www.jetbrains.com/ko-kr/lp/devecosystem-2022/
지난 12개월 동안 어떤 프로그래밍 언어를 사용하셨
나요?
=> 자바가 아직도 상위에 있
다!!
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 1
Java -Why Java?
https://www.jetbrains.com/ko-kr/lp/devecosystem-2022/java
수년 동안 가장 많이 사용되는 Java 버전은 Java 8이
었으나 2022년에는 사용 비율이 12% 포인트 감소
Why????
2022년 3월부로 Oracle Premier Support
에서
Java 8이 제외됨
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 1
Java -Why Java?
• 현재 Oracle Java 8은 모두 공개 버전
• 2019년 1월 부터 공개 업데이트 지원 중단
• Java 8의 경우 2019년 이후 추가 업데이트를 및 기술 지원하기 위해서는 라이센스 필요
http://taewan.kim/post/oracle_java_subscription/
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 1
Java -Why Java?
Java
아직까지 먹고 살만하다!
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
2
Java8의 8가지 특징
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
요약|Overview
Lamdam
expression
Stream Optional
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -Lamda expression
Q. 람다 표현식(Lamda
expression)??
A. 메서드로 전달할 수 있는 익명 함수(anonymous function)를 단순한 문법으로 표
현한 것
Q. 람다 표현식(Lamda expression)의 구
성
A. 람다 표현식은 람다 파라미터, 화살표, 람다 바디로 구성
(String arg1, int arg2) -> {System.out.println(“Two arg is ”+arg1+”and”+arg2)}
람다 파라미터
(Argument List)
화살표
(Arrow token)
람다 바디
(Body of lambda expression)
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -Lamda expression
Case1. 람다 표현식을 쓰지 않고 익명 클래스로
Runnable 구현
Case2. 람다 표현식을 써서 익명 클래스로 Runnable 구현
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -Lamda expression
Case3. 하나의 파라미터를 갖고 리턴 타입이 없는 람다 표현식
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -Lamda expression
Case4. 하나의 파라미터를 갖고 리턴 타입이 없는 람다 표현식
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -Lamda expression
Case5. 다중 파라미터를 갖고 리턴 타입이 있는 람다 표현식
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -Functionalinterface
Q. 함수형 인터페이스(Functional
interface)??
A. 단 하나의 추상 메서드를 갖는 인터
페이스
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -Functionalinterface
Case1. 책의 isbn을 찾는 메서드
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -Functionalinterface
Case2. Comparator
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -Functionalinterface
그럼 왜 갑자기 람다 표현식과 함수형 인터페이스가 등장했을까?
함수형 프래그래밍 때
문!!!!
https://bbubbush.tistory.com/23
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -Defaultmethod
https://bbubbush.tistory.com/23
Q. Default method??
A. Java 8부터 인터페이스에 구현된 메서드를 만들 수 있다.
Q. 얻을 수 있는 이점은?
A. 1. 코드 호환성을 유지하며 새로운 기능을 추가 가능하다.
2. 불필요한 구현부를 제거 가능하다.
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -Defaultmethod
Case1. 코드 호환성을 유지하며 새로운 기능 추가
“3개월 동안만 탈것에 날 수 있는 기능을 추가해주세요!! 3개월 뒤에는 어떻게 할지는 아직 미정입
니다. “
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -Defaultmethod
Case2. 불필요한 구현부 제거
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 - Stream
https://bbubbush.tistory.com/23
Q. 스트림(Stream)??
A. Collection 을 멋지고 편리하게 처리하는 방법을 제공하는 API
Q. 스트림의 특징
A. 1. 파이프라이닝을 지원한다.
2. 내부 반복을 지원한다.
3. 딱 한번만 탐색한다.
4. 게으르게 행동한다.
5. 중간 연산과 종료 연산을 구분한다.
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 - Stream
https://bbubbush.tistory.com/23
Case1. 전통적인 방식
“책들 중에 헤밍웨이가 작성한 노인과 바다 책의 ISBN 정보가 필요합니다. 그리고 정렬은 책 이름을 기준
으로 해주세요.“
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 - Stream
https://bbubbush.tistory.com/23
Case2. Stream을 이용한 방식
“책들 중에 헤밍웨이가 작성한 노인과 바다 책의 ISBN 정보가 필요합니다. 그리고 정렬은 책 이름을 기준
으로 해주세요.“
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -Optional
Q. Optional??
A. Null이 될 수 있는(Nullable) 객체를 담는 클래스
Q. Optinal의 특징
A. 1. 명시적으로 반환값이 Null이 될 수 있음을 알려
줌
2. 직접 Null을 다루지 않아도 됨
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -Optional
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -Optional
Case1. 전통적인 방식
“책 정보를 담는 Book 객체에는 저자의 정보를 담는 Author 객체를 필드 값으로 갖습니다.
이를 바탕으로 Book 객체에서 저자의 이름을 반환하는 메서드를 만들어 주세요.“
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -Optional
Case2. Optional 객체를 이용한 처리
“책 정보를 담는 Book 객체에는 저자의 정보를 담는 Author 객체를 필드 값으로 갖습니다.
이를 바탕으로 Book 객체에서 저자의 이름을 반환하는 메서드를 만들어 주세요.“
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -날짜 및 시간 API
Q. 새롭게 추가된 날짜 및 시간 API
A. 1. 기계용 날짜 API Instant
2. 사람용 날짜 API LocalDate, LocalTime, LocalDateTime
3. 날짜와 시간의 간격을 나타내는 API : Duration, Period
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -날짜 및 시간 API
Case1. 기계용 날짜 API Instant
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -날짜 및 시간 API
Case2. 사람용 날짜 API LocalDate, LocalTime,
LocalDateTime
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -날짜 및 시간 API
Case3. 날짜와 시간의 간격을 나타내는 API : Duration,
Period
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -CompletableFuture
Q. CompletableFuture?
A.자바에서 지원하는 Concurrent 프로그래
밍
Q. Concurrent 프로그래밍?
A.동시에 여러 작업을 할 수 있는 소프트웨어 -> 동시에 병렬로 작업이 가능하다는
의미
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -CompletableFuture
Case1. 동시에 n개의 요청을 호출하고 모든 호출이 완성되면 다음 프로세스 진행
하기
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -CompletableFuture
Case2. 동시에 n개의 요청을 호출하고 하나라도 호출이 되면 다음 프로세스 진행
하기
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -JVM의 변화
https://www.programmersought.com/article/4905216600/
“Permanent Generation To Metaspace”
Metaspace는 간단히 말해 Java의 Classloader
가
로드한 class들의 metadata가 저장되는 공간을
말함.
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2
Java8의 8가지특징 -JVM의 변화
Q. Heap -> Native 이점은?
A. 1. 클래스가 많아도 OOM(OutOfMemory) 걱정은 NO!!!
2. 동적으로 클래스를 많이 생성한다 해도 Metaspace 영역이 가변적으로 늘어나 충분히 수용 가
능
Q. 주의점?
A. Metaspace의 최댓값은 반드시 설정해주자.
-> 가변적으로 늘어나기 때문에 극단적인 상황에는 서버의 모든 메모리를 Metaspace가 가져가 애플리케
이션이 아닌 서버가 죽게 될 수도 있다!!
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
단순하게 설명할 수 없다면
제대로 이해하지 못한 것이
다.
아인슈타인

More Related Content

Similar to Java8의모든것.pptx

자바9 특징 (Java9 Features)
자바9 특징 (Java9 Features)자바9 특징 (Java9 Features)
자바9 특징 (Java9 Features)Chang-Hwan Han
 
K모바일발표 120113 남들보다뛰어난앱만들기_공유용
K모바일발표 120113 남들보다뛰어난앱만들기_공유용K모바일발표 120113 남들보다뛰어난앱만들기_공유용
K모바일발표 120113 남들보다뛰어난앱만들기_공유용jinwook shin
 
[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...
[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...
[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Java8 - Oracle Korea Magazine
Java8 - Oracle Korea MagazineJava8 - Oracle Korea Magazine
Java8 - Oracle Korea MagazineJay Lee
 
Hibernate start (하이버네이트 시작하기)
Hibernate start (하이버네이트 시작하기)Hibernate start (하이버네이트 시작하기)
Hibernate start (하이버네이트 시작하기)visual khh
 
비융합5조_PPT.pptx
비융합5조_PPT.pptx비융합5조_PPT.pptx
비융합5조_PPT.pptxpki2966
 
AngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJSAngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJSKenneth Ceyer
 
그레이들(Gradle)로 만드는 안드로이드 요리법
그레이들(Gradle)로 만드는 안드로이드 요리법그레이들(Gradle)로 만드는 안드로이드 요리법
그레이들(Gradle)로 만드는 안드로이드 요리법양 한빛
 
KSUG 스프링캠프 2017 발표자료
KSUG 스프링캠프 2017 발표자료KSUG 스프링캠프 2017 발표자료
KSUG 스프링캠프 2017 발표자료용근 권
 
Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]Woojin Joe
 
앵귤러 첫걸음(Angular for beginers)
앵귤러 첫걸음(Angular for beginers)앵귤러 첫걸음(Angular for beginers)
앵귤러 첫걸음(Angular for beginers)양 한빛
 
김윤환_포트폴리오
김윤환_포트폴리오김윤환_포트폴리오
김윤환_포트폴리오Yun-hwan Kim
 
[Uws] enterprise application architecture, msa, java9, spring 소개
[Uws] enterprise application architecture, msa, java9, spring 소개[Uws] enterprise application architecture, msa, java9, spring 소개
[Uws] enterprise application architecture, msa, java9, spring 소개HYUN-JOO LEE
 
스프링프레임워크 & 마이바티스 무.료 강의자료 제공 (Spring IoC & DI)_ 구로자바학원/구로오라클학원/구로IT학원
스프링프레임워크 & 마이바티스 무.료 강의자료 제공 (Spring IoC & DI)_ 구로자바학원/구로오라클학원/구로IT학원스프링프레임워크 & 마이바티스 무.료 강의자료 제공 (Spring IoC & DI)_ 구로자바학원/구로오라클학원/구로IT학원
스프링프레임워크 & 마이바티스 무.료 강의자료 제공 (Spring IoC & DI)_ 구로자바학원/구로오라클학원/구로IT학원탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Gradle 한번 살펴보기
Gradle 한번 살펴보기Gradle 한번 살펴보기
Gradle 한번 살펴보기Junseo Youn
 
Spring3 발표자료 - 김연수
Spring3 발표자료 - 김연수Spring3 발표자료 - 김연수
Spring3 발표자료 - 김연수Yeon Soo Kim
 

Similar to Java8의모든것.pptx (20)

자바9 특징 (Java9 Features)
자바9 특징 (Java9 Features)자바9 특징 (Java9 Features)
자바9 특징 (Java9 Features)
 
K모바일발표 120113 남들보다뛰어난앱만들기_공유용
K모바일발표 120113 남들보다뛰어난앱만들기_공유용K모바일발표 120113 남들보다뛰어난앱만들기_공유용
K모바일발표 120113 남들보다뛰어난앱만들기_공유용
 
Prometheus
PrometheusPrometheus
Prometheus
 
[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...
[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...
[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...
 
Java8 - Oracle Korea Magazine
Java8 - Oracle Korea MagazineJava8 - Oracle Korea Magazine
Java8 - Oracle Korea Magazine
 
Hibernate start (하이버네이트 시작하기)
Hibernate start (하이버네이트 시작하기)Hibernate start (하이버네이트 시작하기)
Hibernate start (하이버네이트 시작하기)
 
비융합5조_PPT.pptx
비융합5조_PPT.pptx비융합5조_PPT.pptx
비융합5조_PPT.pptx
 
AngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJSAngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJS
 
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
 
그레이들(Gradle)로 만드는 안드로이드 요리법
그레이들(Gradle)로 만드는 안드로이드 요리법그레이들(Gradle)로 만드는 안드로이드 요리법
그레이들(Gradle)로 만드는 안드로이드 요리법
 
KSUG 스프링캠프 2017 발표자료
KSUG 스프링캠프 2017 발표자료KSUG 스프링캠프 2017 발표자료
KSUG 스프링캠프 2017 발표자료
 
Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]
 
앵귤러 첫걸음(Angular for beginers)
앵귤러 첫걸음(Angular for beginers)앵귤러 첫걸음(Angular for beginers)
앵귤러 첫걸음(Angular for beginers)
 
김윤환_포트폴리오
김윤환_포트폴리오김윤환_포트폴리오
김윤환_포트폴리오
 
[Uws] enterprise application architecture, msa, java9, spring 소개
[Uws] enterprise application architecture, msa, java9, spring 소개[Uws] enterprise application architecture, msa, java9, spring 소개
[Uws] enterprise application architecture, msa, java9, spring 소개
 
스프링프레임워크 & 마이바티스 무.료 강의자료 제공 (Spring IoC & DI)_ 구로자바학원/구로오라클학원/구로IT학원
스프링프레임워크 & 마이바티스 무.료 강의자료 제공 (Spring IoC & DI)_ 구로자바학원/구로오라클학원/구로IT학원스프링프레임워크 & 마이바티스 무.료 강의자료 제공 (Spring IoC & DI)_ 구로자바학원/구로오라클학원/구로IT학원
스프링프레임워크 & 마이바티스 무.료 강의자료 제공 (Spring IoC & DI)_ 구로자바학원/구로오라클학원/구로IT학원
 
Java tutorial
Java tutorialJava tutorial
Java tutorial
 
Gradle 한번 살펴보기
Gradle 한번 살펴보기Gradle 한번 살펴보기
Gradle 한번 살펴보기
 
Warm up in JVM
Warm up in JVMWarm up in JVM
Warm up in JVM
 
Spring3 발표자료 - 김연수
Spring3 발표자료 - 김연수Spring3 발표자료 - 김연수
Spring3 발표자료 - 김연수
 

Java8의모든것.pptx

  • 1. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Java 8의 모든 것
  • 2. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 목차 1 Java 2 Java8의 8가지특징 table of contents ⓒSaebyeol Yu. Saebyeol’s PowerPoint - Lamda expression - Functional interface - Default method - Stream - Optional - 날짜 및 시간 API - CompletableFuture - JVM의 변화 - Why Java?
  • 3. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 1 Java
  • 4. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 1 Java -Why Java? https://www.jetbrains.com/ko-kr/lp/devecosystem-2022/
  • 5. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 1 Java -Why Java? https://www.jetbrains.com/ko-kr/lp/devecosystem-2022/ 지난 12개월 동안 어떤 프로그래밍 언어를 사용하셨 나요? => 자바가 아직도 상위에 있 다!!
  • 6. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 1 Java -Why Java? https://www.jetbrains.com/ko-kr/lp/devecosystem-2022/java 수년 동안 가장 많이 사용되는 Java 버전은 Java 8이 었으나 2022년에는 사용 비율이 12% 포인트 감소 Why???? 2022년 3월부로 Oracle Premier Support 에서 Java 8이 제외됨
  • 7. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 1 Java -Why Java? • 현재 Oracle Java 8은 모두 공개 버전 • 2019년 1월 부터 공개 업데이트 지원 중단 • Java 8의 경우 2019년 이후 추가 업데이트를 및 기술 지원하기 위해서는 라이센스 필요 http://taewan.kim/post/oracle_java_subscription/
  • 8. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 1 Java -Why Java? Java 아직까지 먹고 살만하다!
  • 9. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 2 Java8의 8가지 특징
  • 10. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 요약|Overview Lamdam expression Stream Optional
  • 11. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -Lamda expression Q. 람다 표현식(Lamda expression)?? A. 메서드로 전달할 수 있는 익명 함수(anonymous function)를 단순한 문법으로 표 현한 것 Q. 람다 표현식(Lamda expression)의 구 성 A. 람다 표현식은 람다 파라미터, 화살표, 람다 바디로 구성 (String arg1, int arg2) -> {System.out.println(“Two arg is ”+arg1+”and”+arg2)} 람다 파라미터 (Argument List) 화살표 (Arrow token) 람다 바디 (Body of lambda expression)
  • 12. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -Lamda expression Case1. 람다 표현식을 쓰지 않고 익명 클래스로 Runnable 구현 Case2. 람다 표현식을 써서 익명 클래스로 Runnable 구현
  • 13. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -Lamda expression Case3. 하나의 파라미터를 갖고 리턴 타입이 없는 람다 표현식
  • 14. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -Lamda expression Case4. 하나의 파라미터를 갖고 리턴 타입이 없는 람다 표현식
  • 15. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -Lamda expression Case5. 다중 파라미터를 갖고 리턴 타입이 있는 람다 표현식
  • 16. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -Functionalinterface Q. 함수형 인터페이스(Functional interface)?? A. 단 하나의 추상 메서드를 갖는 인터 페이스
  • 17. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -Functionalinterface Case1. 책의 isbn을 찾는 메서드
  • 18. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -Functionalinterface Case2. Comparator
  • 19. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -Functionalinterface 그럼 왜 갑자기 람다 표현식과 함수형 인터페이스가 등장했을까? 함수형 프래그래밍 때 문!!!! https://bbubbush.tistory.com/23
  • 20. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -Defaultmethod https://bbubbush.tistory.com/23 Q. Default method?? A. Java 8부터 인터페이스에 구현된 메서드를 만들 수 있다. Q. 얻을 수 있는 이점은? A. 1. 코드 호환성을 유지하며 새로운 기능을 추가 가능하다. 2. 불필요한 구현부를 제거 가능하다.
  • 21. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -Defaultmethod Case1. 코드 호환성을 유지하며 새로운 기능 추가 “3개월 동안만 탈것에 날 수 있는 기능을 추가해주세요!! 3개월 뒤에는 어떻게 할지는 아직 미정입 니다. “
  • 22. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -Defaultmethod Case2. 불필요한 구현부 제거
  • 23. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 - Stream https://bbubbush.tistory.com/23 Q. 스트림(Stream)?? A. Collection 을 멋지고 편리하게 처리하는 방법을 제공하는 API Q. 스트림의 특징 A. 1. 파이프라이닝을 지원한다. 2. 내부 반복을 지원한다. 3. 딱 한번만 탐색한다. 4. 게으르게 행동한다. 5. 중간 연산과 종료 연산을 구분한다.
  • 24. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 - Stream https://bbubbush.tistory.com/23 Case1. 전통적인 방식 “책들 중에 헤밍웨이가 작성한 노인과 바다 책의 ISBN 정보가 필요합니다. 그리고 정렬은 책 이름을 기준 으로 해주세요.“
  • 25. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 - Stream https://bbubbush.tistory.com/23 Case2. Stream을 이용한 방식 “책들 중에 헤밍웨이가 작성한 노인과 바다 책의 ISBN 정보가 필요합니다. 그리고 정렬은 책 이름을 기준 으로 해주세요.“
  • 26. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -Optional Q. Optional?? A. Null이 될 수 있는(Nullable) 객체를 담는 클래스 Q. Optinal의 특징 A. 1. 명시적으로 반환값이 Null이 될 수 있음을 알려 줌 2. 직접 Null을 다루지 않아도 됨
  • 27. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -Optional
  • 28. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -Optional Case1. 전통적인 방식 “책 정보를 담는 Book 객체에는 저자의 정보를 담는 Author 객체를 필드 값으로 갖습니다. 이를 바탕으로 Book 객체에서 저자의 이름을 반환하는 메서드를 만들어 주세요.“
  • 29. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -Optional Case2. Optional 객체를 이용한 처리 “책 정보를 담는 Book 객체에는 저자의 정보를 담는 Author 객체를 필드 값으로 갖습니다. 이를 바탕으로 Book 객체에서 저자의 이름을 반환하는 메서드를 만들어 주세요.“
  • 30. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -날짜 및 시간 API Q. 새롭게 추가된 날짜 및 시간 API A. 1. 기계용 날짜 API Instant 2. 사람용 날짜 API LocalDate, LocalTime, LocalDateTime 3. 날짜와 시간의 간격을 나타내는 API : Duration, Period
  • 31. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -날짜 및 시간 API Case1. 기계용 날짜 API Instant
  • 32. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -날짜 및 시간 API Case2. 사람용 날짜 API LocalDate, LocalTime, LocalDateTime
  • 33. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -날짜 및 시간 API Case3. 날짜와 시간의 간격을 나타내는 API : Duration, Period
  • 34. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -CompletableFuture Q. CompletableFuture? A.자바에서 지원하는 Concurrent 프로그래 밍 Q. Concurrent 프로그래밍? A.동시에 여러 작업을 할 수 있는 소프트웨어 -> 동시에 병렬로 작업이 가능하다는 의미
  • 35. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -CompletableFuture Case1. 동시에 n개의 요청을 호출하고 모든 호출이 완성되면 다음 프로세스 진행 하기
  • 36. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -CompletableFuture Case2. 동시에 n개의 요청을 호출하고 하나라도 호출이 되면 다음 프로세스 진행 하기
  • 37. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -JVM의 변화 https://www.programmersought.com/article/4905216600/ “Permanent Generation To Metaspace” Metaspace는 간단히 말해 Java의 Classloader 가 로드한 class들의 metadata가 저장되는 공간을 말함.
  • 38. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Java8의 8가지특징 -JVM의 변화 Q. Heap -> Native 이점은? A. 1. 클래스가 많아도 OOM(OutOfMemory) 걱정은 NO!!! 2. 동적으로 클래스를 많이 생성한다 해도 Metaspace 영역이 가변적으로 늘어나 충분히 수용 가 능 Q. 주의점? A. Metaspace의 최댓값은 반드시 설정해주자. -> 가변적으로 늘어나기 때문에 극단적인 상황에는 서버의 모든 메모리를 Metaspace가 가져가 애플리케 이션이 아닌 서버가 죽게 될 수도 있다!!
  • 39. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 단순하게 설명할 수 없다면 제대로 이해하지 못한 것이 다. 아인슈타인