인프런 커뮤니티 질문&답변
Json 컬럼의 객체 맵핑
작성
·
27
0
영한님, 안녕하세요.
또 좋은 강의로 다시 만나뵙게 되었네요.
Spring, Java 로 강의를 듣다가 순수 DB 만 설명을 듣다보니 다소 적응이 되지 않는 감이 있는데요 ㅎ
카테고리의 비정형 속성을 관리하기 위해 Json 설계하는 부분을 설명해주셨는데 이런 경우, Java 에서는 보통 어떤 식으로 객체와 맵핑을 하는지요? 각 카테고리별로 도메인 객체를 분리해서 각각 연동을 하는 식인지, 아니면 단순히 Map 으로 활용하는지 궁금합니다.
저장할 때도 객체를 그대로 저장하면 되기 때문에 편리하다고 하셨는데 각 카테고리별로 별도 객체가 있고 이를 개별 저장하는 형태를 말씀하시는 것인지 질문드립니다.
답변 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편에서 비정형 데이터의 설계 방법에 대해 자세히 다루고 있을 가능성이 큽니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




