강의

멘토링

커뮤니티

BEST
개발 · 프로그래밍

/

웹 개발

김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍

최신 자바에 꼭 필요한 람다, 스트림, 자바를 활용한 함수형 프로그래밍 기술을 기초부터 실무 레벨까지 깊이있게 학습합니다.

(5.0) 수강평 268개

수강생 4,056명

  • 김영한

먼저 경험한 수강생들의 후기

수강 후 이런걸 얻을 수 있어요

  • 람다

  • 함수형 인터페이스

  • 스트림 API

  • Optional

  • 함수형 프로그래밍

국내 개발 분야 누적 수강생 1위,
제대로 만든 김영한의 실전 자바

단순히 자바 문법을 안다? 이걸로는 안됩니다!

전 우아한형제들 기술이사, 누적 수강생 40만 명 돌파
김영한이 자바 강의를 만든 이유

•••

“진짜 실무에 필요한 제대로 된 개발자를 만드는, 제대로 된 자바 강의를 만들고 싶었습니다.”

실무에서 빛나는 최신 자바 문법과 기술

우리는 지금까지 자바 입문, 기본, 그리고 중급 1~2편을 통해 자바의 기본기를 다진 다음, 앞선 고급 1편, 2편을 통해 멀티스레드, I/O, 네트워크, 리플렉션, 애노테이션 같은 고급 기술들을 학습했습니다.

이번에 학습할 "자바 고급3편"에서는 람다, 스트림, 함수형 프로그래밍 같은 최신 자바에서 자주 사용되는 새로운 문법과 기술들을 학습합니다.

  • 람다 (Lambda)

  • 스트림 (Stream)

  • 함수형 프로그래밍 (Functional Programming)

김영한의 실전 자바 로드맵

이 강의는 김영한의 실전 자바 로드맵마지막 강의로, 자바 기본 문법 및 OOP(클래스, 제네릭, 컬렉션, 자료구조), 멀티스레드, 입출력 및 네트워크 활용 등을 학습한 분들을 대상으로 합니다.

>> 목적에 맞게 효과적으로 학습할 수 있도록 자바 로드맵 가이드를 소개합니다.

"김영한의 실전 자바 - 고급 3편" 강의는

본질적 이해의 중요성

자바의 문법과 기능을 단순히 알기만 하는 것이 아니라, 그 기능이 왜 필요하고 어떻게 실무에 적용할 수 있는지에 대해 깊이 있게 탐구합니다.

실무적 접근 방식

단순한 이론 전달이 아닌, 이해를 돕는 그림 및 예제 코드를 통해 자바 기술의 필요성을 단계적으로 이해시킵니다. 또한 다양한 예제를 통해 각 기술이 실무에서 어떻게 활용되는지 이해할 수 있습니다.

우리의 목표는 단순 문법 이상의 본질입니다.

이번 고급 3편 강의는 람다, 스트림, 자바를 통한 함수형 프로그래밍을 기본기부터 실무에 필요한 레벨까지 완전히 마스터하는 것을 목표로 합니다.

특히 단순히 람다, 스트림의 문법만 학습하는 것이 아니라, 다양한 실전 예제와 모범 사례를 통해 이러한 최신 기술들을 실무에 올바르게 적용하는 방법을 깊이있게 학습합니다.

여러분이 람다, 스트림, 함수형 프로그래밍 같은 기술을 단순히 아는 것을 넘어서 실무에 이 기술들을 어떻게 적용해야 하는지, 깊이있게 이해하고, 또 활용할 수 있게 가르쳐 드리겠습니다.

강의 내용

  • 람다 기본기와 활용법을 익히고, 필터, 맵, 스트림 등을 직접 구현하며 실습합니다.

  • 스트림 API의 기본 이론과 다양한 기능(filter, map, flatMap 등)을 학습하고, 스트림 컬렉터와 병렬 스트림 활용법까지 익힙니다.

  • Optional과 디폴트 메서드 같은 부가기능을 학습하고, 올바른 실무 적용법을 학습합니다.

  • 명령형, 객체지향, 함수형 등 프로그래밍 패러다임을 이해하고, 자바를 통한 함수형 프로그래밍을 코드를 통해 이해하기 쉽게 학습합니다.


