RESTful API 기본 개념 학습: JSON 데이터 형식과 Jackson 라이브러리
JSON이란 무엇일까요?
JSON(JavaScript Object Notation)은 데이터를 주고받을 때 사용하는 간단하고 가벼운 언어입니다. 마치 사람들이 편지를 주고받듯이, 컴퓨터끼리도 데이터를 주고받아야 하는데, 이때 JSON을 사용하면 서로 쉽게 이해할 수 있어요.
예를 들어, 친구에게 사과를 3개 주고 싶다고 할 때, 우리는 "사과 3개"라고 말하죠? JSON도 비슷하게, 데이터를 이름(key)과 값(value)의 쌍으로 나타냅니다.
JSON
{
"과일": "사과",
"갯수": 3
}
위 JSON 데이터는 "과일"이라는 이름에 "사과"라는 값이, "갯수"라는 이름에 3이라는 값이 연결되어 있다는 것을 의미합니다.
Jackson 라이브러리란 무엇일까요?
Jackson 라이브러리는 Java 프로그램에서 JSON 데이터를 쉽게 다룰 수 있도록 도와주는 도구입니다. 마치 번역기를 사용해서 다른 나라 말을 번역하듯이, Jackson 라이브러리를 사용하면 JSON 데이터를 Java 객체로 바꾸거나, Java 객체를 JSON 데이터로 바꿀 수 있어요.
쉬운 예제: 간단한 JSON 데이터 파싱
Java
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonExample {
public static void main(String[] args) throws Exception {
// JSON 문자열
String json = "{\"name\":\"홍길동\",\"age\":20}";
// ObjectMapper를 이용하여 JSON 문자열을 Person 객체로 변환
ObjectMapper objectMapper = new ObjectMapper();
Person person = objectMapper.readValue(json, Person.class);
// 변환된 객체의 정보 출력
System.out.println("이름: " + person.getName());
System.out.println("나이: " + person.getAge());
}
}
class Person {
private String name;
private int age;
// getter, setter 메소드 생략
}
설명:
- JSON 문자열 준비: "홍길동"이라는 이름과 20살이라는 나이를 가진 사람에 대한 정보를 JSON 형식으로 만들었습니다.
- ObjectMapper 생성: Jackson 라이브러리의 ObjectMapper를 생성하여 JSON과 Java 객체 간의 변환을 담당하도록 합니다.
- JSON 파싱: readValue 메소드를 사용하여 JSON 문자열을 Person 객체로 변환합니다. Person 클래스는 이름과 나이를 저장하는 클래스입니다.
- 정보 출력: 변환된 Person 객체의 이름과 나이를 출력합니다.
중급 예제: 복잡한 JSON 데이터 생성
Java
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.ArrayList;
import java.util.List;
public class JsonExample2 {
public static void main(String[] args) throws Exception {
// 학생 정보를 담을 List 생성
List<Student> students = new ArrayList<>();
students.add(new Student("김철수", 90));
students.add(new Student("이영희", 85));
// 학급 정보를 담을 객체 생성
ClassRoom classRoom = new ClassRoom();
classRoom.setName("1반");
classRoom.setStudents(students);
// ObjectMapper를 이용하여 Java 객체를 JSON 문자열로 변환
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(classRoom);
System.out.println(json);
}
}
class Student {
private String name;
private int score;
// getter, setter 메소드 생략
}
class ClassRoom {
private String name;
private List<Student> students;
// getter, setter 메소드 생략
}
설명:
- 학생 정보 준비: 김철수와 이영희라는 두 명의 학생 정보를 Student 객체에 저장합니다.
- 학급 정보 준비: 1반이라는 이름의 학급 정보를 ClassRoom 객체에 저장하고, 위에서 만든 학생 정보를 List에 담아 ClassRoom 객체에 추가합니다.
- JSON 생성: ObjectMapper를 이용하여 ClassRoom 객체를 JSON 문자열로 변환합니다.
- JSON 출력: 변환된 JSON 문자열을 출력합니다.
초등학생도 이해할 수 있도록:
- JSON은 컴퓨터가 이해하는 편지라고 생각하면 됩니다.
- Jackson 라이브러리는 번역기와 같아서, JSON 편지를 우리가 이해할 수 있는 말로 바꿔주거나, 우리가 하는 말을 JSON 편지로 바꿔줍니다.
- 쉬운 예제: 친구에게 자기소개를 하는 편지를 쓰는 것과 같아요.
- 중급 예제: 우리 반 친구들의 정보를 담은 명단을 만드는 것과 같아요.
참고: 위 예제는 매우 간단한 예시이며, 실제 개발에서는 더 복잡한 JSON 구조와 다양한 기능을 사용하게 됩니다.
핵심: JSON은 데이터를 주고받을 때 사용하는 간단한 언어이고, Jackson 라이브러리는 Java에서 JSON을 다루는 데 사용되는 도구입니다.
'Spring( Framework )' 카테고리의 다른 글
API, JPA, MyBatis: 언제 어떤 것을 사용해야 할까요? (2) | 2025.01.17 |
---|---|
스프링 MVC를 이용한 API 개발: 주요 어노테이션 (0) | 2025.01.17 |
스프링에서 index.html 대신 .do로 요청하는 방법 (1) | 2025.01.16 |
API 구조 설계 수정 제안 (0) | 2025.01.16 |
스프링 구조도 및 파일 설명 (0) | 2025.01.16 |