0Pricing
Java Academy icon

Java Academy

JAVABackendWebMobileEnterpriseBeginnerCloudDatabaseAndroidDesktopNetwork

Java Academy로 Java 프로그래밍에 능숙해지고 강력한 애플리케이션을 개발하세요.

🤖 AI 기반📚 104개 코스👥 100,000명 이상의 학습자⭐ 4.9 평점
코스 개요

Java: 첫 클래스부터 프로덕션급 시스템까지

Java는 거의 30년 동안 엔터프라이즈 소프트웨어, Android 개발, 대규모 백엔드 시스템의 중추가 되어왔습니다. JVM에서 실행되며 풍부한 표준 라이브러리를 제공하고, 금융 거래 플랫폼부터 클라우드 마이크로서비스까지 모든 것을 지원합니다. 이 트랙은 변수와 제어 흐름부터 시작해 JVM 내부, 가상 스레드, GraalVM을 통한 네이티브 컴파일까지 진정한 Java 역량을 구축합니다.

학습 내용

변수, 데이터 타입, 반복문, 메서드 등 핵심 문법부터 클래스, 상속, 다형성, sealed 클래스, record를 포함한 객체 지향 설계까지 학습합니다. 중급 단계에서는 전체 Collections 프레임워크, java.time 및 NIO.2 API, 람다 표현식, 함수형 인터페이스, 수집기, 분할 반복자, 원시 스트림을 포함한 Streams API를 다룹니다. 이후 과정에서는 Spring Boot 설정과 의존성 주입, Spring Data JPA, REST API 검증, JUnit 5 통합 테스트, JWT 기반 보안을 다룹니다. 트랙의 고급 부분에서는 ExecutorService, 락, 원자 변수, CompletableFuture, 구조화된 동시성, Project Loom의 가상 스레드, JVM 클래스 로딩과 바이트코드, GraalVM 네이티브 이미지 컴파일, JMH를 이용한 성능 프로파일링을 다룹니다.

학습 경로

120개 이상의 과정이 A1부터 C2까지 펼쳐져 있습니다. A1과 A2 과정은 기초를 확립합니다: 타입 시스템, 캐스팅, 오토박싱, 래퍼 클래스, 배열, 조건문, 메서드. B1은 enum, 내부 클래스, 반복자, 비교자, HashMap 내부 구조, 예외 처리, 직렬화, Maven과 Gradle 같은 빌드 도구를 포함해 객체 지향 Java를 심화합니다. B2는 함수형 프로그래밍, 제한된 와일드카드를 이용한 제너릭, 커스텀 주석, Mini Project: REST API로 마무리되는 실용적인 Spring Boot 시퀀스를 소개합니다. C1 과정에서는 병렬 스트림, Java 메모리 모델, 가비지 컬렉션, 리플렉션, 동적 프록시, 구조화된 동시성이 중심입니다. 트랙은 C2에서 Foreign Function and Memory API로 마무리되며, 이는 네이티브 코드와 직접 상호작용하기 위한 최하위 수준의 Java 기능입니다.

작동 원리

각 과정은 실시간 피드백과 함께 내장 코드 에디터에서 완료할 수 있는 짧고 집중된 레슨으로 나뉩니다. 막힐 때마다 AI 튜터를 이용할 수 있으며, 주요 마일스톤(Word Stats, Shape Hierarchy, Log Analyzer, REST API, Parallel Stats)의 미니 프로젝트를 통해 배운 내용을 적용한 후 진행할 수 있습니다.

학습 시작 →

학습 방식

🎯
인터랙티브 레슨
실시간 피드백을 받으며 직접 코딩 연습하기
🤖
AI 튜터
막힐 때마다 AI 튜터에게 즉시 도움받기
💻
내장 에디터
브라우저에서 바로 코드 작성 & 실행하기
🏆
수료증
과정을 완료하면 수료증 취득하기
커리큘럼

104개 코스

Java Academy 학습 경로의 모든 코스.

01

Java 입문

A13개 레슨

Java는 Sun Microsystems가 1995년에 발표한 고급 객체 지향 프로그래밍 언어입니다. "한 번 작성하고 어디서나 실행"할 수 있는 (WORA) 기능으로 잘 알려진 Java는 코드를 플랫폼에 독립적인 바이트코드로 컴파일합니다. 이 바이…

