강의

멘토링

로드맵

Inflearn brand logo image
BEST
개발 · 프로그래밍

/

프로그래밍 언어

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

실무에 필요한 자바의 다양한 중급 기능을 예제 코드로 깊이있게 학습합니다.

(5.0) 수강평 901개

수강생 10,468명

  • 김영한
자바
실습 중심
Java객체지향

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

이런 걸 배울 수 있어요

  • 실무에 필요한 다양한 자바 중급 기능

  • Object, 불변 객체, String, 래퍼, 열거형

  • 날짜와 시간, 중첩 클래스, 예외 처리

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

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

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

•••

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

실무에 쓰이는 자바의 다양한 중급 기능

지금까지 우리는 "자바 입문" 그리고 "자바 기본" 두 강의를 통해 프로그래밍 기본기 및 객체지향 개념(OOP)에 대해 학습했습니다. 이번 "자바 중급 1편" 강의에서는 그 2가지 기반 위에 자바가 제공하는 다양한 중급 기능들을 학습합니다.

  • Object 클래스

  • 불변 객체

  • String 클래스

  • 래퍼, Class 클래스

  • 열거형 : ENUM

  • 날짜와 시간

  • 중첩 클래스, 내부 클래스

  • 예외 처리

코드를 통해 Why를 확실히 이해하기

여러분, 기본기가 정말 중요합니다. 그런데 기본기가 뭘까요? 단순히 자바의 문법과 기능을 잘 아는 걸까요?

실무에서 많은 주니어 개발자 분들 가운데 잘 성장하지 못하는 분들을 보면, 대부분 자바 문법과 기능은 알지만 이 기능이 왜 필요한지 본질적인 이해를 못하는 경우가 많았습니다.

반대로, 잘 성장하는 주니어 개발자들을 보면 자바의 문법과 기능을 아는 수준을 넘어 이 기술이 왜 필요한지 본질적인 이해를 하고 있습니다. 그런 이해를 바탕으로 기능을 잘 활용하고 여러 가지 시도를 해보면서 빠르게 성장하는 모습을 보았습니다. 이러한 차이는 어디서 오는 걸까요?

지금까지 나온 많은 책과 강의를 보면 자바가 제공하는 기술들이 왜 필요한지 본질적인 이유를 설명하기보다는 단순히 자바의 문법과 기능 위주로 가르치는 경우가 많았기 때문입니다.

이 강의는 단순히 문법 위주의 강의가 아니라, 예제 코드를 통해 이 기능이 왜 필요한지 단계적으로 이해시켜 드립니다.
그리고 여러분이 배운 내용을 실무에서 잘 활용할 수 있게 실무에서 주로 사용하는 방식도 함께 알려드립니다.

실무에 꼭 필요한 자바 기술을 깊이있게 제대로 가르쳐드리겠습니다.

김영한의 실전 자바 로드맵

이 강의는 김영한의 실전 자바 로드맵세 번째 강의로, 자바 기본 문법을 학습한 분들을 대상으로 합니다.

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

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

본질적 이해의 중요성

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

실무적 접근 방식

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

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

이 강의는 단순한 문법 전달을 넘어, 자바(Java) 기술이 실무에서 왜 중요한지에 대한 본질적인 이해를 목표로 합니다. 여러분이 자바 기본기를 튼튼히 다지고, 이를 바탕으로 실무에서 좋은 개발자로 잘 성장할 수 있도록 돕겠습니다.

이후에 학습할 “중급 2편”에서는

제네릭(Generic)과 컬렉션(Collection)을 깊이있게 다룹니다.

특히 컬렉션의 경우 컬렉션을 직접 구현하면서 원리를 이해합니다. 그래서 각각의 자료구조가 어떤 경우에 성능이 좋고, 어떤 경우에는 성능이 나쁜지 근본적인 이유들을 이해하고 활용할 수 있게 됩니다.

강의 내용

  • 제네릭 및 컬렉션 프레임워크를 배우기에 앞서 실무에 필요한 여러 자바 중급 기능을 학습합니다.

  • 실전 예제 코드를 통해 각각의 기능이 왜 필요한지에 대해 본질적인 이해를 할 수 있습니다.

Object 클래스

