CodeGym
AI Academy
프로모션
CodeGym University
학습
강좌
과제
설문 & 퀴즈
게임
도움말
일정
커뮤니티
사용자
포럼
채팅
아티클
성공 사례
활동
후기
구독
라이트 테마

강의

  • 리뷰
  • 회사 소개
시작
학습 시작
Start learning now
  • 진행 상황
  • 코스
  • 퀘스트 맵
  • 레슨
  • JVM의 메모리 구조: 스택, 힙, PermGen/MetaSpace

    JAVA 25 SELF
    레벨 64,레슨 0
    JVM 프로세스에서 지역 변수, 객체, 클래스 메타데이터가 어디에 배치되는지 살펴봅니다. 스레드 스택, 힙, 그리고 PermGen → MetaSpace의 진화를 해부합니다. GC가 어떻게 동작하는지, 어떤 메모리 오류가 있는지 ( StackOverflowError, OutOfMemoryError), 그리고 실행 플래그 ( -Xss, -Xmx, -XX:MaxMetaspaceSize)가 어떤 영향을 주는지도 이야기합니다. 도식, mermaid 다이어그램, 그리고 실동 예제가 함께 제공됩니다.
    사용 가능
  • 가비지 컬렉터: G1, ZGC, Shenandoah, 비교

    JAVA 25 SELF
    레벨 64,레슨 1
    이 강의에서는 가비지 컬렉터( GC)가 JVM에서 어떻게 동작하는지, 고전적인 Serial/ Parallel/ CMS와 최신의 G1, ZGC, Shenandoah의 차이, Young/Old 세대가 무엇인지, 왜 Stop-the-World 일시정지가 발생하고 어떻게 최소화하는지 알아봅니다. 또한 실습으로 다양한 GC를 플래그( -XX:+UseG1GC, -XX:+UseZGC, -XX:+UseShenandoahGC)로 활성화하는 방법, 일시정지 목표( -XX:MaxGCPauseMillis)와 힙 크기( -Xms/ -Xmx) 설정, 로그( -Xlog:gc*) 읽기, 그리고 전형적인 실수(예: System.gc() 강제 호출)를 피하는 방법을 살펴봅니다.
    사용 가능
  • 지역 변수, 메모리 누수, 약한 참조

    JAVA 25 SELF
    레벨 64,레슨 2
    이 강의에서는 지역 변수가 어디에 존재하는지(스레드 스택)와 그것이 힙과 어떻게 다른지, GC가 있음에도 불구하고 Java에서 메모리 누수가 왜 발생할 수 있는지 그리고 어떻게 피할 수 있는지를 알아봅니다. 실제 시나리오를 다룹니다: “영원한” static-컬렉션, 구독 해지되지 않은 리스너와 캐시. 참조의 가족인 SoftReference, WeakReference, PhantomReference 그리고 컨테이너 WeakHashMap을 살펴봅니다. 누수를 고치는 연습을 하고, 왜 System.gc() 호출이 JVM에 대한 힌트일 뿐 명령이 아니며, OutOfMemoryError로 어떻게 끝날 수 있는지도 논의합니다.
    사용 가능
  • 메모리 분석 도구: jmap, jvisualvm

    JAVA 25 SELF
    레벨 64,레슨 3
    JVM에서 메모리 문제를 진단하는 실무 가이드: jmap 유틸리티로 힙 스냅샷( heap dump)을 찍고, -heap과 -histo로 요약을 읽으며, jvisualvm에서 애플리케이션을 탐색합니다( Monitor, Heap Dump, Threads, Profiler 탭). 예제로 누수를 분석하고 Eclipse MAT 및 jconsole도 살펴봅니다. 끝에는 흔한 실수와 팁을 정리합니다.
    사용 가능
  • 메모리 작업 시 흔히 하는 실수 해부

    JAVA 25 SELF
    레벨 64,레슨 4
    실전 관점에서 왜 Java 애플리케이션이 “메모리 누수”로 느려질 수 있는지 살펴봅니다: 잊힌 리스너( addActionListener/ removeActionListener), 영원히 남는 정적 컬렉션, 닫지 않은 리소스(팁: try-with-resources), 참조를 붙들고 있는 익명/내부 클래스, 그리고 System.gc() 남용. GC 로그 읽기( -Xlog:gc*, -XX:+PrintGCDetails), 수집기 선택, WeakHashMap 기반 캐시 구축, 모니터링( jvisualvm, jconsole), 힙 덤프 분석, -Xmx/ -Xms 올바른 설정까지 다룹니다. 마지막에는 실제 누수 사례와 해결 방법을 소개합니다.
    사용 가능
학습
  • 등록
  • Java 과정
  • 과제 도움
  • 요금
  • Java 문법
커뮤니티
  • 사용자
  • 아티클
  • 포럼
  • 채팅
  • 성공 사례
  • 활동
  • 제휴 프로그램
회사
  • 회사 소개
  • 연락처
  • 후기
  • 보도자료실
  • CodeGym for EDU
  • FAQ
  • 지원
CodeGymCodeGym 은(는) 처음부터 Java 프로그래밍을 배우기 위한 온라인 코스입니다. 이 과정은 초보자가 Java를 마스터하기에 완벽한 방법입니다. 즉시 검증 기능이 포함된 1200개 이상의 과제와 Java 기초 이론의 필수 범위를 제공합니다. 학습 성공을 돕기 위해 퀴즈, 코딩 프로젝트, 효율적인 학습법 관련 콘텐츠, Java 개발자 경력 관련 자료 등 동기 부여 기능들을 구현했습니다.
팔로우하기
인터페이스 언어
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語
한국어
Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Programmers Are Made, Not Born" © 2026 CodeGym
MastercardVisa
"Programmers Are Made, Not Born" © 2026 CodeGym