02

Scanner와 콘솔 입력

A14개 레슨PRO

Scanner로 입력 읽기, 숫자와 줄 읽기 등

03

Java 및 IDE 설정 시작하기

A13개 레슨PRO

Java 여정을 시작해 보세요. 프로그래밍이 무엇인지, Java가 JVM에서 어떻게 실행되는지, 다음에 어떤 도구가 필요한지 알아봅니다. 이 미니 과정은 설치와 첫 코드 줄 작성을 준비하도록 도와줍니다.

04

변수와 식 핵심 다지기

A13개 레슨PRO

Java의 변수와 식을 익혀 보세요. 기본형, 선언, 할당, 값 출력, 수치 식의 기초를 배웁니다. 실행 가능한 예제가 포함된 짧고 모바일에 적합한 수업입니다.

05

Java 타입 시스템 및 형 변환

A24개 레슨PRO

Java의 타입 시스템을 익힙니다. 기본 타입과 참조 타입, 확대 및 축소 변환, 명시적 형 변환, 실제 상황에서의 instanceof 연산자를 다룹니다.

06

Java 수학 및 숫자 서식 지정

A24개 레슨PRO

Math 클래스, 금융 정밀도를 위한 BigDecimal, 로캘을 고려한 출력을 위한 NumberFormat, Java에서의 실용적인 수치 문제 해결을 살펴봅니다.

07

switch 표현식과 화살표 구문

A24개 레슨PRO

switch 스타일의 화살표 구문, 표현식으로 사용하는 switch 등

08

텍스트 블록과 여러 줄 문자열

A24개 레슨PRO

텍스트 블록 선언하기, 들여쓰기와 제거 등

09

var와 지역 타입 추론

A24개 레슨PRO

지역 변수에 var 사용하기, var가 가독성에 도움이 되는 경우 등

10

래퍼 클래스와 자동 박싱

A24개 레슨PRO

기본 타입과 래퍼 타입 비교, 자동 박싱과 언박싱 등

11

Arrays 유틸리티 클래스

A24개 레슨PRO

Arrays 유틸리티 클래스: Arrays.sort와 정렬, Arrays.binarySearch 등

12

Java 난수 및 수학 유틸리티

A24개 레슨PRO

Java 난수 및 수학 유틸리티: Math 클래스, 난수 생성 등

13

BufferedReader로 입력 읽기

A24개 레슨PRO

Java에서 사용자 입력과 파일 입력을 효율적으로 읽습니다.

14

Java 삼항 및 조건부 표현식

A24개 레슨PRO

조건 연산자로 간결하게 판단을 작성합니다.

15

Java 문자와 Character 메서드

A24개 레슨PRO

Character 클래스를 사용해 개별 문자를 다룹니다.

16

printf로 출력 형식 지정하기

A24개 레슨PRO

형식 지정자로 텍스트를 보기 좋게 출력합니다.

17

Java 레이블 반복문과 흐름 제어

A24개 레슨PRO

break, continue와 레이블로 중첩 반복문을 제어합니다.

18

조건문 I: if/else 기초

A23개 레슨PRO

if, else if, else를 사용하여 Java에서 결정을 내려 보세요. 비교 연산자와 논리 연산자로 명확한 불리언 식을 작성합니다. 실행 가능한 예제가 포함된 짧고 모바일에 적합한 수업입니다.

19

조건문 II: 연산자와 switch

A23개 레슨PRO

비교 연산자(==, !=, <, >, <=, >=)와 불리언 논리(&&, ||, !)를 더 깊이 살펴봅니다. 연산자 우선순위, 괄호를 사용한 그룹화, 단락 평가 동작, 드모르간의 법칙을 배웁니다.

20

반복문 I: while과 do-while

A22개 레슨PRO

while 반복문을 단계별로 배워 보세요. 초기화, 조건, 갱신과 무한 반복문을 피하는 방법을 익힙니다. 동작을 안전하게 반복하는 작은 패턴을 연습합니다. 짧은 장면과 실행 가능한 코드로 구성된 모바일 친화적인 과정입니다.

21

