채널톡 아이콘
BEST

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

멀티스레드와 동시성을 기초부터 실무 레벨까지 깊이있게 학습합니다.

Thumbnail

초급자를 위해 준비한
[백엔드, Java] 강의입니다.

이런 걸 배울 수 있어요

  • 멀티스레드

  • 동시성

  • 스레드 풀과 Executor 프레임워크

  • 프로세스와 스레드, 스케줄링, 컨텍스트 스위칭

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

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

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

•••

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

실무를 생각한 자바 멀티스레드와 동시성

지금까지 우리는 "자바 입문""자바 기본", "자바 중급 1,2"을 통해 자바 프로그래밍 기본기 및 객체지향 개념을 다지고, 그 기반 위에 다양한 중급 기능을 학습했습니다.

이번에 학습할 "자바 고급 1편"에서는 자바 멀티스레드 기술 및 동시성 문제를 깊이있게 다룹니다.

  • 자바 멀티스레드 프로그래밍 (Java Multithread Programming)

  • 동시성 (Concurrency)

  • 프로세스(Process) 및 스레드(Thread), 스케줄링(Scheduling)

  • 컨텍스트 스위칭 (Context Switching)

김영한의 실전 자바 로드맵

이 강의는 김영한의 실전 자바 로드맵다섯 번째 강의로, 자바 기본 문법 및 OOP(클래스, 제네릭, 컬렉션, 자료구조) 등의 중급 개념과 기능을 학습한 분들을 대상으로 합니다.

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

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

본질적 이해의 중요성

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

실무적 접근 방식

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

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

이번 자바 고급 1편 강의에서는 멀티 스레드와 동시성을 CS 기본기부터 시작해 실무에 필요한 활용 기술까지 완전히 마스터하는 것을 목표로 하고 있습니다.

덧붙여 고급 1편은 지금까지 공개된 "김영한의 실전 자바" 시리즈 중 가장 방대한 분량으로 이루어져 있습니다. 그만큼 처음에는 개념을 잡기 어려울 수 있지만 강의를 통해 멀티 스레드와 동시성의 패러다임을 잘 갖춘다면 앞으로 프로그래밍을 하는 데 있어 (어떤 언어를 쓰더라도) 쭉 활용할 수 있는 기본기가 되어줄 것입니다.

여러분이 단순히 스레드를 아는 것을 넘어서 실무에 필요한 자바 멀티스레드 기술과 동시성 문제를 정말 깊이있게 제대로 이해하고, 또 실무에서 제대로 활용할 수 있게 가르쳐 드리겠습니다.

이후에 학습할 “자바 고급 2~3편”에서는

자바 고급 1편 이후 이어지는 고급 2, 3편(예정)에서는 I/O, 네트워크, 애노테이션을 활용하는 방법을 알아봅니다. 아울러 람다, 스트림 및 최신 기능 위주의 모던 자바를 학습하고 실제 실무에서 베스트 프랙티스를 탐색하는 데 꼭 선행되어야 하는 역량을 기르는 것을 목표로 합니다.

강의 내용

  • CS 이론의 바탕 위에

    스레드의 기본기를 익힙니다.

  • 동시성 문제를 해결하는 방안과 고급 동기화 기법까지 알아봅니다.

  • 실무에서 사용하는 멀티스레드 기술을 완전히 마스터해 봅니다.

기반을 다지는 CS 이론 학습

스레드를 다루기에 앞서 개념을 확실하게 이해할 수 있도록 필요한 CS 이론을 학습합니다. 프로세스, 스레드, 멀티스레딩, 운영체제의 스케줄링 등 기반이 되는 핵심 지식을 다집니다.

프로세스와 스레드 (Process & Thread)

멀티태스킹 (Multi-Tasking)

스케줄링2 (@Schedule)

스레드의 기본기

스레드의 생성과 제어, 스레드의 생성 주기, 메모리 가시성 및 동시성 문제의 이해와 해결 등 동시성 문제를 해결하는 더 나은 방안들과 고급 동기화 기법까지 학습해 봅니다.

스레드 제어

스레드 생명 주기

