NEW
개발 · 프로그래밍

/

프로그래밍 언어

기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM

딱 두 가지를 '제대로' 다룹니다. 바로 객체지향 프로그래밍과 JVM! 거기에 연결 리스트 기반 선형 자료구조도 덤으로 드립니다.

(5.0) 수강평 7개

수강생 431명

Thumbnail

초급자를 위해 준비한
[Java, 객체지향] 강의입니다.

이런 걸
배워요!

  • 객체지향 프로그래밍 기법

  • OOP언어를 이용해 만들어진 프레임워크를 활용하는 방법

  • JVM의 작동원리와 hashCode의 실체

  • 연결 리스트 기반의 선형 자료구조

문법이요? 중요합니다. 하지만 그 전에 OOP의 본질을 아는 것이 더 중요합니다.
그리고 JVM에 대해서도 잘 알아야 경쟁력 있는 개발자가 될 수 있습니다!


'JVM(Java Virtual Machine)'까지'
다루는 이유 🤔

📺 Part 2 수강희망자 여러분 꼭 시청해주세요! 📺

이 강의를 제대로 끝낸다면
전공자에 비견할 수 있는 높은 이해를 바탕으로
Java를 활용 할 수 있습니다.

객체지향 프로그래밍

다들 OOP에 대해 이야기하고 문법을 배웁니다. 그러나 정작 어떻게 활용하고 어떤 상황에 적용해야 하는 것인지 감을 잡지 못하는 경우가 많습니다. 그래서 배운 문법을 몽땅 써먹을 수 있는 미니 프로젝트를 실습 예제로 준비했습니다.

JVM(*Java Virtual Machine)

Java로 만든 모든 프로그램은 결국 JVM에서 실행됩니다. 결국 JVM에 대한 깊은 이해는 Java대한 깊은 이해이자 많은 기업이 요구하는 실력있는 개발자의 필수 조건입니다. 그런 상황에서 경쟁력을 갖출 수 있도록 JVM에 대해 아낌없이 알려드립니다.

기본 자료구조까지 한 번에

Java로 할 수 있는 것 중 가장 흔한 일이 DB 입/출력 및 데이터 활용입니다. 그러려면 자료구조에 대한 이해는 필수라 할 수 있습니다. 그런 이유로 이 강의에 대표적 선형 자료구조인 연결 리스트를 포함시켰습니다.

디자인 패턴

Java 문법 및 객체지향 프로그래밍 기법과 더불어 설계 원칙(디자인 패턴 일부)까지 제시합니다. 이를 바탕으로 겨우 문법만 알고 Java를 다루는 코더가 아닌 진정한 개발자로 성장 할 수 있습니다.

※여기서 잠깐! JVM이란?
JVM(Java Virtual Machine)은 자바 프로그램을 컴퓨터에서 실행할 수 있도록 도와주는 가상의 컴퓨터입니다.

학습 대상


코드만 지겹게 따라 치고
머리 속에 남는 게 없다고 느껴본 프로그래밍 입문자


백엔드 개발자로
취업하고 싶은 취업 준비생


많이 쓰는 언어라고 해서
배웠지만 본질을 잘 모르는
1~2년차 주니어 개발자

학습 로드맵 🏃🏻

독하게 시작하는 Java 시리즈는 총 4개 강의로 이루어집니다.
부록 1,2 강의는 Spring 백엔드 개발자로 성장하기 위해 함께 들으면 좋은 강의입니다 🙂

  • Part 1 : 기초적인 문법, 절차적 프로그래밍

  • Part 2 : 객체지향 프로그래밍 + 자료구조

  • Part 3 : 시스템 활용 프로그램 작성

  • Part 4 : Spring Framework으로 넘어가기 위한 준비

  • 별도 1 : 웹 인프라 기술에 대한 이해와 DB

  • 별도 2 : SQL 고급


Part 2는 객체지향 프로그래밍과 자료구조 그리고 JVM에 대해 배웁니다. 특히 JVM은 Spring framework 기반 Java 백엔드 실무 개발자가 되려는 분들에게 필수적인 것입니다. 프로그래밍 언어의 문법과 OOP를 구사하고 시스템 운영까지 생각 할 수 있는 역량 있는 개발자가 되기 위한 초석을 다집니다.

이 강의를 듣고 나면...

  • 상속과 재정의를 문법으로 이해하는 것이 아니라 프레임워크를 구현하는 핵심원리로 이해하고 정말 제대로 OOP를 구사 할 수 있습니다.


  • 문제(처리조건)을 명확히 분석하고 어떤 형태로 코드화 할 것인지 구체적으로 생각 할 수 있습니다. 또한 예제 작성 과정에서 발생하는 각종 오류에 스스로 대응 할 수 있는 실력이 생깁니다.


  • JVM의 GC(Garbage collector)가 어떤 원리로 작동하는지 제대로 이해할 수 있습니다. 또한 참조자와 인스턴스를 완벽히 분리해 생각 함으로써 NullPointerException 오류에 확실하게 대응 할 수 있게 됩니다.