반복문 II: for와 패턴

A23개 레슨PRO

초기화, 조건, 갱신을 한 줄에 작성하는 for 반복문을 익혀 보세요. 카운팅 반복문, 합계, 간단한 패턴을 작성합니다. break와 continue를 안전하게 사용하는 방법도 배웁니다.

22

Java 연산자

A21개 레슨PRO

Java는 데이터를 처리할 수 있는 다양한 연산자를 제공합니다. 이러한 연산자를 사용하면 데이터를 조작할 수 있습니다. 산술 연산자는 수학에서 대부분 이미 알고 있는 연산자 유형입니다.

23

Java의 문자열

A21개 레슨PRO

문자열 데이터 형식은 Java에서 텍스트 데이터를 저장하는 데 사용됩니다. Java에서 문자열은 기본 데이터 형식이 아니라 참조 데이터 형식입니다. 이 과정에서는 Java 언어에서 String을 사용하는 방법을 배웁니다.

24

배열 I: 1차원 배열

A23개 레슨PRO

1차원 배열을 배워 보세요. 배열이 무엇인지, 선언하고 생성하는 방법, 요소에 접근하고 갱신하는 방법, 길이 를 사용하는 방법, for 와 향상된 for-각 반복문으로 순회하는 방법을 익힙니다.

25

배열 II: 2차원 배열

A26개 레슨PRO

Java에서 2차원 배열을 학습합니다. 배열을 선언하고 생성하는 방법, 행과 열에 접근하는 방법, 중첩 반복문으로 순회하는 방법을 익힙니다. 행과 열의 합을 계산하고 출력을 형식에 맞게 구성하는 연습도 진행합니다.

26

메서드 I: 기초

A23개 레슨PRO

Java 메서드의 기초를 탄탄히 익힙니다. 시그니처, 매개변수와 인수의 차이, 호출 방식, 기본적인 설계를 학습합니다. 실행 가능한 예제로 구성된 짧고 집중적인 수업을 제공합니다.

27

메서드 II: 설계와 재사용

A23개 레슨PRO

메서드를 효과적으로 설계하고 재사용하는 방법을 익힙니다. Java의 값에 의한 전달 의미를 이해하고, 정적 메서드와 인스턴스 메서드 중 적절한 방식을 선택하며, 문제를 깔끔하게 테스트할 수 있는 루틴으로 분해합니다.

28

Java 열거형

B14개 레슨PRO

Java에서 열거형을 정의하고 사용하는 방법을 배웁니다. 열거형 상수, 필드, 메서드, 열거형을 사용한 switch 표현식, EnumSet/EnumMap 컬렉션을 다룹니다.

29

Java 레코드 및 불변 데이터

B14개 레슨PRO

Java 레코드(Java 16 이상)를 살펴봅니다. 불변 데이터 운반 객체, 간결한 생성자, 레코드의 사용자 정의 메서드, 레코드와 클래스 중 선택할 시점을 다룹니다.

30

StringBuilder와 문자열 성능

B14개 레슨PRO

문자열이 변경 불가능한 이유, StringBuilder로 문자열 만들기 등

31

BigDecimal과 BigInteger

B14개 레슨PRO

BigDecimal과 BigInteger: 금액에 double을 사용하지 않는 이유, BigDecimal 사용하기 등

32

java.time 날짜 및 시간 API

B14개 레슨PRO

java.time 날짜 및 시간 API: LocalDate, LocalTime, LocalDateTime, Instant와 Duration 등

33

Java Optional

B14개 레슨PRO

Optional로 NullPointerExceptions를 없앱니다. Java 17 이상에서 Optional을 관용적으로 생성하고, 매핑하고, 필터링하고, 소비하는 방법을 배웁니다.

34

Java 문자열 심층 학습

B14개 레슨PRO

기본 문자열을 넘어 StringBuilder, StringJoiner, 정규 표현식, String.format, 텍스트 블록, 일반적인 문자열 알고리즘 패턴을 다룹니다.

35

Java 가변 인수, 오버로딩 및 정적 멤버

B14개 레슨PRO

메서드 오버로딩 해석, 가변 인수 매개변수, 정적 필드와 메서드, Java의 유틸리티 클래스 설계 패턴을 익힙니다.

