분류 전체보기 1453

[Java] Jackson - ArrayNode 다루기

개요Jackson에서 다루는 JsonNode, ObjectNode는 기본적으로 단일 JSON 데이터를 취급한다. 하지만 JSON 데이터는 Array도 지원하고 있다. 때문에 이번 글에서는 Java에서 JSON Array를 다룰 때 사용하는 ArrayNode에 대해 알아본다. ArrayNodeArrayNode는 Jackson 라이브러리에서 JSON 배열([...])을 표현하는 클래스이다. ObjectNode와 동일하게 JsonNode의 자식 클래스이고, 불변성을 가진 JsonNode와 다르게 데이터의 추가와 수정이 가능하다. 사용법생성 및 요소 추가생성은 ObjectNode와 같이 ObjectMapper.createArrayNode를 사용하고, 값 추가는 add 함수를 사용한다.아래는 ArrayNod..

Java 16:38:13

[Java] Jackson - ObjectNode 다루기

개요2026.04.08-[Java] Jackson - JsonNode 다루기에서 JSON 데이터를 다루기 위한 기본적인 클래스인 JsonNode에 대해 알아보았다. 하지만 JsonNode는 불변 객체로 값 수정을 할 수 없기 때문에 값을 수정하거나 추가하는 등의 작업을 수행하기에는 적합하지 않다. 이런 경우를 위해 Jackson은 ObjectNode라는 클래스를 제공한다.사용법을 알아보자. ObjectNodeJackson의 ObjecNode는 JSON 객체를 Java 코드 상에서 동적으로 생성, 수정, 삭제할 수 있는, 즉 변경 가능한(Mutable) JsonNode 하위 클래스다. 빈 ObjecNode를 생성하여 put, set과 같은 메서드로 키와 값을 추가할 수 있어 유영한 데이터 조작이 필요할 ..

Java 2026.04.10

[Java] Jackson - JsonNode 다루기

개요2026.04.07-[Java] Jackson - JSON 문자열을 Map으로 변환에서 JSON 문자열을 Java Map으로 변환하는 방법을 살펴봤는데, 이 방식에는 타입 안정성이 낮다는 한계점이 존재한다. 때문에 DTO(Data Transfer Object)를 생성하지 않고 데이터를 Java 객체로 변환할 때에는 일반적으로 좀 더 안정적인 JsonNode를 활용한다.이번 글에선 JsonNode에 대해서 알아보려고 한다. JsonNodeJackson이 제공하는 불변 추상 클래스로, JSON 데이터를 트리 구조로 다루기 위해 제공한다. DTO 정의 없이 유연하게 데이터에 접근하고, 복잡한 JSON 구조를 탐색하고 가공할 때 적합한다. 특징- 트리 기반 : JSON 데이터를 노드 단위로 표현하여 구조 ..

Java 2026.04.08

[Java] Jackson - JSON 문자열을 Map으로 변환

