강의

멘토링

커뮤니티

BEST
개발 · 프로그래밍

/

프로그래밍 언어

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

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

(5.0) 수강평 965개

수강생 10,777명

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

이런 분들께
추천드려요

학습 대상은
누구일까요?

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

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

  • 개발자 취업 준비생

선수 지식,
필요할까요?

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

안녕하세요
입니다.

562,495

수강생

37,491

수강평

8,997

답변

5.0

강의 평점

25

강의

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

 

저의 개발 인생 이야기

EO 인터뷰 영상

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

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

 

커리큘럼

전체

103개 ∙ (19시간 20분)

해당 강의에서 제공:

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

수강평

전체

965개

5.0

965개의 수강평

  • sg2pooh9981님의 프로필 이미지
    sg2pooh9981

    수강평 10

    평균 평점 5.0

    5

    49% 수강 후 작성

    I recommend that you read the Java basics book on the market once and then take this class. You will be able to see how well the English teacher teaches only if you study the book by yourself while racking your brain.

    • yh
      지식공유자

      Hahaha, Mr. Park Sung-geun, your hard work paid off :) Thank you^^!!

  • pitypet9518님의 프로필 이미지
    pitypet9518

    수강평 1

    평균 평점 5.0

    5

    100% 수강 후 작성

    It's been almost 20 years since I developed only ERP system with development tool (Powerbuilder) not JAVA, but because of user requirements or many requests for web-based development of other systems, I needed to study for web service. I didn't know anything about JAVA or Spring, and I didn't know what kind of education I should receive, so I paid for and listened to all three lecturers' lectures on Spring. Kim Young-han is one of those three. My current progress in listening to each lecturer's lecture is 1. I have completed all of Kim Young-han's lectures except JPA. I listened to everything from basic network to introduction to Spring, backend, and DB (excluding JPA) at least twice. The reason I excluded JPA is because ERP has many complex queries, so I thought it would be more efficient to create SQL directly with MYBATIS. 2. Another instructor A's lecture had Spring 1 and 2, but I stopped halfway through the first part. The characteristic is that it focuses a lot on JSP, so it is somewhat helpful for the JSP that my company is currently using, but other than that, instead of testing it once before the lecture, there were too many problems to solve during the lecture, so it was loose. The materials were not prepared well. 3. Another instructor B's roadmap was halfway through. Although instructor B seemed to have a lot of knowledge, the lecture scenario was lacking. It was a lecture that ended in one shot rather than a linked progression, so the lack of materials was noticeable. It felt like learning short pieces of knowledge one by one rather than understanding the big picture of Spring, and there were many parts that were difficult to proceed because the Spring version was low and many objects that had already been deprecated were used. Anyway, while listening to Instructor B's lecture, JPA came up, and I thought I should go deeper into JPA, so I bought all of Kim Young-han's JPA lectures, and now that I've finished Java Intermediate 1, I'm going to proceed with JPA. While listening to Kim Young-han's lectures, I was learning Java for the first time, but I ignored Java and started right away with Spring, and it wasn't that difficult, and I was able to compare it with the development languages I had used before, and I was able to learn new things, which was really great. In addition, While listening to Spring, Backend, and DB, I searched the web for parts I didn't understand, and I was able to solve many of the questions I had at that time through this Java lecture, which was great. I feel that Kim Young-han's lectures are definitely better prepared than other lectures. From the examples used in the lectures, to the storytelling that gradually develops, and even the video editing (of course there were a lot of them. You can clearly see them as you watch the lectures), I can see the big picture with my eyes because he does a really good job.

    • yh
      지식공유자

      Pet Pity, thank you for putting so much heart into your class review. It gives me great strength. I will come back with better lectures in the future :) I hope you study hard and grow greatly in 2024!

  • gnstjrdlsla5350님의 프로필 이미지
    gnstjrdlsla5350

    수강평 4

    평균 평점 5.0

    5

    7% 수강 후 작성

    Hahaha.. I can't stop laughing when I see the intermediate version uploaded :D I'll try to scrape it all up and enjoy it ^ㅡ^

    • yh
      지식공유자

      Thank you for waiting, gnstjrdlsla :) I hope you enjoy your studies and grow a lot!

  • suco님의 프로필 이미지
    suco

    수강평 8

    평균 평점 5.0

    5

    100% 수강 후 작성

    Following the basic course, I took all of the intermediate course 1 lectures. The process of finding the principles was fun, and it was a lecture that helped me fill in the depth of Java that I lacked. [Reason to learn] This lecture also clearly explained the part about 'Why should I learn this?'. In preparation for the upcoming advanced course, I was impressed by the way the difficulty of the concepts was differentiated and the part that I needed to know now was explained in depth and the preparation for the next lecture was also done. In addition to the basic course that explained the parts that everyone had heard of but did not understand properly, it was a time to scratch the itch by covering concepts that I had heard of a lot but did not know properly. [More solid examples] In addition to the smooth lectures in the basic course, I was impressed by the solid examples, and the examples made me think that the depth of my thoughts increased as the difficulty level increased. In terms of the CSAT, it felt like looking at the evaluation center's problems rather than the mock exams on the market. [Highly recommended for those in the field] Many people in the field are developing with Java, but there may not be many who know it as deeply as you think. I also work with Spring Framework and Java, but I don't think I can confidently say that I know Java. I am sure that this lecture will be a time for those in the field to understand and utilize concepts that they did not know or could not confidently talk about. [Viewing the lecture more valuable] I think it was really hard to find any regrets this time. Since it is an 'online lecture', everything can be resolved. If it is difficult to keep up with Younghan's respectful typing speed, you can watch it at a slower speed or watch it again. I think the difficulty level has increased compared to the basic version, so a lot of review and understanding time is needed. In order for this lecture to be more valuable to us, I think a lot of review and understanding and thinking time is needed. Watching the next lecture is important, but it would be better to first try to understand it perfectly! [To Younghan] In the last lecture, I urged you to do the guitar. You said that your child will be born in May...and asked for a quick release.. Your child came two weeks early before you finished listening to the first part of Intermediate. The words, 'new but always together' really hit home. I'm so curious about how Younghan spent his personal time after becoming a father! I'm definitely short on time, but I'll try to follow along slowly and steadily.

    • yh
      지식공유자

      Congratulations to suco :) Usually, when you become a father, you start to think that you have to work harder for your family. But I think balance is important. For example, I think it's good to spend time at home or on weekends with your family and for your wife who is having a hard time. And making good memories with your child is also very precious. Instead, I think it's wise to think about ways to make time by going to work a little earlier on weekdays, studying separately during lunch, or using your commuting time to make up for the reduced time :)

  • jackim971206님의 프로필 이미지
    jackim971206

    수강평 42

    평균 평점 4.8

    5

    6% 수강 후 작성

    Thank you, Professor Kim Young-han, for releasing the lecture. I will listen to it diligently and listen to the intermediate 2nd part next month. Please take care of your health and give us many good lectures. Cheer up. Fighting! *^^*

    • yh
      지식공유자

      Thank you for your support, jackim97. I will also prepare hard for the next lecture^^!

₩66,000

김영한님의 다른 강의

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

비슷한 강의

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