인기여정
Java 배우기
무료로 즐기는 인터랙티브 온라인 Java 강의입니다. 모든 레슨에서 직접 Java 코드를 작성하며 — 문법, 클래스와 객체, 상속, 컬렉션까지 — 컴파일이 안 될 땐 AI 힌트가 도와주고, 끝까지 마치면 무료 수료증을 드립니다.
214,302+ 명의 codders가 등록함
- 초보자 환영
AI 코딩 도우미
실습 중심의 대화형 강의
모든 레슨에 음성 나레이션 제공
지식을 확인하는 퀴즈
무료 수료증
커리큘럼
섹션 1
기초
섹션 시작하기시작펼치기접기필수 개념과 기본 기술로 튼튼한 기초를 다지세요Introduction
4 개 강의324- 01Java챌린지
- 02Hello World!챌린지퀴즈오디오
- 03Comments퀴즈오디오
- 04Basic Program Structure챌린지퀴즈오디오
Variables Part 1
5 개 강의940- 01Numbers챌린지마스터리퀴즈오디오
- 02String챌린지마스터리퀴즈오디오
- 03Boolean챌린지마스터리퀴즈오디오
- 04char챌린지마스터리퀴즈오디오
- 05Type Declaration챌린지퀴즈오디오
Variables Part 2
5 개 강의333- 01Constants챌린지퀴즈오디오
- 02Naming Conventions퀴즈오디오
- 03Recap - Initialize Variables챌린지
- 04Type Casting Part 1챌린지퀴즈오디오
- 05Type Casting Part 2퀴즈오디오
Operators Part 1
7 개 강의956- 01Arithmetic Operators챌린지마스터리퀴즈오디오
- 02Modulo Operator챌린지마스터리퀴즈오디오
- 03Increment/Decrement챌린지마스터리퀴즈오디오
- 04Post Increment/Decrement마스터리퀴즈오디오
- 05Arithmetic Shortcuts챌린지퀴즈오디오
- 06Comparison Operators챌린지퀴즈오디오
- 07String Comparison퀴즈오디오
Operators Part 2
5 개 강의834- 01Logical Operators Part 1챌린지마스터리퀴즈오디오
- 02Logical Operators Part 2챌린지마스터리퀴즈오디오
- 03Recap - Simple Logic챌린지
- 04Logical Operators Part 3챌린지퀴즈오디오
- 05Logical Operators Part 4챌린지마스터리퀴즈오디오
Decision Making
6 개 강의1038- 01If Statement챌린지마스터리퀴즈오디오
- 02If - Else챌린지마스터리퀴즈오디오
- 03Switch Statement챌린지마스터리퀴즈오디오
- 04Ternary Operator챌린지마스터리퀴즈오디오
- 05Recap - If Else챌린지
- 06Nested If - Else챌린지퀴즈오디오
Basic IO
5 개 강의723- 01System.out Methods챌린지마스터리퀴즈오디오
- 02Formatting Output챌린지마스터리퀴즈오디오
- 03Scanner Class챌린지퀴즈오디오
- 04Recap - Till 120챌린지
- 05Recap - True or False챌린지
Calculator App
프로젝트4 개 강의1- 01Welcome Message챌린지
- 02Getting Numbers프로젝트
- 03Basic Operations프로젝트
- 04Formatted Output프로젝트
Loops
9 개 강의1362- 01For Loop Part 1챌린지마스터리퀴즈오디오
- 02While Loop챌린지마스터리퀴즈오디오
- 03Do While Loop챌린지마스터리퀴즈오디오
- 04Break챌린지마스터리퀴즈오디오
- 05Continue챌린지마스터리퀴즈오디오
- 06For Loop Part 2퀴즈오디오
- 07Nested Loop챌린지마스터리퀴즈오디오
- 08Infinite Loop퀴즈오디오
- 09Recap - Dynamic Input챌린지
Methods (Functions)
7 개 강의843- 01Declaring Methods챌린지마스터리퀴즈오디오
- 02Method Parameters챌린지퀴즈오디오
- 03Return Types챌린지퀴즈오디오
- 04Method Overloading마스터리퀴즈오디오
- 05Recap - Sigma Function챌린지
- 06Recap - Validation Function챌린지
- 07Void Methods챌린지퀴즈오디오
Arrays Basics
6 개 강의929- 01Declaring Arrays챌린지퀴즈오디오
- 02Accessing Elements챌린지퀴즈오디오
- 03Modifying Arrays챌린지마스터리퀴즈오디오
- 04Array Methods챌린지마스터리퀴즈오디오
- 05Recap - Product Array챌린지마스터리
- 06Recap - Reversed Array챌린지
Iterating Over Arrays
3 개 강의423- 01Using For Loop챌린지퀴즈오디오
- 02Enhanced For Loop챌린지퀴즈오디오
- 03Common Array Operations챌린지마스터리퀴즈오디오
String Operations
4 개 강의832- 01String Methods Part 1챌린지마스터리퀴즈오디오
- 02String Methods Part 2챌린지마스터리퀴즈오디오
- 03String Formatting챌린지마스터리퀴즈오디오
- 04String Comparison챌린지마스터리퀴즈오디오
Final Challenges
3 개 강의38- 01Number Pattern챌린지퀴즈오디오
- 02Pattern Finder챌린지
- 03Student Grade Calculator챌린지
섹션 2
논리와 흐름
섹션 시작하기시작펼치기접기데이터 구조와 흐름 제어에 초점을 맞춘 고급 Java 프로그래밍을 마스터하세요. 복잡한 배열, 컬렉션, 예외 처리, 시간 관리를 다루는 방법을 배워보세요.다차원 배열
9 개 강의1457- 012차원 배열 기초챌린지퀴즈
- 022차원 배열 요소 접근챌린지퀴즈
- 032차원 배열과 중첩 루프챌린지마스터리퀴즈
- 04복습 - 2차원 배열챌린지
- 05행렬 덧셈 & 뺄셈챌린지마스터리퀴즈
- 06가변 배열챌린지마스터리퀴즈
- 073차원 배열과 그 이상챌린지마스터리퀴즈
- 08일반적인 2차원 배열 패턴챌린지마스터리퀴즈
- 09복습 - 배열에 대한 모든 것챌린지
HashMap 1부
6 개 강의637- 01HashMap이란?퀴즈
- 02HashMap 선언하기챌린지퀴즈
- 03값 접근하기챌린지퀴즈
- 04키 존재 여부 확인하기챌린지마스터리퀴즈
- 05딕셔너리 수정하기챌린지퀴즈
- 06요약 - HashMap챌린지
HashMap 2부
6 개 강의1030- 01HashMap 메서드챌린지마스터리퀴즈
- 02keySet()으로 반복하기챌린지마스터리퀴즈
- 03entrySet()으로 반복하기챌린지마스터리퀴즈
- 04중첩 HashMap챌린지마스터리퀴즈
- 05복습 - 창고 관리챌린지
- 06복습 - HashMap 연산챌린지
HashSet 1부
7 개 강의844- 01HashSet이란?퀴즈
- 02요소 추가하기챌린지퀴즈
- 03요소 제거하기챌린지퀴즈
- 04요소 존재 확인하기챌린지마스터리퀴즈
- 05Empty와 Size챌린지마스터리퀴즈
- 06Clear와 Clone챌린지퀴즈
- 07요약 - HashSet챌린지
HashSet 2부
6 개 강의1146- 01수학 - HashSet의 합집합챌린지마스터리퀴즈
- 02수학 - HashSet의 교집합챌린지마스터리퀴즈
- 03수학 - 집합 차집합챌린지마스터리퀴즈
- 04수학 - 대칭 차집합챌린지퀴즈
- 05부분집합과 상집합챌린지마스터리퀴즈
- 06집합 순회챌린지마스터리퀴즈
고급 제어 흐름
5 개 강의929- 01라벨 문챌린지마스터리퀴즈
- 02스위치 표현식챌린지마스터리퀴즈
- 03패턴 매칭챌린지마스터리퀴즈
- 04가드 절챌린지마스터리퀴즈
- 05복습 - 제어 흐름챌린지
기본 오류 처리
4 개 강의630- 01Try-Catch 기본챌린지마스터리퀴즈
- 02Finally 블록챌린지퀴즈
- 03예외 던지기챌린지마스터리퀴즈
- 04사용자 정의 예외챌린지퀴즈
고급 문자열 처리
6 개 강의1145- 01StringBuilder 기초챌린지마스터리퀴즈
- 02StringBuffer 소개챌린지마스터리퀴즈
- 03정규 표현식 기초챌린지마스터리퀴즈
- 04정규식을 사용한 패턴 매칭챌린지마스터리퀴즈
- 05문자열 토크나이저챌린지마스터리퀴즈
- 06고급 문자열 서식 지정챌린지퀴즈
프로젝트 - 고유 단어 카운터
프로젝트4 개 강의123- 01텍스트 입력 및 저장챌린지
- 02단어 처리프로젝트퀴즈
- 03단어 세기프로젝트퀴즈
- 04고급 통계프로젝트퀴즈
날짜와 시간
6 개 강의646- 01LocalDate 기본챌린지퀴즈
- 02LocalTime 연산챌린지퀴즈
- 03LocalDateTime 사용법챌린지퀴즈
- 04Period와 Duration챌린지퀴즈
- 05날짜 서식 지정챌린지퀴즈
- 06시간대 처리챌린지퀴즈
섹션 3
객체 지향 프로그래밍
섹션 시작하기시작펼치기접기클래스, 객체, 재사용 가능한 구조로 코드를 구성하는 방법을 알아보세요OOP의 기초
9 개 강의971- 01외부 파일챌린지퀴즈
- 02OOP 입문챌린지퀴즈
- 03클래스 vs 객체챌린지퀴즈
- 04this 키워드챌린지퀴즈
- 05메서드챌린지퀴즈
- 06필드 (속성)챌린지퀴즈
- 07생성자 메서드챌린지퀴즈
- 08생성자 오버로딩챌린지퀴즈
- 09요약 - 간단한 계산기챌린지
접근 제어자와 캡슐화
5 개 강의536- 01접근 수준 개요챌린지퀴즈
- 02Getter와 Setter 메서드챌린지퀴즈
- 03정보 은닉챌린지퀴즈
- 04final 키워드챌린지퀴즈
- 05요약 - 은행 계좌 관리자챌린지
클래스 속성과 정적 멤버
5 개 강의533- 01인스턴스 변수 vs 정적 변수챌린지퀴즈
- 02정적 메서드챌린지퀴즈
- 03정적 블록챌린지퀴즈
- 04상수 (static final)챌린지퀴즈
- 05핵심 정리 - 카운터와 유틸리티챌린지
상속
8 개 강의862- 01상속의 기초 (extends)챌린지퀴즈
- 02super 키워드챌린지퀴즈
- 03메서드 오버라이딩 (@Override)챌린지퀴즈
- 04생성자 체이닝챌린지퀴즈
- 05Object 클래스챌린지퀴즈
- 06단일 및 다중 레벨 상속챌린지퀴즈
- 07다중 클래스 상속이 불가능한 이유챌린지퀴즈
- 08요약 - 직원 계층 구조챌린지
다형성
6 개 강의645- 01메서드 오버로딩 기초챌린지퀴즈
- 02메서드 오버라이딩 (런타임)챌린지퀴즈
- 03업캐스팅과 다운캐스팅챌린지퀴즈
- 04instanceof 연산자챌린지퀴즈
- 05추상 클래스와 메서드챌린지퀴즈
- 06요약 - 도형 계산기챌린지
인터페이스와 추상 클래스
7 개 강의754- 01인터페이스 소개챌린지퀴즈
- 02인터페이스 구현하기챌린지퀴즈
- 03다중 인터페이스 구현챌린지퀴즈
- 04인터페이스의 Default 및 Static 메서드챌린지퀴즈
- 05추상 클래스 vs 인터페이스챌린지퀴즈
- 06함수형 인터페이스챌린지퀴즈
- 07복습 - 결제 시스템챌린지
특별한 메서드와 Object 클래스
6 개 강의644- 01toString() 메서드챌린지퀴즈
- 02equals()와 hashCode()챌린지퀴즈
- 03clone() 메서드챌린지퀴즈
- 04compareTo()와 Comparable챌린지퀴즈
- 05Comparator 인터페이스챌린지퀴즈
- 06요약 - 커스텀 정렬챌린지
고급 OOP 개념
6 개 강의653- 01컴포지션 vs 상속챌린지퀴즈
- 02어그리게이션 vs 컴포지션챌린지퀴즈
- 03내부, 중첩 및 익명 클래스챌린지퀴즈
- 04Enum과 Enum 메서드챌린지퀴즈
- 05레코드 (Java 16+)챌린지퀴즈
- 06Sealed 클래스 (Java 17+)챌린지퀴즈
제네릭
6 개 강의644- 01제네릭 소개챌린지퀴즈
- 02제네릭 클래스챌린지퀴즈
- 03제네릭 메서드챌린지퀴즈
- 04제한된 타입 파라미터챌린지퀴즈
- 05와일드카드 (?, extends, super)챌린지퀴즈
- 06요약 - 제네릭 컨테이너챌린지
OOP에서의 예외 처리
5 개 강의536- 01예외 클래스 계층 구조챌린지퀴즈
- 02사용자 정의 예외챌린지퀴즈
- 03Checked vs Unchecked 에러챌린지퀴즈
- 04Try With Resources 패턴챌린지퀴즈
- 05요약 - 검증된 사용자챌린지
디자인 패턴 파트 1
6 개 강의654- 01디자인 패턴 소개챌린지퀴즈
- 02싱글톤 패턴챌린지퀴즈
- 03팩토리 패턴챌린지퀴즈
- 04빌더 패턴챌린지퀴즈
- 05옵저버 패턴챌린지퀴즈
- 06전략 패턴챌린지퀴즈
디자인 패턴 Part 2
7 개 강의763- 01커맨드 패턴챌린지퀴즈
- 02어댑터 패턴챌린지퀴즈
- 03데코레이터 패턴챌린지퀴즈
- 04템플릿 메서드 패턴챌린지퀴즈
- 05상태 패턴챌린지퀴즈
- 06컴포지트 패턴챌린지퀴즈
- 07이터레이터 패턴챌린지퀴즈
프로젝트: 도서 관리 시스템
프로젝트7 개 강의1- 01프로젝트 개요 및 UML 설계챌린지
- 02도서 및 사용자 클래스프로젝트
- 03대출 시스템프로젝트
- 04검색 기능프로젝트
- 05관리자 인터페이스프로젝트
- 06예외 처리 통합프로젝트
- 07테스트 및 통합프로젝트
최종 챌린지
4 개 강의437- 01E-러닝 플랫폼챌린지퀴즈
- 02뱅킹 시스템챌린지퀴즈
- 03게임 캐릭터 개발챌린지퀴즈
- 04차량 대여 서비스챌린지퀴즈
Coddy에서 Java을 배우는 이유
- 브라우저에서 진짜 Java 코드를 작성하고 실행하세요. JDK 설치도, IDE 설정도 필요 없습니다. 에디터가 서버에서 Java 프로그램을 컴파일하고 실행한 뒤 결과를 바로 보여줍니다.
- 실무에서 쓰이는 방식 그대로의 객체지향 Java: 클래스, 상속, 인터페이스, 다형성, 제네릭, 예외 처리. 모든 개념마다 직접 코드를 작성하는 실습 과제가 따라옵니다.
- AI 힌트가 Java 에러, 특히 길고 복잡한 stack trace를 읽고 고치는 데 도움을 줘서 첫날부터 언어가 덜 부담스럽게 느껴집니다.
- 과정을 마치면 무료 Java 수료증을 받습니다. Java 실력이 중요한 backend, Android, 엔터프라이즈 직군에서 신뢰할 만한 증빙이 됩니다.
Java 학습에 대한 자주 묻는 질문
Java은 배우기 쉬운가요?
Java는 Python이나 JavaScript 같은 스크립팅 언어보다 코드가 장황합니다. 모든 프로그램은 클래스 안에 있어야 하고, 메서드는 타입을 명시해서 선언해야 하며, 실행 전에 컴파일을 거쳐야 하죠. 대신 이런 엄격함 덕분에 좋은 습관을 일찍부터 익히게 됩니다. 본 코스는 각 요소가 왜 필요한지 설명하기 때문에, 장황함이 그저 번거롭게만 느껴지지는 않을 겁니다.
Java을 배우는 데 얼마나 걸리나요?
Java의 기초는 매일 연습하면 보통 1~2주 안에 익힐 수 있습니다. 실제 프로젝트를 편하게 만들려면 속도에 따라 1~3개월 정도를 잡는 것이 좋습니다.
Java를 먼저 배워야 할까요, Python을 먼저 배워야 할까요?
난이도가 아니라 목표를 기준으로 고르세요. Python은 코드가 짧고 데이터, 스크립팅, AI에 강합니다. Java는 Android, 기업용 백엔드, 대규모 팀 코드베이스의 표준이고, 엄격한 타입 시스템 덕분에 어디서든 통하는 OOP 기본기를 익힐 수 있습니다. 특별히 정해진 목표가 없다면 Python 쪽이 더 빨리 손에 익습니다.
Java를 온라인에서 무료로 배울 수 있나요?
네. 인터랙티브 Java 강의는 무료입니다 — 레슨, 코딩 실습, 퀴즈, 그리고 수료증까지 포함이에요. 에디터가 브라우저에서 바로 실행되니까 Java를 시작하려고 로컬에 JDK를 설치할 필요가 없습니다.
이 강의를 들으려면 Java를 설치해야 하나요?
아니요. 모든 Java 연습 문제는 샌드박스 환경에서 서버 측에서 컴파일되고 실행되며, 결과는 코드 옆에 바로 표시됩니다. JDK도, IDE도, 프로젝트 설정도 필요 없습니다.
과정을 마치면 Java 수료증을 받을 수 있나요?
네. Java 강좌를 완주하면 무료 수료증을 받습니다. 대학 학위 인증은 아니지만, 실제 코딩 연습이 포함된 체계적이고 인터랙티브한 Java 강좌를 끝까지 마쳤다는 검증 가능한 증표입니다.