Object 클래스는 모든 클래스의 최상위 부모입니다.

이 강의에서는 Object 클래스가 필요한 이유와 Object 클래스가 제공하는 기능들을 알아봅니다. 또한 equals()를 통해 자바의 동일성과 동등성 개념도 함께 학습합니다.

불변 객체

한번 생성하면 그 이후로 변하지 않는 객체를 불변 객체라 합니다.

이후에 설명할 String, 래퍼, 날짜와 시간을 포함해서 자바가 제공하는 많은 객체들은 불변 객체로 제공됩니다. 여기서는 불변 객체가 왜 필요한지, 그리고 어떻게 불변 객체를 만드는지 알아봅니다.

String 클래스

String 클래스는 자바에서 문자열을 다룰 때 사용되는 클래스입니다. 여기서는 String 객체의 기본 기능 뿐만 아니라, StringBuilder와 String의 기능과 성능 차이도 알아봅니다. 또한 자바가 String 클래스를 어떻게 최적화하는지 깊이있게 알아봅니다.

래퍼, Class 클래스

자바 기본형의 한계를 알아보고 그 한계를 극복하기 위한 래퍼 클래스를 학습합니다. 래퍼 클래스의 오토 박싱, 주요 메서드도 학습합니다.

추가로 클래스의 정보를 나타내는 Class 클래스, 시스템의 정보를 제공하는 System 클래스, 자주 사용하는 Math, Random 같은 클래스도 함께 알아봅니다.

열거형 - ENUM

열거형은 높은 타입 안전성을 제공하는 훌륭한 기능입니다.

여기서는 단순히 열거형의 문법을 배우는 것이 아니라 본질적으로 열거형이 왜 필요한지 이야기합니다. 그리고 열거형이 없던 시절 직접 구현했던 타입 안전 열거형 패턴도 구현해봅니다. 또한 다양한 예제 코드를 통해 열거형을 실무에서 어떻게 잘 활용할 수 있는지 알아봅니다.

날짜와 시간

날짜와 시간을 계산하는 일은 겉으로는 단순해 보이지만 매우 어렵습니다. 그래서 자바가 제공하는 라이브러리를 사용해야 합니다.

자바 날짜와 시간 라이브러리의 역사부터 시작해 어떤 상황에 어떤 날짜와 시간 클래스를 사용해야 하는지 다양한 예제를 통해 정리해 드립니다.

중첩 클래스, 내부 클래스

클래스 내부에 클래스를 두는 것을 중첩 클래스 또는 내부 클래스라 합니다. 여기서는 모든 중첩 클래스를 완전히 마스터하는 것을 목표로 합니다.

정적 중첩 클래스, 내부 클래스, 지역 클래스, 익명 클래스까지 모든 중첩 클래스를 설명합니다. 단순히 문법 위주로 설명하는 것이 아니라 어떻게 활용되는지 코드와 예제로 설명합니다. 특히 어려운 개념인 지역 변수 캡처에 대해서도 그림으로 쉽게 풀어서 설명합니다.

예외 처리

자바에서 예외 처리 문법은 단순하지만 예외 처리가 왜 필요하고 또, 실무에서 어떻게 활용해야 할지 제대로 이해하는 건 어렵습니다.

여기서는 먼저 예외 처리가 없던 시절로 돌아갑니다. 그리고 예제 코드를 점진적으로 개선해가면서 본질적으로 예외 처리가 왜 필요한지 그 이유를 하나씩 찾아갑니다.

마지막으로 실무에서 어떤 방식으로 예외를 처리하는 게 좋은지 실무 베스트 프랙티스에 대해서도 알려드립니다.

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

이번 ‘김영한의 실전 자바 Java 로드맵’ 에서 저의 목표는 진짜 실무에 필요한 기본기가 탄탄하게 갖춰진 실력 있는 개발자를 만드는 것입니다. ‘왜 이런 기능이 필요하지?’ 하는 본질적인 질문을 던질 수 있는, 그럼으로써 응용하며 성장해 나갈 수 있는 자바 개발자로 발돋움할 수 있도록 도와드리겠습니다.

이런 분들께
추천드려요

학습 대상은
누구일까요?

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

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

  • 개발자 취업 준비생