독하게 시작하는 Java는
그냥 Java 강의가 아닙니다.

1⃣
입문 단계에서
JVM 구조부터 배웁니다.

  • 입문 단계임에도 JVM 구조를 비롯해 각종 구조적인 이론들을 함께 배웁니다.

    이렇게 함으로써 Java로 개발한 응용 프로그램의 근본적인 작동원리를 이해 할 수 있습니다.

  • 이는 결국 훗날 실무 개발자로 성장했을 때 신입 답지 않은 장애대응능력으로 결실을 맺을 것입니다.


2⃣
추상적 개념이 아니라
정말 제대로 Hash code를 이해 할 수 있습니다.


  • Java는 언어의 특성상 클래스에 대한 참조형으로 인스턴스를 식별합니다. 이 둘을 함께 사용하는 과정에서 참조형 변수를 인스턴스로 동일시 하는 문제가 생길 수 있는데 이러한 문제를 해결하기 위해 존재하는 Hash code의 실체가 무엇인지 제대로 알 수 있습니다.

3⃣
설계(디자인 패턴)까지 다루는
입문 강의

  • class에 대한 문법을 알고 있다고 하더라도 OOP적 설계를 이해하고 클래스간 관계를 제대로 정의하지 못한다면 Java 제대로 배웠다고 할 수 없을 것입니다.

  • 이 강의는 그러한 문제를 쉽게 극복 할 수 있도록수업에 사용된 예제에 디자인 패턴을 일부 적용하였습니다.

4⃣
정리된 교육 자료와 판서 📜

  • 모든 수업 내용은 PPT자료를 기반으로 하지만 마치 화이트보드에 판서를 하는 것처럼 설명이 이어집니다.

  • 이를 통해 수강자는 완성된 하나의 결과만 보는 것이 아니라 구조가 탄생하게 된 배경과 이유 전반에 대한 흐름을 종합적으로 이해 할 수 있습니다.

5⃣
목표는 차별화된 경쟁력과 취업 💼

  • 본격적인 Java 프로그래밍을 배우기에 앞서 본 수업이 취업을 목표로 하고 있음을 명확히 알립니다. 그리고

    강사의 오랜 강의 경험을 근거로 명확한 학습로드맵과 소요시간을 제시합니다.

  • 잘못된 선택으로 시간을 낭비하는 일이 없도록 처음부터 적절한 학습 배분 및 일정을 수립하도록 유도합니다.

6⃣
문법을 넘어 실질적 능력을
확보하기 위한 디버깅🐞

  • IntelliJ 디버거 사용방법을 구체적으로 배웁니다. 단순 Position breakpoint는 물론이고 조건식을 반영해 더욱 손쉽게 활용하는 방법도 다룹니다.

  • JVM에서 각 인스턴스들을 유일하게 식별 할 목적으로 부여된 ObjectID를 이용해 Deep copy와 Shallow copy를 구별하는 방법 등 실질적인디버깅 방법을 경험할 수 있습니다.

7⃣
진정한 OOP 프로그래밍을 직접 경험할 수 있는
이어지는 실습문제 제공 🛠

  • 수업에 배운 내용을 즉시 활용해 볼 수 있도록 다양한 실습문제를 제공합니다.

  • 절차적 프로그래밍 기법으로 제작된 코드를 객체지향적으로 리팩토링하는 과정을 실습으로 직접 경험하며 이 과정에서 학습한 내용 대부분을 실제로 활용합니다.

실습 환경

  • 운영 체제 및 버전(OS): Windows 11

  • 사용 도구: IntelliJ IDEA 2024.2.3 (Community Edition)

  • PC 사양: Windows 11 OS 및 IntelliJ가 무리 없이 작동 할 수 있는 수준

학습 자료

  • 수업에 사용된 PPT자료 (PDF파일로 제공)

  • 전체 예제 및 필수실습 문제 정답(Zip 압축 파일로 제공)

선수 지식 및 유의사항

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 독하게 시작하는 Java - Part 1을 끝내고 다음 단계로 넘어가는 분

  • 진정한 객체지향 프로그래밍의 원리를 알고 싶은 분

  • JVM이 인스턴스를 관리하는 방법 및 내부 구조에 대해 알고 싶은 분

  • Java에 대한 깊은 이해를 경험하고 싶은 개발자

선수 지식,
필요할까요?

  • 독하게 시작하는 Java - Part 1

  • 넓고 얕게 외워서 컴공 전공자 되기

널널한 개발자 TV 채널 주인장이자
30년 넘게 IT기술의 바다를 항해하고 있는 개발자 입니다.  반갑습니다. ^^

 

커리큘럼

전체

77개 ∙ (20시간 9분)

수업 자료

가 제공되는 강의입니다.

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

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!