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

강의

  • 리뷰
  • 회사 소개
시작
학습 시작
Start learning now
  • 진행 상황
  • 코스
  • 퀘스트 맵
  • 레슨
  • 직렬화의 압축과 프로파일링

    JAVA 25 SELF
    레벨 45,레슨 4
    Java에서 객체 직렬화의 크기를 줄이고 속도를 높이는 방법: transient로 불필요한 필드를 제외하고, Externalizable로 완전한 제어를 하며, 스트리밍 압축( GZIPOutputStream, ZipOutputStream)을 적용하고, I/O 버퍼링( BufferedOutputStream, BufferedInputStream)과 FileChannel. transferTo를 통한 빠른 복사로 가속합니다. 성능 평가는 System. nanoTime()을 이용한 빠른 측정과 JMH 기반의 신뢰할 수 있는 마이크로벤치마크를 모두 사용합니다. 마지막에는 미니 실험과 흔한 실수 분석으로 마무리합니다.
    사용 가능
  • JSON 기초: 구조, 문법, 장점

    JAVA 25 SELF
    레벨 46,레슨 0
    JSON 데이터 교환 형식에 대한 간결하고 현대적인 입문: 무엇이며 왜 사실상 REST API의 표준이 되었는지, 기본 구조 — 객체 { }와 배열 [ ], 허용되는 타입(문자열 "...", 숫자, 불리언 값 true/ false, null), 중첩, XML과의 비교, JSON ↔ Java 매핑(컬렉션 Map<K, V>, HashMap<K, V>). 실전 예제와 흔한 오류: 작은따옴표, 불필요한 끝 쉼표, undefined, 앞에 0이 붙은 숫자를 다룹니다.
    사용 가능
  • Jackson — JSON 읽기와 쓰기, 애노테이션

    JAVA 25 SELF
    레벨 46,레슨 1
    Jackson — Java에서 JSON을 다루는 사실상의 표준입니다: ObjectMapper로 수행하는 간단한 직렬화/역직렬화부터 @JsonProperty, @JsonIgnore, @JsonInclude, @JsonFormat 애노테이션을 통한 세밀한 제어까지. 이 강의에서는 의존성 추가( jackson-databind), 객체와 컬렉션의 읽기/쓰기, pretty-printing, 날짜 처리와 흔한 오류를 다룹니다. 여기에는 TypeReference와 함께 쓰는 제네릭, POJO의 요구 사항(매개변수 없는 생성자, getter/setter)도 포함됩니다.
    사용 가능
  • Gson — 직렬화와 역직렬화, 설정

    JAVA 25 SELF
    레벨 46,레슨 2
    이 강의에서는 Google Gson 라이브러리를 다룹니다. toJson/ fromJson으로 빠르게 시작하고, TypeToken<>을 통한 컬렉션 역직렬화, GsonBuilder의 유연한 구성( setPrettyPrinting, serializeNulls, setDateFormat)을 살펴봅니다. 또한 @SerializedName, @Expose 애너테이션과 버전 조건인 @Since/ @Until, 직접 만드는 어댑터 TypeAdapter 및 registerTypeAdapter를 알아본 뒤, Jackson과 비교하고 흔한 오류를 정리합니다.
    사용 가능
  • 동적 구조 다루기: Map, List, JsonNode

    JAVA 25 SELF
    레벨 46,레슨 3
    JSON 구조가 미리 알려져 있지 않거나 자주 바뀌는 경우, 엄격한 Java 클래스 대신 범용 컨테이너인 Map, List와 JSON 트리를 사용하는 편이 더 편리합니다. 이 강의에서는 ObjectMapper를 사용해 데이터를 Map<String, Object>와 List로 읽는 방법, JsonNode와 그 메서드 get/ path/ asText()로 트리를 안전하게 순회하는 방법, 그리고 Gson의 JsonElement, JsonObject, JsonArray를 활용하는 대안을 다룹니다. 마지막으로 구성(config)을 추출하는 실습과 흔한 오류를 정리합니다.
    사용 가능
  • JSON 검증: JSON Schema, 검증 오류

    JAVA 25 SELF
    레벨 46,레슨 4
    역직렬화 전에 JSON 형식의 입력 데이터를 왜 그리고 어떻게 검증해야 하는지: JSON Schema로 데이터 계약을 정의하고(키 type, properties, required, format), Java에서 everit-org/json-schema 라이브러리로 검증( Schema로 스키마 로드, validate 호출), ValidationException을 올바르게 처리해 사용자와 API를 위한 이해하기 쉬운 오류 메시지를 만든다.
    사용 가능
  • XML 및 네임스페이스 기초

    JAVA 25 SELF
    레벨 47,레슨 0
    짧고 실용적인 XML 입문: 기본 구조(요소, 속성, 텍스트 노드, 주석, CDATA), 프로로그의 구성, 그리고 무엇보다 — 네임스페이스가 왜 필요한지와 이를 xmlns 및 xmlns:prefix 속성을 통해 어떻게 선언하고 적용하는지. 접두사, 기본 네임스페이스( xmlns= "URI"), 하나의 문서에서 서로 다른 “어휘”를 섞는 방법과 흔한 파싱 오류를 다룹니다.
    사용 가능
  • DOM, SAX 다루기: XML 파싱

    JAVA 25 SELF
    레벨 47,레슨 1
    이 강의에서는 XML을 파싱하는 두 가지 고전적 접근법, 트리 기반 DOM과 이벤트 기반 SAX를 다룹니다. 트리( Document, Element, NodeList)를 통해 문서를 읽고 수정하는 방법과, 이벤트 핸들러( SAXParser, DefaultHandler, startElement/ characters/ endElement)로 대용량 파일을 스트리밍 방식으로 처리하는 방법을 배우게 됩니다. 또한 각 접근법의 장단점, 실전 예제, 그리고 흔한 실수(메모리, characters에서 텍스트가 분할되는 현상, SAX에서 XML을 수정하려는 시도)도 설명합니다.
    사용 가능
  • StAX (Streaming API for XML) — 스트리밍 파싱

    JAVA 25 SELF
    레벨 47,레슨 2
    StAX를 사용해 XML 스트리밍 파싱을 다룹니다: pull 모델이 SAX의 push 접근 방식과 어떻게 다른지, XMLInputFactory로 파서를 생성하고 XMLStreamReader에서 reader. next() 호출을 통해 이벤트를 읽는 루프를 어떻게 구성하는지, 어떤 이벤트 유형이 있는지( START_ELEMENT, CHARACTERS, END_ELEMENT, END_DOCUMENT)와 언제 StAX가 DOM/ SAX보다 적합한지 설명합니다. 추가로: 접근 방식 비교 표, Mermaid 다이어그램, 그리고 흔한 오류 분석(스트림 누수, 요소 중첩, XMLStreamException, IOException 예외 등).
    사용 가능
  • JAXB로 XML 다루기: 기본과 애너테이션

    JAVA 25 SELF
    레벨 47,레슨 3
    JAXB (Jakarta XML Binding)를 사용해 Java 객체를 XML로, 그리고 그 반대로 변환하는 방법: 핵심 애너테이션 @XmlRootElement, @XmlElement, @XmlAttribute, @XmlType, @XmlTransient; 기본 클래스 JAXBContext, Marshaller, Unmarshaller; 속성 Marshaller.JAXB_FORMATTED_OUTPUT를 통한 출력 서식 설정. Java 11+용 Maven 의존성( jakarta.xml.bind-api, jaxb-runtime), 컬렉션과 중첩 객체 처리, 요소 순서 제어( propOrder), 필드 제외 및 흔한 오류를 다룹니다.
    사용 가능
  • XML 직렬화 설정: 커스텀 어댑터

    JAVA 25 SELF
    레벨 47,레슨 4
    JAXB로 “비표준” 타입을 직렬화하고 원하는 형식으로 데이터를 표현하는 방법: @XmlJavaTypeAdapter 어노테이션을 사용하고, XmlAdapter<ValueType, BoundType>를 기반으로 직접 어댑터를 작성합니다. 날짜 형식화( LocalDate → "dd.MM.yyyy"), 숫자( BigDecimal), 컬렉션 처리, 값을 @XmlAttribute로 속성에, @XmlElement로 요소에 배치하는 방법, 그리고 @XmlTransient로 필드를 제외하는 방법을 다룹니다. 또한 Marshaller/ Unmarshaller로 직렬화/역직렬화를 연습하고 흔한 오류를 정리합니다.
    사용 가능
  • 람다식: 문법과 스코프

    JAVA 25 SELF
    레벨 48,레슨 0
    Java의 람다식을 복습하고 심화합니다: 문법(매개변수, 화살표 ->, 본문), 괄호와 return 없이 쓰는 축약형, 기능적 인터페이스( Comparator, Runnable, Consumer)와의 연결, 리스트·스트림 및 Stream API 일상 예제. 스코프와 “사실상 final” 규칙, 람다와 익명 클래스에서의 this 차이, 그리고 흔한 실수와 예방 방법을 다룹니다.
    사용 가능
  • 1
  • ...
  • 20
  • 21
  • 22
  • 23
  • 24
  • ...
  • 30
학습
  • 등록
  • 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