선수 지식,
필요할까요?

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

안녕하세요
입니다.

552,976

수강생

36,171

수강평

8,952

답변

5.0

강의 평점

24

강의

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

 

저의 개발 인생 이야기

EO 인터뷰 영상

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

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

 

커리큘럼

전체

103개 ∙ (19시간 20분)

해당 강의에서 제공:

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

수강평

전체

901개

5.0

901개의 수강평

  • sg2pooh9981님의 프로필 이미지
    sg2pooh9981

    수강평 10

    평균 평점 5.0

    5

    49% 수강 후 작성

    市中に出ているJava基本本を1回読んでみて、この授業を聴くことをおすすめします。一人で頭が壊れて本で勉強しなければならない。

    • yh
      지식공유자

      ㅎㅎㅎパク・ソングン様一生懸命準備したやりがいありますね:) ありがとうございます^^!!

  • pitypet9518님의 프로필 이미지
    pitypet9518

    수강평 1

    평균 평점 5.0

    5

    100% 수강 후 작성

    JAVAではなく開発ツール(パワービルダー)でERPシステムのみを開発したかどうか すでに20年が経ちましたが、ユーザーのニーズや もう1つのシステムはWebベースの開発を要求しています。 Webサービスの勉強が必要でした。 JAVAにはスプリングだから全く知らないまま、どんな教育を受けなければならないのか全く知らないから スプリング関連講義を3人の講師分の講義をすべて決済をして聞くようになりました。 その3分の中にはキム・ヨンハンさんも含まれています。 各講師の講義を聞いていますが、現在の進行状況は 1. キム・ヨンハン様の講義はJPAを除いては全部完強となりました。 基本ネットワークからスプリング入門、バックエンド、DB(JPAは除く)まで、少なくとも2回はすべて聞きました。 JPAを例外にした理由は、ERPが特に複雑なQUERYが多く、MYBATISで直接SQLを作成する方が効率的だと考えています。 2. 他のA講師様の講義はスプリング1、2がありましたが、1編だけ半分ほど進んで止まった状態です。 特徴はJSPに多く重点的になっており、現在私が通っている会社で使用中のJSPにちょっと役に立つということだが それ以外は講義をする前に一度テストを経るのではなく、講義中に問題を解決することが多すぎてルーズになりましたね。 資料の準備があまりにも不十分に進行されたんです。 3. 別のB講師様のロードマップは半分程度進行されました。 B講師様は本人が知っている知識は本当に多いようですが、講義シナリオが不足していました。 何か一つで連携して進行する式ではなく単発単発で終わる講義なのでこのまた資料不足の部分が目立ったんですね。 スプリングの大きな流れを理解するのではなく、短い知識一つ一つを学ぶような感じであり、またスプリングのバージョンが低く、すでに使用中止されているオブジェクトの使用が多くて 進行に少し難しい部分も多かったですね。 どうしたB講師様の講義を聞きながらJPAも出てきましたが、ここでまたJPAの方をもう少し深くしてみようかという考えでキム・ヨンハン様のJPA講義をすべて 購入し、JAVA中級1が終了したのでJPAを進行する予定です。 キム・ヨンハンの講義を聞きながら 初めて学ぶJAVAなのにJAVAは無視してスプリングからすぐ出発をしながらもそれほど大きな困難はなかったし 従来、私が使っていた開発言語に対応しながら、お互いの比較にもなって、また新しい部分を知ることができて本当に良かったです。 しかも スプリング、バックエンド、DBを聞きながら何か理解できない部分をウェブで検索していきながら進行をしたのに その時当時疑問が生じた部分を今回のJAVA講義を通じて解決される部分も多くてよかったです。 キム・ヨンハン様の講義は、他の方との講義と比べて確かに講義の準備ができていることを感じます。 講義で使った例から、次第に発展していくストーリーテリング、しかも映像編集(当然多かったでしょう。講義をより見ると確実に目に見えます。)を 本当によくしてくれて大きな流れを目で見ることができますね。

    • yh
      지식공유자

      Pet Pityさんの受講坪に心をいっぱい込んでくださって私にも大きな力になりますね。 私もこれからより良い講義で探しています :) 一生懸命勉強して、また大きく成長する2024年になることを応援します!

  • gnstjrdlsla5350님의 프로필 이미지
    gnstjrdlsla5350

    수강평 4

    평균 평점 5.0

    5

    7% 수강 후 작성

    ㅎㅎㅎ..中級編アップロードされたのを見て笑いを止めることができませんね:D おいしく芽をこすって食べさせていただきます^ㅡ^

    • yh
      지식공유자

      gnstjrdlslaさんお待ちいただきありがとうございます :) 楽しく勉強して、またたくさん成長していただける応援します!

  • suco님의 프로필 이미지
    suco

    수강평 7

    평균 평점 5.0

    5

    100% 수강 후 작성

    基本編に続き、中級1編の講義をすべて受講しました。 原理を訪ねる過程が楽しかったし、不足していたJavaに対する深さを埋めることができる講義でした。 【学ぶべき理由】 今回の講義でも 'なぜこれを学ばなければならない?' の部分が明確でした。 今後の高級編に備えて、概念の難易度を区別して、今知っておくべき部分を深く説明してくださり、次の講義の準備もする姿が印象的でした。 誰もが聞いたが、きちんと理解できなかった部分を説明した基本編に加えてたくさん聞いたが、きちんと分からなかった概念を扱ってくれてかゆいところを掻くことができる時間でした。 [さらにしっかりとした例] 基本編でもなめらかな講義に加えて例が本当にしっかりして感動しましたが、上がる難易度に合わせて悩みの深さも上がったという気がする例でした。 修能で打つと市販の模擬試験ではなく、評価員の問題を見る感じでした。 【現業に積極的におすすめ】 現業の多くの方がJavaを持って開発をしていますが、 思ったより深く知っている方は多くないかもしれません。 私もSpringフレームワークとJavaを使って仕事をしていますが、自信を持ってJavaについて知っているとは言えません。 今回の講義は、現業で仕事をしている方にも知らなかったか、あるいは自信を持って話せなかった概念を理解して活用できる時間になると確信しています。 [講義をより貴重に見る] 今回は本当に残念なところを見つけるのが難しくなかったかと思います。 'インターネット講義'なので、すべて解決できます。 ヨンハン様の敬意のある打者スピードに追いつくのが難しい場合は、スピードを遅くして見たり、また戻ってみることができます。 基本編より難易度が上がったと思われ、多くの復習と理解する時間が必要です。 この講義がさらに私たちに貴重に近づくには、 多くの復習と理解して悩んでみる時間が必要だと思います。 次のレッスンを見ることも重要ですが、完璧な理解を先にしてみるのが良いと思います! [その他の英国へ] 前回の講義ではギター督促をしました。 5月に子供が出てくると言って…早い発売をお願いしました。 子どもは中級1編をすべて聴く前に2週間早く訪れてくれました。 '新しいが常に一緒にいたような'という言葉が本当に届きました。 ヨンハンはお父さんになり、どのように個人時間を過ごしたのかとても気になりますね! 時間が絶対に足りませんが、ゆっくりと着実に追いつくようにします。

    • yh
      지식공유자

      sucoさん誠におめでとうございます :) 普通のお父さんになれば家族のためにもっと一生懸命生きなければならないという考えをするようになりました。 ただ、バランスが大事だと思います。 例えば、家にいる時間や週末は家族と一緒にまた大変な妻のために時間を過ごすのがいいと思います。そして、子供との良い思い出を作ることも大切です。 代わりに時間が減っただけに平日会社にもう少し早く出勤したり、ランチタイムに別に勉強したり、出退勤時間を活用するように時間を割って作り出す方法を悩むのが、賢い方法だと思います:)

  • jackim971206님의 프로필 이미지
    jackim971206

    수강평 42

    평균 평점 4.8

    5

    6% 수강 후 작성

    キム・ヨンハン先生講義発売ありがとうございます。一生懸命聞いて来月に中級2編も聞きます。健康を取りながら、良い川の多くをお願いします。頑張ってください。ファイティングです。 *^^*

    • yh
      지식공유자

      jackim97さんを応援してくれてありがとう。 私も次の講義一生懸命ご準備いたします^^!

₩66,000

김영한님의 다른 강의

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

비슷한 강의

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