no arg = 디폴트
자바에서 "no-arg"는 기본 생성자(default constructor)를 의미합니다. 즉, 매개변수가 없는 생성자를 말합니다. 일반적으로 자바 클래스는 명시적으로 생성자를 작성하지 않으면 컴파일러가 자동으로 기본 생성자를 만들어줍니다.
no-arg 생성자
명시적으로 매개변수를 받지 않는 생성자를 직접 작성하는 것을 의미합니다. 이 경우, 개발자가 기본 생성자에 특정 동작을 추가하거나 객체의 초기 상태를 설정할 수 있습니다.
public class MyClass {
// 명시적인 no-arg 생성자
public MyClass() {
System.out.println("MyClass의 기본 생성자가 호출되었습니다.");
}
}
"no-arg" 생성자는 디폴트 생성자와 동일한 개념으로, 매개변수가 없는 생성자를 의미합니다.
"마샬링(Marshalling)"과 "언마샬링(Unmarshalling)"
"마샬링(Marshalling)"과 "언마샬링(Unmarshalling)"은 객체를 변환하거나 전송 가능한 형식으로 변환하는 과정을 의미합니다. 자바에서는 주로 객체를 JSON, XML과 같은 형식으로 변환하는 데 사용되며, 이와 반대로 데이터를 다시 객체로 변환하는 과정도 포함됩니다.
마샬링(Marshalling)과 언마샬링(Unmarshalling) 개념
- 마샬링(Marshalling): 자바 객체를 JSON과 같은 형식으로 변환하는 과정입니다.
- 언마샬링(Unmarshalling): JSON 데이터를 자바 객체로 변환하는 과정입니다.
자바에서는 주로 Jackson이나 Gson 같은 라이브러리를 사용하여 객체를 JSON으로 변환(마샬링)하고, JSON을 객체로 변환(언마샬링)할 수 있습니다.
Jackson을 사용한 예시
먼저 Jackson 라이브러리를 사용하여 자바 객체를 JSON으로 변환(마샬링)하고, 다시 JSON을 자바 객체로 변환(언마샬링)하는 예를 보여드리겠습니다.
1. 자바 객체를 JSON으로 변환 (마샬링)
import com.fasterxml.jackson.databind.ObjectMapper;
public class MarshallingExample {
public static void main(String[] args) {
try {
// 객체 생성
Person person = new Person("John", 30);
// ObjectMapper 인스턴스 생성
ObjectMapper objectMapper = new ObjectMapper();
// 객체를 JSON으로 변환 (마샬링)
String jsonString = objectMapper.writeValueAsString(person);
System.out.println("마샬링된 JSON: " + jsonString);
} catch (Exception e) {
e.printStackTrace();
}
}
}
// Person 클래스
public class Person {
private String name;
private int age;
// 기본 생성자 (no-arg constructor)
public Person() {
}
// 매개변수가 있는 생성자
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// Getter와 Setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
출력:
마샬링된 JSON: {"name":"John","age":30}
2. JSON을 자바 객체로 변환 (언마샬링)
import com.fasterxml.jackson.databind.ObjectMapper;
public class UnmarshallingExample {
public static void main(String[] args) {
try {
// JSON 문자열
String jsonString = "{\"name\":\"John\",\"age\":30}";
// ObjectMapper 인스턴스 생성
ObjectMapper objectMapper = new ObjectMapper();
// JSON을 객체로 변환 (언마샬링)
Person person = objectMapper.readValue(jsonString, Person.class);
System.out.println("언마샬링된 객체: " + person.getName() + ", " + person.getAge());
} catch (Exception e) {
e.printStackTrace();
}
}
}
출력:
언마샬링된 객체: John, 30
'Study Memo' 카테고리의 다른 글
2024.09.10(화) { flush(), dirty, 스냅샷, 데이터베이스 정규화 } (0) | 2024.09.10 |
---|---|
2024.09.09(월) { @Transactional, RDBMS와 NoSQL, DDL, Validate } (0) | 2024.09.09 |
2024.09.05(목) { 자바기반&어노테이션기반 컨피규레이션 메타데이터 차이 } (0) | 2024.09.05 |
2024.09.04(수) { 네임스페이스, 자바빈의 기본속성 } (0) | 2024.09.04 |
2024.09.03(화) { 원자성, 바인딩, 모듈, perthis, 자바 에이전트 } (3) | 2024.09.03 |