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

강의

  • 리뷰
  • 회사 소개
시작
학습 시작
Start learning now
  • 진행 상황
  • 코스
  • 퀘스트 맵
  • 레슨
  • 중첩 객체 직렬화: 특징

    JAVA 25 SELF
    레벨 44,레슨 0
    이 강의에서는 Java가 객체 그래프를 깊게 직렬화하는 방법을 살펴봅니다. 참조 필드에 어떤 일이 일어나는지, 왜 모든 중첩 객체가 Serializable을 구현해야 하는지, NotSerializableException을 어떻게 피하는지, 그리고 어떤 경우에 transient 키워드가 도움이 되는지를 설명합니다. 예제를 통해 중첩, 컬렉션, 순환 참조를 가진 객체의 직렬화/역직렬화를 보여 주고, serialVersionUID 및 큰 객체 그래프와 관련된 흔한 오류도 함께 분석합니다.
    사용 가능
  • 중첩 및 계층 객체: 그래프 직렬화

    JAVA 25 SELF
    레벨 44,레슨 1
    Java가 복잡한 데이터 구조를 어떻게 직렬화하는지: 중첩 컬렉션과 상속 계층부터 객체의 순환 그래프까지. 왜 직렬화가 Map<String, List<Book>>에서 동작하는지, List<Animal>에 담긴 하위 클래스의 실제 타입이 어떻게 보존되는지, 순환이 있을 때 참조 메커니즘이 무엇을 하는지, 그리고 어떤 함정이 있는지 살펴봅니다. 또한 ObjectOutputStream/ ObjectInputStream의 역할, writeObject/ readObject 메서드, serialVersionUID 필드와 transient 한정자에 대해 이야기합니다.
    사용 가능
  • 순환 참조 문제: 감지와 우회

    JAVA 25 SELF
    레벨 44,레슨 2
    객체 그래프에서 순환 참조가 무엇인지, 직렬화에 왜 위험한지, 그리고 어떻게 대응하는지 살펴봅니다. Java 표준 스트림 — ObjectOutputStream/ ObjectInputStream — 이 이미 직렬화된 객체를 자동으로 추적하고 참조(핸들)를 기록하여 StackOverflowError를 방지하는 방법을 보여 줍니다. 또한 커스텀 직렬화( writeObject/ readObject, defaultWriteObject/ defaultReadObject)의 함정과, JSON에서의 순환 처리 전략도 다룹니다: @JsonIdentityInfo 애너테이션, @JsonBackReference/ @JsonManagedReference 조합, transient로 필드 제외, 식별자 사용 등.
    사용 가능
  • 이진 직렬화에서 객체 동일성

    JAVA 25 SELF
    레벨 44,레슨 3
    Java에서 이진 직렬화 시 객체의 동일성을 어떻게 보존하고 복원하는가: 왜 a. equals( b)로 판단하는 동등성은 동일성( a == b)과 같지 않은지, ObjectOutputStream/ ObjectInputStream이 객체 그래프를 추적하고 중복을 쓰는 대신 “재참조”(reference handle)를 기록하는 방식, 이것이 순환 구조에서도 올바르게 동작하는 이유, 그리고 writeReplace()와 readResolve() 메서드가 최종 동일성에 어떤 영향을 줄 수 있는지. 예제로 살펴보는 사이클, 공유 참조, 실습 및 흔한 실수.
    사용 가능
  • 컬렉션 직렬화에서 흔히 발생하는 오류 분석

    JAVA 25 SELF
    레벨 44,레슨 4
    이 강의에서는 컬렉션 직렬화에서 가장 자주 만나는 문제들을 다룹니다: 요소가 Serializable을 구현하지 않을 때 발생하는 java.io.NotSerializableException, 제네릭의 함정으로 인한 ClassCastException, 그리고 serialVersionUID로 인해 발생하는 클래스 버전 비호환까지. 불변 컬렉션( List.of(), Set.of(), Map.of())의 특이점, transient/ static 필드의 동작, 성능과 파일 크기 이슈 등도 다루며, 스트리밍 방식과 압축( GZIPOutputStream)이 어떻게 도움이 되는지 설명합니다. 또한 실전 조언, 코드 예시, 그리고 안전한 역직렬화( readObject/ writeObject)를 위한 권장 사항을 제공합니다.
    사용 가능
학습
  • 등록
  • 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