람다와 함수형 프로그래밍 핵심 정리

람다와 함수형 인터페이스 기본기 다지기

람다의 필요성, 정의, 문법, 활용 팁을 학습합니다. 또한, 람다와 함께 사용하는 필수 개념인 함수형 인터페이스를 익히고, 자바 표준 API에 내장된 다양한 인터페이스를 효과적으로 활용하는 방법을 알아봅니다.

람다의 실무 활용과 메서드 참조

실무 코드에서 람다를 어떻게 적용하는지 핵심 활용법을 배웁니다. 또한 익명 클래스와의 차이를 비교하며 람다의 적절한 활용 방안을 익히고, 자바 8에서 추가된 메서드 참조를 통해 코드의 간결성을 높이는 방법을 이해합니다.

스트림 API 완벽 이해와 실무 활용

스트림 API 기본 다지기

스트림 API는 람다와 함께 자바 컬렉션을 다루는 새로운 패러다임을 제시합니다. 스트림의 구조와 기본 사용법을 쉽게 이해할 수 있도록 정리하고, 필터링, 매핑, 정렬, 리듀스 등 스트림에서 제공하는 핵심 기능들을 익혀, 보다 간결하고 직관적인 코드를 작성하는 방법을 학습합니다.

스트림을 더 깊이있게, 컬렉터 활용

데이터 수집과 가공을 위한 Collector의 개념을 학습하고, collect(), groupingBy(), partitioningBy() 등 다양한 수집 기법을 다룹니다. 실무 예제를 통해 실무에서 꼭 필요한 스킬들을 배웁니다.

고급 부가기능과 함수형 프로그래밍

고급 부가기능

자바 8에서 추가된 고급 부가기능들을 학습합니다. Optional을 활용하여 NPE 문제를 예방하고, 디폴트 메서드를 통해 인터페이스 확장 시 호환성을 유지하는 방법을 익힙니다. 또한, 병렬 스트림을 사용하여 멀티코어 환경에서 성능을 극대화하는 기법을 학습합니다.

함수형 프로그래밍

람다, 스트림 API, Optional 등 자바 8 이후로 추가된 기능들을 통해 함수형 프로그래밍 패러다임을 구현하는 방법을 학습합니다. 명령형, 객체지향, 선언형, 함수형 등 다양한 패러다임을 비교하며, 자바에서 함수형 프로그래밍을 효과적으로 적용하는 실전 노하우를 익힙니다.

“어떤 걸 더 가르쳐야 하는지보다도, 반드시 알아야 할 내용이 무엇인지를 더욱 깊이 고민했습니다.”

이번 ‘김영한의 실전 자바 Java 로드맵’ 에서 저의 목표는 진짜 실무에 필요한 기본기가 탄탄하게 갖춰진 실력 있는 개발자를 만드는 것입니다. 오래 걸려 쌓은 기본기는 시간이 흐를수록 더 큰 가치를 발휘합니다. 여러분이 실무에서 접하게 될 수많은 활용 기술을 쉽고 빠르게 흡수하며, 더 즐겁게 성장하는 개발자로 거듭나는 길에 이번 강의가 밑거름이 되기를 바랍니다.

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • 개발자 취업 준비생

  • 자바 공부를 했지만 기본기를 제대로 다지고 싶은 분

  • 실무에 필요한 자바를 더 깊이있게 이해하고 싶은 개발자

선수 지식,
필요할까요?

  • 김영한의 실전 자바 - 고급1편 - 멀티스레드와 동시성

  • 김영한의 실전 자바 - 중급 1, 2편

  • 김영한의 실전 자바 - 기본편

안녕하세요
입니다.

568,529

수강생

38,389

수강평

9,017

답변

5.0

강의 평점

25

강의

진짜 실무에 필요한 제대로 된 개발자가 될 수 있도록, 교육하는 것이 저의 목표입니다.

 

저의 개발 인생 이야기

EO 인터뷰 영상

개발바닥 - 시골 청년 개발왕 되다

취업과 이직에 대한 고민 해결

 