개요2026.04.06-[Java] Jackson - JSON 다루기에서 JSON 문자열과 Java 객체 간에 데이터 변환 수행 방법을 알아보았다. 다만 이 방법은 데이터 모델 클래스를 별도로 만들어주어야 한다는 번거로움이 있다. 클래스가 아니라 단순 Map으로 처리할 방법은 없을까? 정리해 둔다. JSON 문자열 -> MapJSON 문자열을 Map으로 변환하는 건 별도 클래스로 변환하는 것과 동일한 방식으로 처리할 수 있다.import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.ObjectMapper;import java.util.Map;public class main { publ..

Java 2026.04.08

[Java] Jackson - JSON 다루기

JacksonJackson은 대표적인 Java JSON 라이브러리 중 하나로, Java 객체(POJO, Plain Old Java Object)를 JSON 형식의 데이터로 직렬화하거나 JSON 형식의 데이터를 Java 객체(POJO)로 역직렬화한다. 또한 JSON 뿐만 아니라 Avro, BSON, Smile, Properties 등 다양한 데이터 형식을 지원하기도 한다.현재는 2.x(com.fasterxml.jackson), 3.x(tools.jackson) 버전이 유지보수되고 있다. 2.x 버전 기준으로 Jackson은 세 개의 코어 모듈로 이루어져 있다.jackson-core : 스트리밍. 가장 낮은 수준의 입출력 처리를 지원하면 JsonParsor, JsonGenerator을 통해 코튼 단위로 데이..

Java 2026.04.07

[Gradle] Task

개요2026.03.27-[Java] Gradle 기본 개념에서 Task에 대해 언급했는데 이번 글에서 조금 더 알아보려고 한다. TaskTask는 빌드가 수행하는 독립적인 실행 단위를 말하며, 클래스 컴파일, jar 생성, javadoc 생성 등의 작업이 해당된다.일반적인 작업 유형은 다음과 같다- 소스 코드 컴파일- 테스트 실행- 패키징 생성- 문서 생성- 저장소에 빌드 아티팩트 게시각 작업은 독립적이나 다른 작업이 먼저 실행될 수 있으며, gradle은 가장 효율적인 작업 실행 순서를 파악하고 최신 상태인 작업은 건너뛴다. Task 수행아래 명령어로 Task를 실행시킬 수 있다../gradlew TASK_NAME# 예시./gradlew build## 사용할 수 있는 task 확인./gradlew ..

Java 2026.04.06

[Gradle] 종속성 관리

개요Gradle의 주요 기능 중 하나는 프로젝트의 종속성을 편하게 관리할 수 있다는 것이다. 이번 글에서는 Gradle에서의 종속성 관리에 대해서 알아보려고 한다. 종속성Gradle에서 종속성이란 프로젝트 빌드를 지원하는 jar, 플러그인, 라이브러리 및 소스 코드와 같은 외부 리소스를 의미하는데, build.gradle이라는 빌드 스크립트에서 선언된다.Gradle은 종속성을 다운로드, 캐싱, 해결하는 작업을 자동으로 처리하여 사용자가 직접 관리할 필요가 없게 한다. 또한 버전 충돌을 처리하고 유연한 버전 선언을 가능하게 한다. 그리고 일련의 자동화 기술을 바로 종속성 관리하고 한다. 종속성 선언종속성은 아래 예시와 같이 선언하면 된다.1번의 경우 java-library 플러그인을 적용한다는 것을..

Java 2026.04.03

[Gradle] settings.gradle / build.gradle

개요최근 2026.03.30-[Gradle] 프로젝트 구조와 Wrapper 글을 통해 gradle 프로젝트의 구조와 wrapper에 대해서 알아보았다. 이번 글에서는 gradle의 설정 파일에 해당하는 settings.gradle에 대해서 알아보려고 한다. settings.gradlesettings.gradle은 프로젝트의 구조를 정의하고 빌드에 하위 프로젝트를 추가하는 역할을 담당한다. 싱글 모듈 프로젝트인 경우에는 선택적으로 사용하고, 멀티 모듈 프로젝트인 경우에는 모든 하위 프로젝트를 선언하기 위해 필수적으로 사용해야 한다. settings.gradle은 크게 두 가지 요소로 구성된다.프로젝트 이름 (rootProject.name)하나만 존재한다. 하위 프로젝트해당 프로젝트에 포함된 하위 프로젝트..

Java 2026.04.02

[Gradle] 프로젝트 구조와 Wrapper

개요2026.03.27-[Java] Gradle 기본 개념에서 Gradle을 이루는 기본 개념에 대해서 알아보았다. 이번 글에서는 Gradle 프로젝트의 구조에 대해서 알아두려고 한다. 프로젝트 구조gradle init 명령어를 수행하면 프로젝트는 아래와 같은 파일 구조를 가진다.1. gradle : Wrapper 파일 등을 저장하는 Gradle 디렉터리2. libs.versions.toml : 종속성 관리를 위한 Gradle 버전 카탈로그3. gradlew : Gradle Wrapper 스크립트. Gradle 프로젝트는 특정 gradle 버전을 포함하고, wrapper 형태로 형상관리를 수행한다.4. settings.gradle : 루트 프로젝트와 하위 프로젝트를 정의하는 gradle 설정 파일. ..

Java 2026.04.01

[Java] Gradle 기본 개념

개요현재 개발하는 Java 애플리케이션은 Gradle 프로젝트인데 Gradle에 대한 이해도가 부족하다 보니 어떻게 설정하는지, 어떤 개념이 있는지 헤매고 있는 중이다. 이번 글에서는 기초적인 개념 위주로 훑어보려고 한다. Gradle프로젝트 초기화 및 빌드 자동화 도구로, 설정이나 외부 라이브러리 의존 관리를 편리하게 하는 역할을 수행한다. 개발자는 설정과 의존성 관리, 컴파일 방식 정의, 테스트, 패키징, 작업 설정 등을 위해 Gradle을 사용하게 된다. 구조 및 개념Gradle은 5개의 핵심적인 개념을 가진다.프로젝트빌드 가능한 소프트웨어를 의미한다. 단일 프로젝트 빌드에는 루트 프로젝트라는 단일 프로젝트가 포함되며, 멀티 모듈 프로젝트 빌드에는 하나의 루트 프로젝트와 여러 개의 하위 프로..

Java 2026.03.31