Map 이 아닌 객체를 사용하는 이유
우선 Map을 사용하는 경우를 알아야 하니 한번 말 들어 보겠습니다
MapTest 코드
@GetMapping("MapTest")
public Map<String ,String> maptest(RamiDTO ramiDTO){
Map<String,String> test = new HashMap<>();
test.put("test1" , "야야야");
test.put("test2" , "롸롸롸");
test.put("test3",ramiDTO.getUser_id());
return test;
}
결과
고민해볼 것
지금까지는 컨트롤러에서 값을 전할때 객체 형태 즉 DTO를 사용해서 전달하는 방식을 주로 사용했다 이런 경우가 효율적이라고 배워서 그렇게만 사용했는데 Map의 형태를 서비스단에서 간혹 사용하는 경우가 있고 컨트롤러에서도 쓰는 경우가 있는 거 같아 테스트 코드를 작성해보면 자료를 찾아보았다
Map 이 아닌 객체를 사용하는 이유
- Map 을 사용하는 경우 @Validate를 사용하기 어렵다
- Map을 사용하면 클래스를 만들지 않아서 편리한 점이 있지만 어떤 데이터가 들어오는지 모르니 유지보수하기가 어렵다 <실행해보지 않으면 실제로 어떤 데이터가 들어오는지 파악하기 어렵다>
- 객체로 만들었다면 그 객체를 확인해보면 어떤 데이터가 들어오는지 알 수 있지만 Map은 그것이 어렵다
- 객체로 만들었다면 클라이언트가 잘못된 값을 보내도 손쉽게 파악 할 수 있다
- 데이터마다 DTO를 만들만큼 복잡하지 않고 단순히 String으로 Key : value형태라면 굳이 DTO를 만들지 않고 Map으로 간단히 받을 수 있다 (하지만 프로젝트가 커질수록 문제가 될 수 있다)
결론은 객체를 사용하는 것이 안전하다 그러니 객체를 사용하자 인 것 같습니다 그래도 궁금한 것이 해결되니 속이 시원~ 합니다
'고민해 보기' 카테고리의 다른 글
JPA One To Many 그리고 N+1 (0) | 2022.07.18 |
---|