인프런 커뮤니티 질문&답변

김희수님의 프로필 이미지
김희수

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

셀렉트 박스

선생님 리액트로 만들어서 사용할 때 ModelAttribute 사용법이 궁금합니다

작성

·

779

0

제가 리액트 공부를 전에 해서 같이 사용해서 테스트 해보려고 하는데 ModelAttribute 개념에 대해 아직 제대로 숙달이 되지 않아, 만약에 리액트에서 사용하려면 어떻게 해야하는지 감이 안잡혀서 그래서 인터넷을 찾아서 하는중인데..

@GetMapping(value = "/add",   produces = MediaType.APPLICATION_JSON_VALUE + ";charset=UTF-8")
@ResponseBody
 public Map<String, String> getRegions(){
     Map<String, String> regions  = new LinkedHashMap<>(); //순서가 보장이 안됨
     regions.put("SEOUL", "서울");
     regions.put("BUSAN", "부산");
     regions.put("JUJE", "제주");
     return regions;
 }

 @GetMapping(value = "")
 @ResponseBody
 public List<DeliveryCode> deliveryCodes(){
    List<DeliveryCode> deliveryCodes = new ArrayList<>();
    deliveryCodes.add(new DeliveryCode("FAST", "빠른 배송"));
    deliveryCodes.add(new DeliveryCode("NORMAL", "일반 배송"));
    deliveryCodes.add(new DeliveryCode("SLOW", "느린 배송"));
    return deliveryCodes;
} 
이런 식으로 하고 있습니다. ModelAttribute 리액트에서 어떻게 사용할 수 있을까요?

답변 1

0

안녕하세요, 김희수 님. 공식 서포터즈 y2gcoder 입니다.

ModelAttribute는 Json과 같이 @RequestBody나 @ResponseBody를 사용하는 Rest API 구조에서는 적합하지 않은 것 같습니다. 위의 regions 와 같은 경우에는 enum을 통해 좀 더 리팩토링해볼 수 있을 것 같습니다.
해당 링크(클릭)을 참고하셔서 좀 더 개선해보시는 것도 좋을 것 같습니다!

감사합니다.

김희수님의 프로필 이미지
김희수
질문자

그럼 spring boot와 react랑 같이 사용하는건 적합하지 않은건가요?

그렇다면 어떤 프레임워크를 사용해야하나요?

제가 오해하도록 답변을 드린 것 같습니다.

프론트엔드 단이 따로 존재하고, Spring Boot로는 REST API 서버로 만든다고 하시면 ModelAttribute를 사용해서 Return하시는 게 아니라 Json으로 응답을 내보내서 사용하셔야 합니다. 이는 MVC1편 강의에서 ResponseBody를 사용하는 부분을 참고하시면 될 것 같습니다 :)

김희수님의 프로필 이미지
김희수

작성한 질문수

질문하기