프로젝트 소개

# Jackson 프로젝트 홈 이 페이지는 Java 및 JVM 플랫폼을 위한 데이터 처리 도구 모음인 Jackson 프로젝트의 주요 포털입니다. Jackson은 "Java JSON 라이브러리" 또는 "Java용 최고의 JSON 파서"로 널리 알려져 있지만, JSON을 넘어 많은 다른 데이터 형식도 지원합니다. ## 개요 Jackson이 제공하는 기능: - **스트리밍 JSON 파서/생성기** (jackson-core): 저수준, 고성능 API - **데이터 바인딩** (jackson-databind): JSON과 POJO 간 직렬화/역직렬화 - **어노테이션** (jackson-annotations): 직렬화 제어를 위한 표준 어노테이션 - **데이터 형식 모듈**: Avro, CBOR, CSV, Ion, Protobuf, Smile, TOML, YAML 및 기타 형식 지원 - **데이터타입 모듈**: Java 8 타입, Guava, Joda-Time 및 여러 타사 라이브러리 지원 - **JVM 언어 모듈**: Kotlin, Scala 및 기타 언어 ## 버전 관리 - **1.x** (`org.codehaus.jackson`): 더 이상 사용되지 않으며, 새 릴리스 없음 - **2.x** (`com.fasterxml.jackson.core`): 성숙하고 널리 사용되며, LTS 브랜치(예: 2.18, 2.21) 포함 - **3.x** (`tools.jackson`): 활발히 개발 중이며, 새 프로젝트에 권장됨 주요 버전은 서로 다른 Java 패키지와 Maven groupId를 사용하므로, 충돌 없이 동일 프로젝트에 공존할 수 있습니다. ## 핵심 모듈 - **jackson-core**: 스트리밍 API, JSON 전용 구현 - **jackson-databind**: 데이터 바인딩 및 객체 직렬화, 스트리밍 및 어노테이션에 의존 - **jackson-annotations**: 어노테이션 기반 구성 - **jackson-bom**: 일관된 버전 관리를 위한 Bill of Materials ## 데이터 형식 모듈 완전히 지원되는 형식: - **Avro**: 스키마 지원이 포함된 바이너리 데이터 형식 - **CBOR**: 바이너리 JSON 변형 - **CSV**: 쉼표로 구분된 값 - **Ion**: Amazon Ion 바이너리 형식 - **Protobuf**: Protocol Buffers - **Smile**: 스트리밍과 100% API 호환되는 바이너리 JSON - **TOML**: 구성 형식 - **YAML**: 사람이 읽을 수 있는 데이터 형식 타사 모듈은 BEncode, BSON, MessagePack, Rison 등을 추가로 지원합니다. ## 데이터타입 모듈 공식 모듈은 다음을 지원합니다: - Java 8 타입(Optional, 날짜/시간) - Guava 컬렉션 - Joda-Time - JSON-P(javax.json 및 jakarta.json) - org.json 타입 커뮤니티 모듈은 VAVR, Apache Commons Lang, Java Money 등을 지원합니다. ## 추가 도구 - **Afterburner**: 바이트코드 생성을 통해 데이터 바인딩 속도를 30-40% 향상 - **Mr Bean**: 구현 클래스를 즉시 생성 - **JSON Schema 생성기**: POJO에서 JSON Schema 생성 - **검증기**: Java JSON Schema 검증기 ## 커뮤니티 및 지원 Jackson은 메일링 리스트, Gitter 및 GitHub 이슈를 통해 지원됩니다. 프로젝트는 기여를 환영합니다. 자세한 내용은 CONTRIBUTING.md를 참조하세요. 보안 취약점은 비공개로 보고할 수 있습니다. ## 최근 업데이트 - 2025년 9월: Jackson 3 마이그레이션 가이드 추가 - 2025년 9월: 2.20에서 jackson-annotations 버전 관리 체계 변경 - 2024년 2월: 데이터 형식/데이터타입 모듈에 대한 보안 감사 - 2023년 12월: 코딩 스타일 가이드 추가 전체 릴리스 노트 및 지원 상태는 Jackson Releases 위키 페이지를 참조하세요.