Json 컬럼의 객체 맵핑
66
75 câu hỏi đã được viết
영한님, 안녕하세요.
또 좋은 강의로 다시 만나뵙게 되었네요.
Spring, Java 로 강의를 듣다가 순수 DB 만 설명을 듣다보니 다소 적응이 되지 않는 감이 있는데요 ㅎ
카테고리의 비정형 속성을 관리하기 위해 Json 설계하는 부분을 설명해주셨는데 이런 경우, Java 에서는 보통 어떤 식으로 객체와 맵핑을 하는지요? 각 카테고리별로 도메인 객체를 분리해서 각각 연동을 하는 식인지, 아니면 단순히 Map 으로 활용하는지 궁금합니다.
저장할 때도 객체를 그대로 저장하면 되기 때문에 편리하다고 하셨는데 각 카테고리별로 별도 객체가 있고 이를 개별 저장하는 형태를 말씀하시는 것인지 질문드립니다.
Câu trả lời 1
0
안녕하세요, 인프런 AI 인턴입니다. 아리마님.
JSON 데이터를 데이터베이스에 저장할 때와 이를 Java 객체로 매핑하는 방법에 대한 질문을 주셨네요.
JSON과 Java 객체 매핑: Java에서 JSON 데이터를 객체와 매핑할 때 일반적으로 두 가지 방법을 사용합니다.
- 객체로 매핑: JSON에 맞춘 Java 클래스를 생성한 후, 이를 JSON 파서 라이브러리(예: Jackson, Gson 등)를 사용하여 매핑합니다. 이렇게 하면 각 카테고리별로 도메인 객체가 존재하고, JSON 데이터가 직접적으로 매핑됩니다.
- Map으로 활용: JSON을 Map
구조로 저장하는 방법입니다. 유연하게 비정형 데이터를 다룰 수 있지만, 타입 안전성이 보장되지 않습니다.
- 객체로 매핑: JSON에 맞춘 Java 클래스를 생성한 후, 이를 JSON 파서 라이브러리(예: Jackson, Gson 등)를 사용하여 매핑합니다. 이렇게 하면 각 카테고리별로 도메인 객체가 존재하고, JSON 데이터가 직접적으로 매핑됩니다.
JSON 저장 후 매핑: JSON 데이터를 직접 데이터베이스에 저장할 수 있으며, Java에서는 이를 다시 객체로 매핑하여 사용할 수 있습니다. 이는 다형성을 중요시하는 경우에 유용하며, 각 카테고리별로 도메인 객체가 존재할 필요는 없습니다. 하지만, 상황에 따라 도메인 객체로 나눠야 할 때도 있으니 유연하게 접근하는 것이 중요합니다.
실무에서의 활용: 비정형 데이터의 경우 JSON 형태로 저장한 뒤, 필요시 Java Map으로 매핑하여 사용하는 경우도 많습니다. 이는 복잡한 도메인 모델보다는 유연성을 중시하는 접근 방식입니다.
관련하여 더 깊이 있는 설계 패턴이나 매핑 방법에 대한 내용은 영한님의 다른 강의를 참고하시면 도움이 될 것입니다. 특히 김영한의 실전 데이터베이스 - 설계 2편에서 비정형 데이터의 설계 방법에 대해 자세히 다루고 있을 가능성이 큽니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
다음 강의는 언제쯤 나올까요?
0
50
2
실제 FK제약조건을 설정하지 않는이유
0
58
2
히스토리 관련 질문
0
60
2
통계 데이터 수정 질문
1
65
2
공통 코드에서 Redis Pub/Sub은 최근 실무에서 쓰이진 않나요?
0
138
2
DELETE -> SELECT 질문 드립니다.
0
51
1
상속 관계 모델링의 적용 기준 질문
0
78
1
TTL 캐싱에 대한 질문
0
85
1
공통 코드 사용시 컬럼 타입 설정
0
89
1
history_creted_at과 valid_from
1
68
2
함수 기반 인덱스 (Function-Based Index)
0
74
1
추후 강의 질문있습니다
0
130
2
실무 통계 질문(고민) 드립니다..!
0
95
2
[Deprecated] 오타 제보
0
89
1
오타 제보
0
77
2
category_path 테이블에서 idx_descendant 인덱스를 생성하는 이유가 궁금합니다
0
97
2
물리적으로 외래 키 제약 조건을 설정하지 않을 때
0
101
1
`전체 행 스냅샷 이력 테이블`의 대상 테이블 칼럼 변경
1
90
1
common_code_detail의 code 변경 가능성
1
114
1
[해결책 - 코드값 분리] 중 orders(order_status) - common_code(code) 타입 불일치 제보
0
92
1
이미 문자열 타입인 컬럼을 캐스팅하는 이유
0
108
2
계층 구조 모델링 기타 방법들
0
110
1
섹션 9의 퀴즈가 영어로 출력되요.
0
108
2
섹션 6 SOFT DELETE) UNIQUE 제약 조건 + 가상 컬럼
0
83
1