커리큘럼

전체

99개 ∙ (16시간 40분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

전체

268개

5.0

268개의 수강평

  • bonjeong088610님의 프로필 이미지
    bonjeong088610

    수강평 2

    평균 평점 5.0

    수정됨

    5

    100% 수강 후 작성

    The best choice I made before enlisting 😊 ++ After completing the course: I first learned Java last year when I entered university. There, I came across Kim Young-han's lectures through a recommendation from a senior, and I was very impressed with the way he explained everything from the principles, step by step, in the introductory and basic courses, even though I knew nothing. Thanks to the hand-drawn illustrations and well-organized PDFs, I was able to learn Java in a fun way and build a solid foundation. And while learning the intermediate and advanced courses, I think I fell in love with the charm of Java and object-oriented programming with fun elements like various design patterns. I started last year and learned a lot while taking Young-han's Java roadmap from the introductory to advanced courses for a year. Thanks to that, I got an A+ and I'm grateful! I'm also looking forward to any additional lectures! Thank you.

    • yh
      지식공유자

      Thank you, bonjeong08 :) Reading bonjeong08's review suddenly reminds me of a story from 20 years ago 😊😊😊 I had a senior colleague whom I respected, and he had studied Java in the military. When I asked him how he studied, he said he carried around a very thick Java book and kept simulating in his head without a computer 😊😊 I'm rooting for you, bonjeong08 :)

  • xuv2님의 프로필 이미지
    xuv2

    수강평 24

    평균 평점 4.8

    수정됨

    5

    27% 수강 후 작성

    Hello Younghan, first of all, congratulations on successfully completing the Java roadmap! I was really looking forward to this third Java installment, as it covers modern syntax (Lambda, Stream) that I've been wanting to learn so much. I initially intended to take the wild course, but after facing setbacks with Lambda and Optional in the Spring introduction, I decided to complete the entire Java roadmap first. Starting with the introduction, I've now reached the final lecture. Having taken all the Java roadmap courses and reviewed them at least twice, I believe this Java roadmap is truly "an in-depth course based on programming and computer science, not just a simple Java language course." In the past, I had tried to understand Lambda syntax by haphazardly searching through books or online, but I never fully grasped how to actually use it. I tend to be intimidated by unfamiliar terms like functional programming and Lambda. However, from the very beginning of this lecture, the statement "Everyone, Lambda is also an object" immediately helped me understand the content that I had previously found difficult. I wondered why my university professor never mentioned that Lambda is an object, which made me go through so much trouble, and I felt grateful to Younghan for making me understand it with just that one sentence.😆😆😆. Through the introductory and basic courses, I was able to solidify my Java fundamentals. Through the intermediate course, I clearly understood how to handle exceptions and which data structures to use in different situations, and I attempted my first coding test. Through the advanced course 1, I learned about multithreading -> frameworks utilizing multithreading. Through the advanced course 2, I got a taste of how to create dynamic programs through networking and reflection. And through this advanced course 3, I was able to learn about Java syntax that is already commercialized, even though it is considered modern. Also, throughout this entire process, I naturally acquired a lot of computer science knowledge without specifically studying it. In particular, when I first encountered the SOLID principles, I didn't easily understand what each principle meant. However, when I reread the principles towards the end of this roadmap, I realized that they were composed of things that I already considered obvious. Although I may not be able to create something immediately with these advanced skills I've learned, I believe I've taken a step towards Spring, and I'll diligently follow the Spring roadmap as well! "Everything is an object in Java!" "All functions are not some magical trick, but functions written in Java code!" I will keep these two statements in mind and review diligently. I wish you continued success, and once again, congratulations on completing the Java roadmap!

    • yh
      지식공유자

      It's rewarding to see you enjoying the course, xuv2! :) I'm especially glad to see you building a solid foundation in Java fundamentals, step by step. Looking back, I've realized that having a strong grasp of the basics is essential for a deeper understanding of practical technologies like Spring or JPA later on. I also appreciate that you noticed my efforts to explain not only Java syntax but also how essential basic CS concepts are applied in real-world scenarios. Your feedback is truly encouraging :) Thanks to you, I'm motivated to work even harder on preparing the next course! Enjoy your studies and keep growing!

  • dh222님의 프로필 이미지
    dh222

    수강평 5

    평균 평점 5.0

    5

    61% 수강 후 작성

    When I first studied lambda expressions and streams, I used the book "Modern Java in Action." While reading this book, I felt like I was getting familiar with these technologies, and I thought the explanations were very well done. But after taking this course up to the streams section, I can confidently say that this course is overwhelmingly better. I haven't studied much, and maybe it's because my skills are lacking that I found other books/courses difficult, but this is the best course/book I've ever encountered. I loved that it didn't feel like the sections were divided, but rather connected, which allowed me to follow the flow. Although I felt there weren't many examples, each example was excellent. I'm currently taking the last course in Younghan's roadmap, and I think this is the best of all the courses. I don't think there's a better course/book for learning lambda expressions/streams for the first time, and I also don't think there's a better course/book for reorganizing your knowledge even if you already know them to some extent. I just wrote this in a stream of consciousness, so the writing is a bit of a mess, but either way, this course is divine. Thank you for creating such a great course. It seems like I can't leave more than two reviews, so I deleted the existing review and rewrote it. 😭😭

    • yh
      지식공유자

      I'm glad to hear that you're enjoying studying, Mr. Jeong Dae-hoon! :) I've actually put a lot of effort into organically connecting the entire section like building blocks to naturally complete a big picture, so I appreciate you noticing these parts. I hope you continue to enjoy studying as you do now and grow significantly! ^^!

  • jjs0107135951님의 프로필 이미지
    jjs0107135951

    수강평 5

    평균 평점 5.0

    5

    100% 수강 후 작성

    Hello! While taking this lecture, I could feel the beauty that the instructor talked about. Truly, the more I listened to the lecture, the more amazing and interesting the time became. It seems I also feel a sense of regret, to the point where this lecture felt exceptionally short. That's how much I think instructor 김영한 gave a good lecture. Now that you have completed the Java Roadmap, I want to say you truly worked hard. Actually, knowing that this lecture was prepared, edited, pondered over again and again, and uploaded by you alone, I think I also approached it with a passionate attitude, inspired by the instructor's passion. I am currently a 4th-year student in the Department of Computer Engineering at university. I am currently taking a lecture on learning the Spring Framework for backend programming, and what I felt while listening was that my coding skills truly improved several times over, just as the instructor said, like a sponge absorbing. In my current project as well, by applying the Lambda technology I just learned where it can be applied, I was able to become even closer to Lambda. Thank you for coming with such a good lecture this time too! I will continue to strive to become a steadily progressing developer! In my path as a developer, instructor 김영한 is a reliable presence, as if walking together. I respect you!! Thank you!

    • yh
      지식공유자

      Thank you, 열정맨님, for the review that is also encouraging to me! If you felt the beauty of development through this course, you'll be able to continue growing well as a developer with curiosity and enjoyment :) I encourage you to study joyfully and consistently, so that you may grow significantly!

  • cod0216님의 프로필 이미지
    cod0216

    수강평 5

    평균 평점 4.8

    5

    100% 수강 후 작성

    I started learning development for the first time in early 2024, beginning with the Java Basics course. By summer, I had studied the Java Intermediate course and followed the Spring roadmap, while consistently studying operating systems and computer architecture in between. I was able to pass the SSAFY selection, and thanks to Young-han's lectures, I got accepted into the Java track and have now successfully completed the program. After completion, I continued learning up to Advanced Part 3, and now I have confidence and certainty, whereas I was anxious when I first started with the Basics course. If someone asks me in the future, "Who did you learn Java from?", I will be able to proudly say that I learned from instructor Kim Young-han. Thank you sincerely.

    • yh
      지식공유자

      Thank you so much, Eunchang Choi, for teaching me Java so diligently. I'm truly grateful :)

₩77,000

김영한님의 다른 강의

지식공유자님의 다른 강의를 만나보세요!

비슷한 강의

같은 분야의 다른 강의를 만나보세요!

연관 로드맵

강의가 포함된 로드맵으로 학습해 보세요!