1. entity의 이름문제
ERROR [ExceptionHandler] ER_TABLE_EXISTS_ERROR: Table 'boards' already exists
에러문만 읽었을 때는 이미 테이블이 존재한다는 말이라, 테이블이 겹치거나 수정중에 다른 이름의 테이블이 생성되어서 발생하는 에러라고 생각했다. 하지만 구글링 도중 깃허브 토픽에서 나와 같은 에러를 겪는 분을 발견했는데 그 답변 중에 엔티티 이름에 대문자가 있으면 안 된다는 것을 보고 이름을 바꿔서 다시 서버를 실행해보니 해결되었다.
주의할 점은 가장 앞의 문자뿐 아니라 카멜케이스도 허용되지 않는다는 점이다. 프로젝트 내용중 중간테이블이 있어 카멜케이스로 작성된 엔티티 이름도 존재했는데 역시 같은 에러가 발생하여 수정해주었다.
2. lexo에 대해 전달하려는 값이 복잡한 객체 형태이기 때문에 발생한 에러
ER_WRONG_VALUE_COUNT_ON_ROW: Column count doesn't match value count at row 1
lexoRank라는 라이브러리를 사용하여 배열의 순서를 조정하는 코드를 작성중이었는데 이런 에러가 발생했다. 에러문만 읽어서는 컬럼개수와 body값으로 넣어준 행의 개수가 달라서 발생하는 에러같았지만, 같았기에 꽤 혼란을 겪었다. 하지만 이것은 lexoRank 특성상 매우 긴 객체형태로 반환되고, 그 값이 과하게 길기때문에 생기는 문제였다. 이는 코드에 toString()을 붙여줌으로서 해결할 수 있었다.
"lexo": "0|hzzzzz:" 이런 형태의 lexoRank 값을 반환받을 수 있었다.
언뜻 보기에 해결하기 쉬울 에러 같았지만 에러문을 그대로 해석하면 안 된다는 교훈을 얻었다. 개발자는 세계에 많은 사람이 있고, 그들 역시 나와 비슷한 에러를 겪었을 것이기에 그들이 먼저 지나온 길을 조금 더 쉽게 갈 수 있겠다는 생각을 했다.
'개발일지' 카테고리의 다른 글
[error 해결] Cannot read properties of undefined (reading 'object') (1) | 2024.04.03 |
---|---|
[React] 리액트 설치 오류 error: A template was not provided. This is likely because you're using an outdated version of create-react-app. (0) | 2024.03.30 |
[KPT 회고] To-DUBU 칸반보드 프로젝트 (0) | 2024.03.25 |
S3 originalName 에러 (0) | 2024.03.25 |
Nest.js 프로젝트 중 에러 해결 (1) | 2024.03.15 |