36

Java 내부 클래스 및 익명 클래스

B14개 레슨PRO

중첩 클래스의 여러 형태를 살펴봅니다. 정적 중첩 클래스, 내부 클래스, 지역 클래스, 익명 클래스와 각각이 적합한 상황을 다룹니다.

37

Java 반복자 및 Iterable

B14개 레슨PRO

사용자 정의 Iterable 및 Iterator 인터페이스를 구현해 직접 만든 자료 구조를 for-each 반복문과 Java Collections 프레임워크에서 사용할 수 있게 합니다.

38

Java 비교자 및 정렬

B14개 레슨PRO

실제 데이터 상황에서 Comparable, Comparator, 메서드 참조, 다단계 정렬 연결을 사용해 컬렉션과 배열을 정렬합니다.

39

Java LinkedList 및 Deque

B14개 레슨PRO

LinkedList의 내부 동작, 이중 연결 구조, Deque 작업, 스택 시뮬레이션, LinkedList가 ArrayList보다 빠른 상황을 이해합니다.

40

Java TreeMap 및 TreeSet

B14개 레슨PRO

정렬된 컬렉션을 익힙니다. TreeMap의 NavigableMap 작업, 고유한 정렬 요소를 위한 TreeSet, subMap/headMap/tailMap, 레드-블랙 트리의 기초를 다룹니다.

41

Java NIO.2 Path 및 Files API

B14개 레슨PRO

최신 java.nio.file API를 살펴봅니다. Path 생성, Files 유틸리티 메서드, walkFileTree를 사용한 디렉터리 순회, WatchService를 사용한 디렉터리 감시를 다룹니다.

42

Java 직렬화 및 객체 영속성

B14개 레슨PRO

Java 직렬화를 이해합니다. Serializable 인터페이스, transient 필드, serialVersionUID, 사용자 지정 writeObject/readObject, JSON과 같은 현대적인 대안을 학습합니다.

43

봉인 클래스와 인터페이스

B14개 레슨PRO

봉인 타입 선언하기, permits 절 등

44

instanceof와 레코드의 패턴 매칭

B14개 레슨PRO

instanceof의 패턴 매칭, 레코드 패턴 등

45

Pattern과 Matcher를 사용한 정규 표현식

B14개 레슨PRO

패턴 컴파일하기, 찾기와 일치 확인 등

46

HashMap 내부 구조와 equals/hashCode

B14개 레슨PRO

HashMap의 작동 원리, equals/hashCode 계약 등

47

EnumMap, EnumSet과 고급 열거형

B14개 레슨PRO

필드와 메서드를 포함한 열거형, 열거형의 추상 메서드 등

48

SLF4J와 Logback을 사용한 로깅

B14개 레슨PRO

구조화된 로깅이 필요한 이유, SLF4J 파사드와 로거 등

49

패키지와 접근 제어자

B11개 레슨PRO

Java는 접근 제어자를 사용해 객체 간 접근을 제한합니다. 이러한 제한은 클래스 수준뿐 아니라 변수, 메서드 또는 생성자 수준에서도 적용할 수 있습니다.

50

미니 프로젝트: 단어 통계

B13개 레슨PRO

단어 통계 도구를 작게 만들어 봅니다. 텍스트를 토큰으로 나누고, 정규화하고, 개수를 세고, 상위 결과를 표시합니다. 먼저 계획을 세운 다음 구현합니다.

51

객체 지향 프로그래밍 I: 클래스와 객체

B13개 레슨PRO

Java에서 클래스와 객체의 기초를 학습합니다. 간단한 클래스를 만들고 객체를 생성하며, 객체가 객체 지향 프로그래밍에서 어떤 역할을 하는지 이해합니다.

52

객체 지향 프로그래밍 II: 실전 기법

B13개 레슨PRO

Java에서 자주 사용하는 객체 지향 프로그래밍 기법을 익힙니다. this 키워드, 가독성 높은 toString, 올바른 equals와 hashCode, 소규모 앱을 위한 실용적인 팁을 다룹니다.

53

상속 I

B13개 레슨PRO

Java의 기본 상속을 학습합니다. 기반 클래스를 확장하고, super 생성자를 호출하며, 공통 동작을 안전하게 재사용합니다.

