본문 바로가기
Backend/JAVA

[JAVA] 객체(Model) 를 통으로 화면에 찍기 (대체:@Data, .toString())

by 지구 2020. 5. 11.

이번에 신규 프로젝트를 작업하면서,
화면을 작업하다가 객체에 내가 원하는 데이터가 잘 있는지 디버깅해보고 싶어서 사용했던 방법을 공유하고자 글을 작성한다.

 

보통 화면에서 객체 디버깅을 한다면,
1. lombok 의 훌륭한 @Data 어노테이션을 사용하거나,
2. .toString() 메소드를 오버라이딩으로
확인하면 되겠지만, 이 글에선 두 방법 모두 사용하지 않고 Gson 으로 디버깅하였다.

=== TMI
개인적으로 @Data 어노테이션 남발을 금지하고, .toString() 오버라이딩은 지저분해보이고 별로 선호하지 않기 때문에..

 

핵심은 GsonBuilder .setPrettyPrinting() :)

/**
 * 화면 출력용 컨트롤러 (임시) todo: 테스트 끝나면 제거
 */
@PostMapping("/gsonTest")
@ResponseBody
@Deprecated
public ModelAndView gsonTest(@ModelAttribute TempModel tempModel) {
    // 로그로 확인
    System.out.println(tempModel); //-> 이 경우 제대로 찍히지 않는다.

    // 화면에서 확인
    Gson gson = new GsonBuilder().setPrettyPrinting().create();
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setStatus(HttpStatus.OK);
    modelAndView.setViewName("test/gson);
    modelAndView.addObject("tempModelToGson", gson.toJson(tempModel));
    return modelAndView;
}
반응형

댓글