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

강의

  • 리뷰
  • 회사 소개
시작
학습 시작
Start learning now
  • 진행 상황
  • 코스
  • 퀘스트 맵
  • 레슨
  • 사용자 정의 Collector와 Spliterator

    JAVA 25 SELF
    레벨 33,레슨 4
    이 강의에서는 Stream API에서 Collector를 통해 사용자 정의 컬렉터를 어떻게 작성하고, 언제 그럴 만한지, 그리고 효율적인 순차 및 병렬 데이터 순회를 위해 사용자 정의 Spliterator를 구현하는 방법을 다룹니다. 단계별로 컬렉터의 구성 요소( supplier, accumulator, combiner, finisher, characteristics)를 살펴보고, 멀티맵과 상위 N 예제, trySplit 전략, 그리고 특성( ORDERED, SIZED, SUBSIZED 등)을 올바르게 설정하는 방법을 설명합니다.
    사용 가능
  • List.of, Set.of, Map.of — 불변 컬렉션

    JAVA 25 SELF
    레벨 34,레슨 0
    이 강의에서는 Java 9+의 불변 컬렉션을 다룹니다: 팩토리 메서드 List.of, Set.of, Map.of, Map.ofEntries. 이를 Collections.unmodifiableList 같은 래퍼와 비교하고, 제약 사항(변경 금지, null 금지, 집합과 맵 키의 중복 금지), 요소 순서와 성능을 논의합니다. Map.of의 10쌍 제한과 대표적인 예외들: UnsupportedOperationException, NullPointerException, IllegalArgumentException도 살펴봅니다. 또한 이러한 컬렉션이 설계를 단순화하고 읽기 시 스레드 안전성을 높이는 실용적인 사례를 제공합니다.
    사용 가능
  • Map.copyOf, Set.copyOf 및 기타 유틸리티

    JAVA 25 SELF
    레벨 34,레슨 1
    이 강의에서는 Java 10에 도입된 컬렉션의 불변 복사본: List.copyOf, Set.copyOf, Map.copyOf를 살펴봅니다. 이것들이 Collections.unmodifiable* 래퍼와 어떻게 다른지, 어떤 제약이 있는지( null 금지, 불변성), 언제 동일한 객체가 반환되는지, 그리고 왜 구체적 구현에 의존하면 안 되는지를 알게 됩니다. 또한 Map.of 및 Map.ofEntries와의 혼동을 포함해 실전 사용 시나리오와 흔한 실수를 보여 줍니다.
    사용 가능
  • CopyOnWrite 컬렉션, unmodifiable 래퍼

    JAVA 25 SELF
    레벨 34,레슨 2
    이 강의에서는 컬렉션을 “보호”하는 두 가지 접근을 다룹니다: Collections.unmodifiable*의 변경 불가 래퍼와 List.of/ Set.of/ Map.of 팩토리 메서드, 그리고 java.util.concurrent 패키지의 스레드 안전한 CopyOnWriteArrayList와 CopyOnWriteArraySet. 래퍼와 진짜 불변성의 차이, CopyOnWrite 구조가 유용한 곳, 그리고 실무에서 흔히 발생하는 실수를 이해합니다.
    사용 가능
  • Mutable vs Immutable 컬렉션: 차이점과 활용

    JAVA 25 SELF
    레벨 34,레슨 3
    이 강의에서는 Java에서 변경 가능한 컬렉션과 변경 불가능한 컬렉션의 차이를 다룹니다. 언제 ArrayList/ HashSet을 선택하고, 언제 — Java 9+의 팩토리 컬렉션( List.of, Set.of, Map.of)과 copyOf를 통한 복사본을 사용할지 살펴봅니다. 보안, 스레드 안전성, 디버깅 편의성, Collections.unmodifiableList 래퍼의 함정과 실전 사용 예, 그리고 흔한 실수와 그를 피하는 방법도 함께 논의합니다.
    사용 가능
  • 새로운 컬렉션: SequencedCollection, SequencedSet, SequencedMap

    JAVA 25 SELF
    레벨 34,레슨 4
    Java 21에는 순서가 있는 컬렉션용 인터페이스인 SequencedCollection, SequencedSet, SequencedMap이 도입되었습니다. 이들은 요소의 순서를 다루기 위한 공통 계약을 추가하며, 첫/마지막 요소에 빠르게 접근하고 reversed()로 컬렉션을 역순으로 볼 수 있게 합니다. 이 강의에서는 어떤 표준 컬렉션이 이미 이를 구현하는지, 어떤 메서드가 추가되었는지, 실제 코드에서 어떻게 활용하는지, 그리고 흔한 실수와 사용상의 주의점을 살펴봅니다.
    사용 가능
  • java.io와 java.nio의 기본: 차이점과 API의 진화

    JAVA 25 SELF
    레벨 35,레슨 0
    이 강의는 Java의 파일 입출력 진화를 간략히 안내합니다: “고전적인” 패키지 java.io의 File 클래스, FileInputStream/ FileOutputStream 스트림, 문자 기반 Reader/ Writer에서 현대적인 java.nio.file (NIO.2)의 Path, Files, FileSystem으로. 접근 방식이 어떻게 다른지, 비동기 I/O가 어디에서 강점을 보이는지, 어떻게 안전하게 마이그레이션할지 ( File . toPath() ⇄ Path . toFile())를 살펴보고, 실용 예제, API 선택 가이드, 그리고 흔한 실수도 함께 정리합니다.
    사용 가능
  • File, Path, Files 클래스: 개요, 객체 생성

    JAVA 25 SELF
    레벨 35,레슨 1
    이 강의에서는 Java 파일 API의 세 가지 핵심 개념을 다룹니다: 역사적인 File, NIO.2의 현대적 경로 추상화 Path, 그리고 만능 유틸리티(스위스 아미 나이프) 클래스 Files. 실습으로 객체를 생성하고, File ↔ Path 변환, resolve로 경로를 안전하게 "이어 붙이기", relativize로 상대 경로 얻기, normalize로 정규화하기, 그리고 Files.exists, Files.copy, Files.move, Files.readAllLines/ Files.write 수준의 작업을 수행해 봅니다. 결론 — 각 접근 방식을 언제 사용해야 하는지와 자주 발생하는 실수를 명확히 이해하게 됩니다.
    사용 가능
  • 파일 읽기와 쓰기: 기본 작업

    JAVA 25 SELF
    레벨 35,레슨 2
    이 강의에서는 유틸리티 java.nio.file.Files를 통해 파일을 빠르게 다루는 방법을 살펴봅니다: 전체 파일 읽기( readAllBytes, readAllLines)와 명시적 인코딩 StandardCharsets.UTF_8으로 데이터 쓰기( write). 예외 처리 IOException을 논의하고, 실용적인 예제를 보여 주며, 언제 스트림 API( BufferedReader, BufferedWriter)가 필요한지와 흔한 실수를 살펴봅니다.
    사용 가능
  • 파일 작업 모드: 읽기, 쓰기, 추가

    JAVA 25 SELF
    레벨 35,레슨 3
    이 강의에서는 Java에서 파일 작업 모드를 다룹니다: 덮어쓰기와 추가(append), StandardOpenOption 옵션 조합(예: APPEND, CREATE, TRUNCATE_EXISTING, CREATE_NEW), Files.write()/ Files.readAllBytes()를 통한 텍스트와 바이트 처리, 언제 스트림( BufferedReader/ BufferedWriter)을 선택할지, 그리고 예외( IOException 등)를 올바르게 처리하는 방법. 실전 예제와 흔한 실수 분석을 많이 포함합니다.
    사용 가능
  • 디렉터리 작업: 생성, 삭제, 내용 조회

    JAVA 25 SELF
    레벨 35,레슨 4
    java.nio.file을 통해 파일 시스템을 다루는 실습 강의: Files.createDirectory와 Files.createDirectories로 디렉터리를 만들고, Files.delete와 Files.deleteIfExists로 삭제하며, Files.list로 내용을 살펴보고, Files.walkFileTree로 재귀 삭제를 분석합니다. 단계별 예제, 미니 파일 관리자, 그리고 자주 발생하는 오류 섹션을 통해 어떤 OS에서도 폴더를 자신 있게 다룰 수 있습니다.
    사용 가능
  • BufferedReader, BufferedWriter: 버퍼링과 장점

    JAVA 25 SELF
    레벨 36,레슨 0
    파일을 “티스푼”으로 읽고 쓰면 왜 비용이 큰가: 버퍼링이 Java의 텍스트 I/O를 어떻게 빠르게 만드는지 살펴봅니다. BufferedReader와 BufferedWriter가 FileReader/ FileWriter 위에서 어떻게 동작하는지, readLine()으로 줄 단위 읽기, write()/ newLine()으로 쓰기와 줄바꿈, flush()로 강제 반영, 버퍼 크기 지정, InputStreamReader/ OutputStreamWriter로 인코딩을 다루는 방법을 봅니다. 언제 버퍼링을 쓰고 언제 쓰지 말아야 하는지 — 그리고 가장 흔한 실수는 무엇인지 정리합니다.
    사용 가능
  • 1
  • ...
  • 15
  • 16
  • 17
  • 18
  • 19
  • ...
  • 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