반응형

JAVA 81

[JAVA] Gson과 복합 객체

Gson은 간단한 객체와 배열뿐만 아니라 중첩 객체와 복잡한 데이터 구조를 효과적으로 처리할 수 있는 강력한 기능을 제공합니다. 또한, 특정 필드만 선택적으로 처리할 수 있는 기능도 있어 대규모 JSON 데이터를 다룰 때 효율적입니다.중첩 객체를 처리하는 방법중첩 객체는 클래스 내에 또 다른 클래스를 포함하는 형태의 구조를 말합니다. Gson은 이러한 중첩 구조를 자연스럽게 직렬화하고 역직렬화할 수 있습니다.예제: 중첩 객체 처리import com.google.gson.Gson;import com.google.gson.GsonBuilder;public class Main { public static void main(String[] args) { // 객체 생성 Addres..

JAVA 2024.12.14

[JAVA] Gson의 고급 기능

Gson은 기본적인 JSON 직렬화 및 역직렬화 기능 외에도 사용자 정의 직렬화 및 역직렬화, TypeAdapter, JsonSerializer/JsonDeserializer 활용, 그리고 JSON 데이터 포맷팅과 Pretty Printing과 같은 고급 기능을 제공합니다. 이러한 기능은 JSON 형식이 복잡하거나 맞춤형 처리가 필요한 경우 유용하게 사용할 수 있습니다.사용자 정의 직렬화 및 역직렬화Gson은 데이터 직렬화/역직렬화 과정을 사용자 정의할 수 있습니다. 이를 통해 데이터 구조가 특수하거나 JSON 형식을 맞춤형으로 변환해야 할 때 활용할 수 있습니다.사용자 정의 직렬화다음은 Person 클래스의 age를 특정 조건에 따라 다른 값으로 변환하는 사용자 정의 직렬화 예제입니다.import co..

JAVA 2024.12.14

[JAVA] Gson과 Java 컬렉션

Gson은 자바의 컬렉션 타입인 리스트(List)와 맵(Map)을 JSON으로 변환하거나 JSON 데이터를 다시 컬렉션으로 변환할 수 있는 강력한 기능을 제공합니다. 특히, 제네릭 타입 처리를 위한 TypeToken 클래스는 이러한 작업에서 필수적입니다.리스트(List)를 JSON으로 변환리스트를 JSON으로 변환하는 것은 매우 간단합니다. 다음은 Person 객체 리스트를 JSON 문자열로 변환하는 예제입니다.import com.google.gson.Gson;import java.util.Arrays;import java.util.List;public class Main { public static void main(String[] args) { Gson gson = new Gson(..

JAVA 2024.12.13

[JAVA] Gson을 활용한 기본 JSON 처리

Gson은 자바 객체와 JSON 간의 변환을 간단하게 처리할 수 있도록 해주는 강력한 라이브러리입니다. 이번 글에서는 객체를 JSON으로 변환하기, JSON을 객체로 변환하기, 기본 데이터 타입 변환에 대해 자세히 알아보겠습니다.객체를 JSON으로 변환하기 (toJson())Gson의 toJson() 메서드는 자바 객체를 JSON 형식으로 직렬화할 때 사용됩니다. 간단한 객체를 JSON 문자열로 변환하는 예제를 살펴보겠습니다.import com.google.gson.Gson;public class Main { public static void main(String[] args) { Gson gson = new Gson(); // 객체 생성 Pers..

JAVA 2024.11.25

[JAVA] Gson 환경 설정

Gson 라이브러리를 사용하려면 프로젝트 빌드 도구에 Gson 의존성을 추가해야 합니다. Maven과 Gradle은 자바 프로젝트에서 가장 널리 사용되는 빌드 도구로, 각각에서 Gson을 설치하는 방법은 아래와 같습니다.1. Maven을 사용한 설치프로젝트의 pom.xml 파일에 Gson 의존성을 추가합니다. com.google.code.gson gson 2.10.1추가 후 mvn install 명령을 실행하면 의존성이 다운로드되어 프로젝트에 추가됩니다.예제: Maven 프로젝트 구조project/├── pom.xml├── src/main/java/│ └── Main.javapom.xml 설정 후, 다음과 같이 Java 파일을 작성할 수 있습니다.import com.google.gso..

JAVA 2024.11.24

[JAVA] Gson 이란?

Gson은 Google에서 개발한 Java 기반의 JSON 처리 라이브러리입니다. 주된 목적은 JSON 데이터를 Java 객체로 변환하거나, Java 객체를 JSON 형식으로 직렬화하는 것입니다. Gson은 간결한 API와 높은 성능으로 인해 널리 사용되며, 다양한 설정 옵션을 통해 개발자에게 유연성을 제공합니다.예를 들어, 아래와 같이 Gson을 사용하면 간단하게 JSON 데이터를 Java 객체로 변환할 수 있습니다.import com.google.gson.Gson;public class Main { public static void main(String[] args) { String json = "{\"name\":\"김철수\",\"age\":30,\"city\":\"서울\"}"; ..

JAVA 2024.11.23

[JAVA] List와 Java 8 이상 기능 통합

Java 8부터 도입된 Lambda 표현식, Stream API, Optional은 List와 같은 컬렉션 데이터를 처리하는 데 강력한 기능을 제공합니다.1. Lambda와 List의 결합Lambda 표현식은 간결한 코드로 리스트의 데이터를 처리하거나 반복 작업을 수행하는 데 유용합니다. forEach(), removeIf()와 같은 메서드와 함께 사용하면 코드의 가독성이 크게 향상됩니다.Lambda를 활용한 List 데이터 출력import java.util.ArrayList;import java.util.List;public class LambdaWithList { public static void main(String[] args) { List cities = new ArrayLis..

JAVA 2024.11.22

[JAVA] List 자주 사용하는 유틸리티 메서드와 트릭

Java에서 리스트(List)를 활용한 프로그래밍은 매우 빈번하며, 효율적으로 데이터를 다루기 위해 유틸리티 메서드와 트릭을 사용하는 것이 중요합니다.1. List 병합과 필터링리스트 데이터를 합치거나 특정 조건에 따라 필터링하는 작업은 데이터 처리에서 매우 자주 사용됩니다. Java Stream API를 활용하면 효율적으로 구현할 수 있습니다.List 병합리스트 병합은 두 개 이상의 리스트를 하나로 합치는 작업입니다. 이 작업은 Stream.concat() 또는 addAll() 메서드를 통해 간단히 구현할 수 있습니다.예제 코드 - 병합import java.util.ArrayList;import java.util.List;public class ListMergeExample { public sta..

JAVA 2024.11.21

[JAVA] List 자주 발생하는 문제와 해결법

Java를 사용하면서 IndexOutOfBoundsException, ConcurrentModificationException, NullPointerException과 같은 예외는 개발자들에게 흔히 발생하는 문제입니다. 이 예외들은 코드의 안정성을 저해하며, 잘못된 사용자 경험을 초래할 수 있습니다.1. IndexOutOfBoundsException 예외 처리IndexOutOfBoundsException은 리스트나 배열의 유효하지 않은 인덱스에 접근하려고 할 때 발생합니다.원인유효 범위를 초과한 인덱스에 접근빈 리스트에서 요소를 삭제하거나 읽으려고 시도반복문에서 잘못된 조건 설정해결 방법데이터 구조의 크기를 확인하고 인덱스 유효성을 검사안전한 조건문을 활용하여 예외를 방지예제 코드import java.u..

JAVA 2024.11.20

[JAVA] List성능 비교와 최적화

Java에서 ArrayList와 LinkedList는 가장 널리 사용되는 리스트 구현체입니다. 하지만 각 리스트의 동작 원리와 성능 특성에 따라 적합한 사용 사례와 선택 기준이 달라집니다.1. ArrayList vs LinkedList 성능 비교ArrayList와 LinkedList의 동작 원리ArrayList는 내부적으로 동적 배열(Dynamic Array)을 사용하며, 인덱스를 기반으로 빠르게 접근이 가능합니다. 하지만 크기를 초과하는 요소를 추가할 때 배열을 재할당해야 하므로 성능 저하가 발생할 수 있습니다.LinkedList는 노드(Node) 간 연결로 구성된 데이터 구조로, 삽입과 삭제가 특정 위치에서 빠르게 이루어집니다. 하지만 인덱스를 기반으로 한 접근 속도가 느립니다.성능 비교: 검색, 삽..

JAVA 2024.11.19
반응형