메모리 가시성 Volatile

Synchronized 동기화

ReentrantLock - 고급 동기화

스레드 제어 - 다양한 예제

스레드의 여러 고급 기술 학습

스레드를 활용할 때 반드시 이해해야 하는 생산자-소비자 문제를 알아봅니다. 해당 문제를 해결하는 Lock-Free 기술인 CAS의 원리와, 멀티스레드 상황에서 활용할 수 있는 동기화 컬렉션의 원리와 활용법을 함께 학습합니다.

생산자-소비자 문제 (Producer-Consumer Problem)

CAS (Compare And Swap)

동기화 컬렉션 (Synchronized Collection)

실무에서 사용하는 멀티스레드 실전 기술 학습

Future, 스레드 풀(Thread Pool) 및 Executor 프레임워크의 원리와 실무 활용 방안까지 실제 자바 프로그래밍에 꼭 필요한 멀티스레드 핵심 기술을 완전히 마스터합니다.

Future의 작동 원리

스레드 풀과 Executor 프레임워크 - 원리

스레드 풀과 Executor 프레임워크 - 실전 활용

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

이번 ‘김영한의 실전 자바 Java 로드맵’ 에서 저의 목표는 진짜 실무에 필요한 기본기가 탄탄하게 갖춰진 실력 있는 개발자를 만드는 것입니다. 제대로 알고 사용할 때 도움이 되는 개념을 다져둠으로써 이후 엔지니어로서의 역량을 기를 수 있도록 도와드리고자 합니다. 이 강의를 통해 많은 분들이 앞으로 나아갈 수 있는 기반을 좀 더 쉽고 편하게, 그리고 확실하게 쌓을 수 있기를 바랍니다.

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 개발자 취업 준비생

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

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

선수 지식,
필요할까요?

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

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

안녕하세요
김영한입니다.

502,045

수강생

31,360

수강평

8,780

답변

5.0

강의 평점

22

강의

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

 

저의 개발 인생 이야기

EO 인터뷰 영상

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

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

 

더보기

커리큘럼

전체

118개 ∙ (20시간 48분)

해당 강의에서 제공:

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

수강평

전체

231개

5.0

