Thumbnail
BEST
개발 · 프로그래밍 프로그래밍 언어

더 자바, Java 8 대시보드

(4.9)
301개의 수강평 ∙  4,177명의 수강생

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의 주요 기능을 학습하고 싶은 개발자 또는 학생
📚
선수 지식,
필요할까요?
자바 프로그래밍 기초

안녕하세요
백기선 입니다.
백기선의 썸네일

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

아인슈타인은 "교육이란 사실을 가르치는 것이 아니라, 생각할 수 있는 힘을 기르는 것이다."라고 말했습니다. 그리고 저도 그 말에 깊이 공감하며 강의를 만들고 있습니다.

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

커리큘럼 총 23 개 ˙ 4시간 56분의 수업
이 강의는 영상, 수업 노트, 첨부 파일이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 0. 소개
섹션 1. 함수형 인터페이스와 람다
함수형 인터페이스와 람다 표현식 소개 14:36
자바에서 제공하는 함수형 인터페이스 16:08
람다 표현식 15:47
메소드 레퍼런스 11:35
섹션 2. 인터페이스의 변화
인터페이스 기본 메소드와 스태틱 메소드 13:57
자바 8 API의 기본 메소드와 스태틱 메소드 15:39
섹션 3. Stream
Stream 소개 15:16
Stream API 17:20
섹션 4. Optional
Optional 소개 18:08
Optional API 18:04
섹션 5. Date와 Time
Date와 Time 소개 16:01
Date와 Time API 19:24
섹션 6. CompletableFuture
자바 Concurrent 프로그래밍 소개 미리보기 15:12
Executors 12:32
Callable과 Future 10:43
CompletableFuture 1 12:37
CompletableFuture 2 16:46
섹션 7. 그밖에
애노테이션의 변화 13:19
배열 병렬 정렬 04:55
Metaspace 09:49
섹션 8. 마무리
요약 03:50
강의 게시일 : 2020년 06월 29일 (마지막 업데이트일 : 2020년 06월 29일)
수강평 총 301개
수강생분들이 직접 작성하신 수강평입니다.
4.9
301개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
박정욱 thumbnail
4
JAVA8에 대해 다시 생각해보는 기회여서 좋았습니다. 새로 생긴 기능도 한번씩 보여주고 곱씹어 보면서 익숙해지는 과정을 가지니 좋았던 것 같습니다. 코드 작성시 하나의 class에서 내용을 지웠다 적었다 하는 것보다는 수업마다 패키지 등을 만들어 진행하면 더 완벽한 강의가 될 것 같습니다.
2020-07-12
Pepper Mill thumbnail
3
"강의보단 라이브 코딩 수업에 가까움" 아마 대부분 사람들은 전문 강사, 교사에게 수업을 받은 적이 있을 겁니다. 잘 정제된 수업진행, 풍부한 자료 등 이런 것을 기대하기는 힘든 강의입니다. 다만 다루는 주제에 대해서 생각해보고, 찾아보고 직접 해보면서 습득할 수 있으신 분들에게는 괜찮은 강의라고 생각합니다. 저는 학생 신분이라서 추가적인 시간을 할당할 수 있었지만, 바쁘신 분들은 강의 진행이 별로일 것 같다는 생각이 듭니다. 다만, 최근 올리신 강의는 이런 문제를 개선하신 것 같습니다. 예전 강의인 만큼 감안하시고 선택하시길 바랍니다.
2021-12-18
으뀨뜌 thumbnail
5
몇몇 수강평들 때문에 망설이다가 결제했는데, 진짜 초등학교처럼 가르쳐줘야 만족하는 분들이 많으신 것 같네요.. 전 기선님이 답변하는 부분에 있어서는 종종 다소 불친절하다고 느껴본 적 있지만 강의에서는 늘 목소리도 좋으시고 완벽하게 준비해놓고 시작하는 강의는 아니지만 오히려 마이크로소프트에 일하는 엘리트 개발자께서도 이런 식으로 찾아가며 하는구나 싶어서 그런 부분까지 배울 점이라고 봅니다. 내용도 무조건 많다고 좋은 게 아니라고 보구요. 가끔 가격 대비 수강 시간만 엄청 긴 강의들 있는데, 들어보면 기선님처럼 5분이면 설명할 수 있을 거 20분 30분 늘여가며 설명하는 경우가 대부분입니다.. 제가 시간이 없어서 아직 기선님 강의를 많이 들어보지는 못했으나 제가 지금까지 들어본 바로는 모두 가격 대비 만족도 높은 편이라고 봅니다. 초등학생 가르치듯 알려주는 강의 보고 싶으면 다른 걸 보시되, 진짜 알짜베기만 빨리 빨리 배우고 싶으면 기선님 강의 추천합니다. 제가 들어본 것들은 다 좋았어요.
2022-09-08
지토 thumbnail
5
자바를 다년간 써왔지만 자바8 이후의 문법들에 익숙하지 않고 기존의 문법들만 사용해왔었습니다. 해당 강의 덕분에 새로운 문법과 기능들을 학습할 수 있었고, 시야가 넓어진 것 같습니다. 감사합니다 :)
2020-10-02
지식공유자 백기선
잘 수강하셨습니다. 이 강의에서 다룬 기능들은 앞으로 자바를 쓴다면 기본으로 쓰이게 될 기능입니다. 수강평 감사합니다.
2020-10-03
MyCatIsRockstar thumbnail
5
이 강의 덕분에 제가 자바를 좋아하게 되었다고 해도 과언이 아닙니다. 특히 스트림이랑 함수형 인터페이스 부분을 이렇게 쉽게 설명해주신 분은 기선님이 처음입니다ㅠㅠ.. 덕분에 맨날 자바로 코테 본다고 하면 해보지도 않고 포기했던 제가 자바로 코테 공부를 하게 되었습니다. 성의 없다고 느껴진다는 피드백도 있는데 저는 오히려 자바를 어려워 할 필요 없다는 듯한 기선님의 무심한 말투가 제가 가지고 있던 자바에 대한 부담감을 덜어주셔서 좋았습니다. 이거 듣고 저는 이펙티브 자바 1,2랑 코드 조작도 샀어요!! 진짜 킹갓 제너럴 기선님 감사합니다 감사합니다 🥹🥹
2023-05-25
연관 로드맵
이 강의가 포함된 잘 짜여진 로드맵을 따라 학습해 보세요!