54

추상화와 인터페이스

B13개 레슨PRO

Java의 추상 클래스와 인터페이스를 학습합니다. 언제 사용해야 하는지, 어떻게 선언하는지, 설계를 어떻게 이끄는지 알아봅니다.

55

미니 프로젝트: 도형 계층 구조

B13개 레슨PRO

추상 기반 클래스, 구체적인 도형, 다형적 동작으로 구성된 작은 도형 계층 구조를 설계하고 구현합니다.

56

컬렉션 I: 리스트와 집합

B13개 레슨PRO

Java의 리스트와 집합을 학습합니다. 각각 언제 사용하는지, 기본 연산과 간단한 순회 패턴을 익힙니다.

57

컬렉션 II: 맵과 알고리즘

B13개 레슨PRO

키→값 조회와 빈도 계산에 맵을 사용하는 방법을 배우고, 리스트와 집합을 활용한 간단한 알고리즘을 익힙니다.

58

예외 I: 기초

B13개 레슨PRO

예외 처리의 기초를 학습합니다. 간단한 예제로 try, catch, finally 블록을 익힙니다.

59

예외 II: 실습

B13개 레슨PRO

사용자 정의 예외, throw 문, 방어적 코딩을 활용해 예외 처리를 적용합니다.

60

파일과 입출력 I

B13개 레슨PRO

Java NIO의 Path와 Files 클래스를 학습합니다. 파일을 안전하게 생성하고, 확인하고, 삭제하는 방법을 익힙니다.

61

파일과 입출력 II

B13개 레슨PRO

Java 객체 직렬화를 학습합니다. 객체를 파일에 쓰고 다시 읽어 오는 방법을 익힙니다.

62

미니 프로젝트: 로그 분석기

B13개 레슨PRO

로그 파일을 읽고, 구문 분석하고, 요약하는 간단한 로그 분석기를 만들어 봅니다.

63

빌드 도구: Maven과 Gradle

B14개 레슨PRO

빌드 도구: Maven과 Gradle: Maven 프로젝트 구조, Maven 플러그인과 목표 등

64

JDBC와 연결 풀링

B14개 레슨PRO

JDBC와 연결 풀링: JDBC 기초, PreparedStatement 등

65

Java 스트림 수집기 심층 학습

B24개 레슨PRO

기본 스트림을 넘어 groupingBy, partitioningBy, toMap, counting, summarizingInt, joining, 복잡한 집계를 위한 사용자 정의 수집기 구축을 다룹니다.

66

Java 메서드 참조

B24개 레슨PRO

메서드 참조로 람다 표현식을 간소화합니다. 실제 함수형 인터페이스 예제를 통해 정적, 인스턴스, 임의 인스턴스, 생성자 참조를 다룹니다.

67

Java 디자인 패턴: 생성 패턴

B24개 레슨PRO

Java에서 네 가지 핵심 생성 패턴을 구현합니다. 싱글턴(스레드 안전), 팩토리 메서드, 추상 팩토리, 플루언트 API를 사용하는 빌더를 다룹니다.

68

Java 디자인 패턴: 행위 패턴

B24개 레슨PRO

실제 애플리케이션의 구체적인 활용 사례를 통해 Java의 옵서버, 전략, 명령, 템플릿 메서드 등 행위 디자인 패턴을 익힙니다.

69

함수형 인터페이스 심화

B24개 레슨PRO

Function과 BiFunction, Supplier와 Consumer 등

70

기본 타입 스트림

B24개 레슨PRO

IntStream과 LongStream, 범위 및 집계 연산 등

71

제한된 와일드카드와 PECS

B24개 레슨PRO

상한 제한 와일드카드, 하한 제한 와일드카드 등

72

인터페이스와 제네릭

B23개 레슨PRO

실전에서 인터페이스를 사용하는 방법과 더 안전하고 재사용 가능한 코드를 위한 Java 제네릭의 기초를 학습합니다.

73

Java 사용자 지정 애너테이션

B24개 레슨PRO

사용자 지정 애너테이션, 유지 정책, 적용 대상을 정의하고 리플렉션으로 런타임에, 애너테이션 프로세서로 컴파일 시점에 처리합니다.