231개의 수강평

  • 딩띵

    수강평 5

    평균 평점 5.0

    5

    33% 수강 후 작성

    영한님 강의는 말해뭐해 정말 최고입니다. 스레드 개념이 이해되지 좌절 했는데, 강사님의 강의를 보면서 "아, 그래서 그때 회사에서 그렇게 설명했구나!" 하고 깨닫게 되며 이해도가 높아졌습니다 부끄럽지만, 3년차지만 기본기가 부족하다는 걸 느껴 처음부터 다시 공부하고 있습니다. 배워야 할 양은 많지만 꾸준히 공부하는 습관이 잡히지 않아 마음은 조급하고 죄책감들어 울면서 공부를 했습니다 하지만 강의평과 영한님이 남겨주신 댓글을 보며 힘을 얻었고, 강의 진도율에 따른 메시지?를 보면서 계속 마음을 다잡고 있습니다. 공부가 쉽지는 않지만, 꾸준히 노력하며 앞으로 나아가겠습니다! 여담이지만, 가족들 얼굴보다 영한님 얼굴을 더 자주 봐서 그런지 이제 가족처럼 느껴지기도 하네요. 😊

    • 김영한
      지식공유자

      딩띵님 어려운 시기를 잘 극복하고 계시네요. 기본기를 탄탄히 다지면서 꾸준히 학습하시면 분명 더 좋은 개발자가 되실 거라 믿습니다. 가족 같은 느낌이라니, 열심히 공부하시는 것이 느껴지네요 ㅎㅎ. 항상 응원합니다!

  • Marin Frog

    수강평 25

    평균 평점 5.0

    5

    5% 수강 후 작성

    생계문제로 다른 언어와 사투중에 강의개설을 보고 왔습니다. **블레이드 같은 게임도 나왔는데 개설했으니 플레이 하러 여름휴가 가시는건 아닐런지요 ㅎㅎㅎ :) 일에 치이다 보니 강의가 밀리기 시작하다보니 나태함을 아셨는지 아직 갈길이 멀다라고 알려주시는듯 해서 눈치봐서 연차라도 쓰고 강의 달리며 연말전까지는 각잡고 완강해야겠습니다. 항상 유익한 강의 고맙습니다. ps. 설마.. JVM 까지 나오는건 아니겠죠? (하실지도?)

    • 김영한
      지식공유자

      Marin Frog님 고맙습니다 :) 멀티스레드와 동시성이 쉬운 내용이 아니다 보니, 최대한 쉽게 풀어서 설명하기 위해 그림도 많이 넣고, 내용도 많이 다듬었습니다 :) 그 만큼 시간과 에너지도 많이 사용했지만, 제가 오랜 시간에 걸쳐서 어렵게 배운 내용을 잘 정리하고, 그래서 다음 시대의 분들이 쉽고 빠르게 배울 수 있다는 생각에 또 힘이나네요 :) 저도 잘 충전하고 또 다음 강의도 열심히 준비하겠습니다 :) ps. 제가 좀 실용적인 부분들을 좋아해서, 실무와 관련이 있거나 실무에서 활용할 수 있는 기본 이론들을 주로 다룰 것 같아요 :) 그래서 JVM까지는 내려가지 않을 것 같아요 :)

  • 박종철

    수강평 33

    평균 평점 4.7

    5

    8% 수강 후 작성

    2024년 초복에 영한님 강의 오픈 알람이 너무 반가왔습니다. 늘 건강 잘 챙기시고 짱짱한 강의 계속 진행해 주시 길 바랍니다. 자바 실력, 손가락 실천이 '국룰' 이다~

    • 김영한
      지식공유자

      박종철님 첫 수강평 감사합니다 :) 즐겁게 공부하시고 또 크게 성장하는 2024년 되시길 응원합니다!

  • 인프런

    수강평 21

    평균 평점 5.0

    5

    100% 수강 후 작성

    예전에 학교에서 자바 스윙으로 게임만들면서 무지성으로 쓰레드를 생성하고 버그생겨서 고생했던 기억이 나네요 그땐 정말 쓰레드가 싫었는데.. 영한님 강의 덕분에 쓰레드가 이렇게 재밌는거였구나 생각이 듭니다. 방대한 내용이었지만 어려운 내용은 계속 반복해서 설명해주시면서 이해되고 제 머리속에 확실히 박혔습니다. 감사합니다! 특히 영한님의 강점은 어려운 기술을 설명하기 전에 기반이되는것부터 확실히 알려주시고 들어가는 건데, 이번 강의에서도 Future 인터페이스랑 Executor 정말 어려운 내용일줄 알았는데 알고보니 생산자소비자만 제대로 이해하니 정말 쉬웠습니다 감사합니다~

    • 김영한
      지식공유자

      인프런님 앞으로 멀티스레드를 즐겁게 사용하실 수 있겠네요 :) 응원합니다!

  • 이미연

    수강평 10

    평균 평점 5.0

    5

    100% 수강 후 작성

    멀티스레드의 세상에 입문하게 되어, 참으로 기쁩니다. 인류애 없이는 나올 수 없는 명강의 입니다. 그림과 로그를 어디에 남겨서 이해를 도울까 고민하신, 노고를 강의 중 귀여우신 생색내기? 로 알게되니, 인간미 넘치시는 영한님과 함께라면, 우주끝까지 재밋게 공부할 수 있을 듯 신뢰 넘칩니다. 큰 절이라도 하고싶은 고급1편입니다. 고급2편도 재밋게 듣겠습니다. 참으로 감사드립니다.

    • 김영한
      지식공유자

      이미연님 열심히 공부하시고 이번에도 수강평 남겨주셔서 감사합니다 :) 덕분에 저도 다음 강의를 준비할 힘이 나네요 ㅎㅎㅎ 저도 열심히 해보겠습니다!

김영한님의 다른 강의

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

비슷한 강의

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

연관 로드맵

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

월 ₩15,400

5개월 할부 시

₩77,000