Map보다 Dto를 사용해야 하는 이유

J_Eddy·2022년 5월 28일
0

💡 코드를 작성하면서 두가지 정보를 담아서 보내야 할 때 처음에 Map<String, Object>로 보냈습니다. 문득 Map과 Dto중에 어떤것이 효율적인지 궁금증이 생겨 개인적인 생각을 기록합니다.

Map

Key와 Value가 한쌍으로 값을 저장하는 컬렉션입니다. 예를 들어 “이름” = “조민수”, “직업” = “개발자” 이런식으로 각 value에 해당되는 key를 부여하여 저장.

DTO

계층 간의 데이터 교화을 하는 객체로, 보통 Getter, Setter로 구성됨

Map의 단점

1. 가독성이 떨어진다.

Map은 위에서 언급한 것 처럼, Key와 Value로 저장이된다. 이때 해당 값을 보고 한번에 어떤 타입인지 파악하기 어렵다. 만약 이 map이 이중, 그 이상으로 되어있다면 가독성은 더욱 떨어질 것이다.

2. 에러를 쉽게 유발 할 수 있다.

Map에 담겨진 값을 사용하려면 해당 key값을 통해 가져온다. 이 때 키의 값이 다르게 입력했을 때 에러를 쉽게 발견 하지 못할 수 있다.

추가적으로 Map은 보통 Map<String, Object> 형식으로 쓰이는데 이 때 Object에 int값이 들어가길 기대하지만 실수로 Long타입을 넣어도 컴파일 과정에서는 에러가 발생하지 않는다.

3. 불변성을 확보 할 수 없다.

불변성이란 내부의 상태가 변하지 않는 성질이다. 불변성을 확보해야 하는 이유는 다양하지만 개인적으로 가장 큰 이유는 협업을 진행하면서 값이 보장된다면 다른사람이 개발한 함수를 위험, 부담없이 사용할 수 있다. 반대로 내가 개발한 함수를 다른 사람이 부담없이 사용할 수 있다.

하지마 Map은 이러한 불변성을 확보 하기 어렵다. 코드 작성 시 다른 사람이 잘못된 값을 put해버리면 코드는 엉망이 된다.

profile
논리적으로 사고하고 해결하는 것을 좋아하는 개발자입니다.

0개의 댓글