더 자바, Java 8
더 자바, Java 8
수강정보
(28개의 수강평)
629명의 수강생
스킬태그 #Java
55,000원
지식공유자 : 백기선
23회 수업 · 총 4시간 56분 수업
기간 : 평생 무제한 시청
수료증 : 발급 강의
수강 난이도 : 초급

이 강의는

자바 8에 추가된 기능들은 자바가 제공하는 API는 물론이고 스프링 같은 제 3의 라이브러리 및 프레임워크에서도 널리 사용되고 있습니다. 이 시대의 자바 개발자라면 반드시 알아야 합니다. 이 강의를 통해 쉽고 빠르게 자신의 기술로 만드세요.

이런 걸 배워요

  • 함수형 인터페이스와 람다 그리고 메소드 레퍼런스에 대해 학습합니다.
  • 인터페이스의 기본 메소드와 스태틱 메소드에 대해 학습합니다.
  • Stream과 Optional에 대해 학습합니다.

더 자바, JAVA 8을 제대로 활용하는 가장 똑똑한 방법.

🙆🏻‍♀ 이 강의에서는 자바 8에 추가된 주요 기능을 학습해 봅니다.
자바 8의 코드를 확실하게 이해하고, 스스로 작성해 보세요! 🙆🏻‍♂

강의 소개 👨‍💻

2014년 3월에 처음 출시했고 6년이 넘게 지난 지금도 자바 개발자가 가장 많이 사용하고 있는 버전인 자바 8에 대해 학습합니다.

자바 기초 공부는 마쳤지만 그래도 뭔가 아직 자바에 대해 잘 모르겠고 다른 사람이 작성한 코드를 볼 때 생소한 문법이 보인다면 아마도 자바 8에 추가된 기능을 제대로 이해하지 못하고 있기 때문일 수도 있습니다.

자바 8로 무엇을 할 수 있을까요? 🐔🍴

자 보시죠! 여기 Chicken이라는 인터페이스를 구현한 기선닭이 있습니다.

public class KeesunChicken implements Chicken {

}

보시다시피 인터페이스만 구현했을 뿐, 아무런 메소드도 오버라이딩하지 않았죠.
하지만 이런 게 가능합니다.

public class App {

    public static void main(String[] args) {

        Chicken keesun = new KeesunChicken();

        Egg egg = keesun.create();

    }

}

도대체 Egg를 리턴하는 create() 메소드는 어떻게 쓸 수 있게 된 걸까요?

자, 다음 코드를 보시죠. 여기 닭 한 마리가 있습니다. 커서 반반 치킨이 되고 싶은 달걀을 보살피고 있네요.

Chicken.takesCare(new Egg() {

    @Override

    public String wannaBe() {

        return "양념반 후라이드반";

    }

});

이 코드는 줄여서 이렇게 쓸 수도 있습니다.

Chicken.takesCare(() -> "양념반 후라이드반");

어떻게 이렇게 Egg라는 타입을 쓰지도 않고 깔끔하게 줄일 수 있는지 궁금하신가요?

이번에는 달걀을 분류해 봅시다.

List<EggWithColorAndSize> eggs = new ArrayList<>();

eggs.add(EggWithColorAndSize.of().size(3).color("yellow"));

eggs.add(EggWithColorAndSize.of().size(4).color("white"));

eggs.add(EggWithColorAndSize.of().size(3).color("white"));

eggs.add(EggWithColorAndSize.of().size(5).color("yellow"));

eggs.add(EggWithColorAndSize.of().size(3).color("brown"));

eggs.add(EggWithColorAndSize.of().size(4).color("yellow"));

여기 보이는 달걀들 중에 색이 yellow인 달걀만 골라서 사이즈 별로 정렬한 다음, 달걀의 wannaBe를 출력해 봅시다.
이 강의를 들으신다면 다음과 같이 코드를 작성할 수 있고 이해할 수 있습니다.

eggs.stream().filter(e -> e.getColor().equals("yellow"))

        .sorted(Comparator.comparingInt(EggWithColorAndSize::getSize))

        .map(EggWithColorAndSize::wannaBe)

        .forEach(System.out::println);