74

고급 스트림 연산 및 Spliterator

B24개 레슨PRO

고급 Stream 기능을 익힙니다. 중첩 구조에 flatMap 적용하기, 디버깅을 위한 peek, 병렬 스트림의 함정, Spliterator 내부 구조, 무한 스트림을 다룹니다.

75

Spring Boot: 구성 및 의존성 주입

B24개 레슨PRO

Spring Boot 자동 구성, 애플리케이션 속성, 프로필, @Bean, @Component, @Service, @Repository, 생성자 주입 모범 사례를 익힙니다.

76

Spring Data JPA: 엔터티 및 리포지터리

B24개 레슨PRO

JPA 애너테이션으로 Java 엔터티를 데이터베이스 테이블에 매핑하고, Spring Data 리포지터리를 정의하며, JPQL 및 네이티브 쿼리를 작성하고 관계를 처리합니다.

77

Spring Boot REST API: 검증 및 오류 처리

B24개 레슨PRO

견고한 REST API를 구축합니다. @Valid를 사용한 Bean Validation, 사용자 지정 검증기, @ControllerAdvice를 활용한 전역 예외 처리, RFC 7807 문제 세부 정보를 다룹니다.

78

JUnit 5로 테스트하기: 매개변수화 및 통합 테스트

B24개 레슨PRO

기본 단위 테스트를 넘어 @MethodSource와 @CsvSource를 사용한 매개변수화 테스트, 데이터베이스 통합을 위한 Testcontainers, Spring Boot 테스트 슬라이스를 학습합니다.

79

Java 보안: 해싱, 암호화 및 JWT

B24개 레슨PRO

Java에서 보안의 기초를 구현합니다. 해싱을 위한 MessageDigest, AES 암호화, HMAC-SHA256, 외부 인증 라이브러리 없이 JWT를 생성하고 검증하는 방법을 다룹니다.

80

Java 모듈 시스템(JPMS)

B24개 레슨PRO

Java 모듈 시스템(JPMS): module-info.java, requires와 exports 등

81

최신 HTTP 클라이언트

B24개 레슨PRO

최신 HTTP 클라이언트: java.net.http.HttpClient, 비동기 요청 등

82

GraalVM과 네이티브 이미지

B24개 레슨PRO

GraalVM과 네이티브 이미지: GraalVM이란 무엇인가요?, 네이티브 이미지 빌드하기 등

83

람다와 함수형 인터페이스

B23개 레슨PRO

Java의 람다와 함수형 인터페이스를 학습합니다.

84

스트림 I: 파이프라인

B23개 레슨PRO

파이프라인으로 데이터를 처리하는 Java 스트림 사용법을 학습합니다.

85

Spring Boot 시작하기

B23개 레슨PRO

Spring Boot를 시작합니다. 프로젝트를 설정하고, 스타터를 사용하며, 첫 앱을 실행합니다.

86

데이터와 서비스

B23개 레슨PRO

저장소와 함께 Spring Data JPA와 H2 데이터베이스를 사용하는 방법을 학습합니다.

87

테스트와 배포

B23개 레슨PRO

WebTestClient/JUnit를 사용한 Spring 앱 테스트, 구성, 패키징을 학습합니다.

88

미니 프로젝트: REST API

B24개 레슨PRO

Spring Boot로 REST API를 설계하고 구현하고 테스트합니다.

89

Java ExecutorService 및 스레드 풀

C14개 레슨PRO

ExecutorService로 스레드 수명 주기를 관리합니다. 고정, 캐시, 예약 스레드 풀, Callable 작업 제출, Future 결과 처리를 다룹니다.

90

Java 잠금 및 원자적 변수

C14개 레슨PRO

synchronized를 넘어 ReentrantLock, ReadWriteLock, StampedLock, AtomicInteger, AtomicReference, 잠금 없는 자료 구조 패턴을 다룹니다.

91

병렬 스트림과 성능

C14개 레슨PRO

병렬 스트림 만들기, 병렬 처리가 도움이 되는 경우 등

92

Java 메모리 관리 및 가비지 컬렉션

C14개 레슨PRO

