구분자로 데이터를 전송받을 때 데이터 유실

웹/MySQL, mybatis|2023. 10. 24. 18:30

 

어떤 프로그램 속에서 데이터를 구분자로 구분하여 하나의 String으로 받아 오는 부분이 있었다.

하지만 꽤 많은 데이터를 가져올 때 어느 시점부터 모든 데이터를 가져오지 못하고,

가져오지 못한 데이터는 undefined로 노출되는 문제가 있었다.

 

이름|이름|이름|이름|...|undefined|undefined 이런식으로.

 

https://jaejade.tistory.com/102

 

[MySQL] GROUP_CONCAT length 제한

작업 중에 group_concat을 활용하여 객체를 요소로 갖는 배열 형태를 반환하게끔 했는데 길이 제한 때문에 텍스트가 잘리는 이슈가 발생했다. 구글링 해보니 group_concat은 1024 문자가 기본값이라고

jaejade.tistory.com

 

이 문제때문이었음!

그래도 MySQL 설정을 바꾸기보단 애초에 그런 식으로 데이터를 가져오는 방식을 바꾸는 게 더 바람직하다.

 

0. 지금처럼 데이터베이스 설정에 따라 데이터가 유실될 수도 있고,

1. 중복 데이터 구분도 힘들고,

2. 받아 온 데이터를 다시 파싱해야 하고,

3. 데이터 내에 구분자가 포함됐을 때 데이터가 오염되며,

4. 구분자를 같이 보내야 하므로 불필요하게 데이터 크기가 증가하고,

5. 무엇보다 확장성이 떨어진다. 

 

해당 데이터 맞춤 DTO를 만들든가, 배열이나 List로 만드는 게 여러 모로 낫다.

댓글()