별도의 쓰레드로 알을 낳는 작업을 실행하고 알을 낳으면 (콜백으로) 맛있게 먹는 다음과 같은 코드도 이해하고 작성할 수 있습니다.

CompletableFuture<Void> future = CompletableFuture.supplyAsync(() -> {

    System.out.println("꼬기오~ 꼬꼬꼬꼬~ " + Thread.currentThread().getName());

    return EggWithColorAndSize.of().size(5).color("white");

}).thenAccept((egg) -> {

    System.out.println("냠냠냠: " + egg.wannaBe());

});


future.get();

이밖에도 자바 8이 제공하는 Date와 Time API, 애노테이션에 생긴 변화, 메모리 영역의 변화 등 재미있는 내용이 많으니 많은 수강 부탁드립니다.

감사합니다.

도움 되는 분들

  • 자바 프로그래밍 기초 학습을 마친 개발자 또는 학생
  • 자바 8의 주요 기능을 학습하고 싶은 개발자 또는 학생

선수 지식

  • 자바 프로그래밍 기초

공개 일자

2020년 6월 29일 (마지막 업데이트 일자 : 2020년 6월 29일)

지식공유자 소개

네이버와 아마존을 거쳐 현재 Microsoft에서 시니어 소프트웨어 엔지니어로 일하고 있습니다.

유튜브: '백기선' 채널에서 개발자 고민 상담 및 개발자에게 유용한 지식 공유
블로그: whiteship.me 운영중
번역: 스프링 및 하이버네이트 관련 서적 다수 번역
저술: 쉽게 따라하는 자바 웹 개발

주로 자바와 스프링을 사용해서 웹 애플리케이션을 개발하는 것을 좋아하지만 딱히 기술을 가리지는 않습니다.

4.9
28개의 수강평
default_profile.png
jhhj424 21일 전
자바를 다년간 써왔지만 자바8 이후의 문법들에 익숙하지 않고 기존의 문법들만 사용해왔었습니다. 해당 강의 덕분에 새로운 문법과 기능들을 학습할 수 있었고, 시야가 넓어진 것 같습니다. 감사합니다 :)
백기선

백기선 21일 전
잘 수강하셨습니다. 이 강의에서 다룬 기능들은 앞으로 자바를 쓴다면 기본으로 쓰이게 될 기능입니다. 수강평 감사합니다.

default_profile.png
OMG 2달 전
자바8의 다양한 기능에 대한 핵심을 배울 수 있어서 좋았습니다.

교육과정

모두 펼치기 23 강의 4시간 56분
섹션 0. 소개
2 강의 05 : 15
섹션 1. 함수형 인터페이스와 람다
4 강의 58 : 06
함수형 인터페이스와 람다 표현식 소개
14 : 36
자바에서 제공하는 함수형 인터페이스
16 : 08
람다 표현식
15 : 47
메소드 레퍼런스
11 : 35
섹션 2. 인터페이스의 변화
2 강의 29 : 36
인터페이스 기본 메소드와 스태틱 메소드
13 : 57
자바 8 API의 기본 메소드와 스태틱 메소드
15 : 39
섹션 3. Stream
2 강의 32 : 36
Stream 소개
15 : 16
Stream API
17 : 20
섹션 4. Optional
2 강의 36 : 12
Optional 소개
18 : 08
Optional API
18 : 04
섹션 5. Date와 Time
2 강의 35 : 25
Date와 Time 소개
16 : 01
Date와 Time API
19 : 24
섹션 6. CompletableFuture
5 강의 67 : 50
자바 Concurrent 프로그래밍 소개
15 : 12
Executors
12 : 32
Callable과 Future
10 : 43
CompletableFuture 1
12 : 37
CompletableFuture 2
16 : 46
섹션 7. 그밖에
3 강의 28 : 03
애노테이션의 변화
13 : 19
배열 병렬 정렬
04 : 55
Metaspace
09 : 49
섹션 8. 마무리
1 강의 03 : 50
요약
03 : 50
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스