JVM 메모리 모델을 이해합니다. 힙 영역(Young/Old/Metaspace), GC 알고리즘(G1, ZGC), 메모리 누수, JVisualVM을 활용한 프로파일링, 튜닝 플래그를 다룹니다.

93

Java CompletableFuture 및 비동기 파이프라인

C14개 레슨PRO

CompletableFuture로 비동기 연산을 구성합니다. thenApply, thenCompose, allOf, anyOf, exceptionally를 사용하고 블로킹 없는 파이프라인을 구축합니다.

94

Java 리플렉션 및 동적 프록시

C14개 레슨PRO

리플렉션 API로 런타임에 클래스를 검사하고 호출하며, 동적 프록시를 생성하고 Spring과 같은 프레임워크가 내부적으로 리플렉션을 사용하는 방식을 이해합니다.

95

JVM 내부 구조: 클래스 로딩 및 바이트코드

C14개 레슨PRO

JVM 내부를 살펴봅니다. 클래스 로딩 단계, 부트스트랩/확장/애플리케이션 로더 계층 구조, javap를 활용한 바이트코드 검사, JIT 컴파일 기초를 다룹니다.

96

가상 스레드(Project Loom)

C14개 레슨PRO

가상 스레드란 무엇인가요?, 가상 스레드 만들기 등

97

구조적 동시성

C14개 레슨PRO

구조적 동시성 모델, StructuredTaskScope 등

98

JMH를 사용한 마이크로벤치마킹

C14개 레슨PRO

JMH를 사용하는 이유, 벤치마크 작성하기 등

99

Java 성능 프로파일링 및 튜닝

C14개 레슨PRO

Java 성능 프로파일링 및 튜닝: 병목 지점 찾기, Java Flight Recorder 등

100

스트림 II: 성능과 주의점

C13개 레슨PRO

순서 지정과 단락 평가를 포함해 스트림의 고급 동작을 학습합니다.

101

동시성 I

C12개 레슨PRO

스레드, 실행기, 동기화를 활용한 Java 동시성의 기초를 소개합니다.

102

동시성 II

C13개 레슨PRO

고급 동시성을 학습합니다. 동기화, 잠금, 원자적 연산과 흔히 발생하는 문제를 다룹니다.

103

미니 프로젝트: 병렬 통계

C13개 레슨PRO

스트림과 동시성을 사용해 통계를 병렬로 계산하는 프로젝트를 만들어 봅니다.

104

외부 함수 및 메모리 API

C24개 레슨PRO

외부 함수 및 메모리 API: JNI 대신 FFM을 사용하는 이유, MemorySegment와 Arena 등

자주 묻는 질문

자주 묻는 질문

Java Academy 강의는 무료인가요?

네, Java Academy 강의를 무료로 시작하고 인터랙티브 레슨을 모두 무료로 완료할 수 있습니다. 선택적 PRO 구독을 통해 고급 AI 도구와 공유 가능한 수료증을 잠금 해제할 수 있습니다.

JAVA을(를) 배우기 위해 사전 경험이 필요한가요?

아니요. 강의는 기초부터 시작하여 점차 더 심화된 주제로 나아가므로 JAVA 경험이 없어도 시작할 수 있습니다.

CoddyKit에서 JAVA은(는) 어떻게 배우나요?

직접 해보면서 배웁니다. 짧은 인터랙티브 레슨은 명확한 설명과 실시간으로 실행되는 실습 코딩 연습을 함께 제공하며, 24시간 AI 튜터가 막힐 때마다 맞춤형 도움을 줍니다.

Java Academy을(를) 완료하면 수료증을 받나요?

네, PRO 학습자는 시험을 응시하고 Java Academy 강의의 검증 코드가 포함된 공유 가능한 수료증을 취득할 수 있습니다.

휴대폰에서 JAVA을(를) 배울 수 있나요?

네, CoddyKit은 웹과 iOS, Android 네이티브 앱으로 이용 가능하므로 어느 기기에서나 JAVA을(를) 배우고 진행 상황이 모든 기기에서 동기화됩니다.

Java Academy을(를) 지금 시작하기

AI 기반 강의로 프로그래밍을 배우는 수천 명의 학습자들과 함께하세요.

무료로 시작하기 →모든 강의 보기