ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Daily #3, node - mysql2 오류 해결
    Tech/Daily 2021. 7. 4. 00:08
    반응형

    오랜만에 사이드 프로젝트를 다시 진행하면서 개발에 참여하고 있습니다. 다시 개발을 해보면서 느끼는거는, 정말 상상도 못 한 오류들이 나타난다는 겁니다. 물론, 베이스가 되는 지식이 부족하기도 한 것이 크겠지만(90%?), 전공자도 아니고, 사내에서도 직접 개발하는 것도 아니어서 뭐. 쩝.

     

    그래서 개발을 하다보면, 기하급수적으로 브라우저의 탭이 늘어나는데, 매번 이렇게 찾아볼게 아니라 개발일지라도 남겨서 몰랐던 것들은 내가 정리한 글을 통해서, 그리고 적으면서 조금이라도 더 오래 기억하자는 느낌으로 글으 써 봅니다. 

    개발하다 당장 위에 떠 있는 브라우저 캡쳐...

    현재 RN으로 개발을 하고 있는데, [TypeError: Network request failed] 에러가 자꾸 나와서 이유를 살펴보니, 백엔드 쪽에 물려있는 MySQL에서의 이슈였다. 정말 생각도 못 한 이유였다.

     

    오류는, ERROR 1054 (42S22): Unknown column 'TEST' in 'field list' 라는 내용의 오류였는데. TEST라는 칼럼이 없다는 것이었다. 사실 나는 TEST라는 칼럼이라기보다는 문자열 자체를 전달해준 것이었는데, 정확히는 TEST라는 변수를 전달하였는데 MySQL에서는 이를 칼럼명으로 받아들여서 문제가 생긴거였다. 따라서, MySQL에서는 quote로 문자열을 감싸서 보내줄 것을 이야기 한다. 다음의 참고자료를 보자. 단순히 변수를 전달했다면 상관없었겠지만, backtick 안에 변수를 할당한 것이 문제였고, 문자열은 quote를 감싸야한다는 것을 몰라서 생긴 오류였다.

     

    https://stackoverflow.com/questions/1346209/unknown-column-in-field-list-error-on-mysql-update-query

     

    Unknown column in 'field list' error on MySQL Update query

    I keep getting MySQL error #1054, when trying to perform this update query: UPDATE MASTER_USER_PROFILE, TRAN_USER_BRANCH SET MASTER_USER_PROFILE.fellow=`y` WHERE MASTER_USER_PROFILE.USER_ID =

    stackoverflow.com

     

    추가로, VARCHAR와 CHAR 타입에 대한 것도 알게 되었는데, VARCHAR은 가변길이의 공간을 가진 문자열 타입이고, CHAR은 고정길이의 공간을 가진 문자열 타입이다. "TEST"라는 문자열을 각각 CHAR(10), VARCHAR(10)에 저장하면, CHAR에는 TEST라는 4글자 길이의 문자열과 남는 6글자의 길이에는 공백으로 채우게 된다. 길이가 무조건 10은 사용되어 저장된다는 것이다. VARCHAR에는 4글자만 저장되고, 추가로 데이터의 길이 정보도 저장된다(어디서부터 어디까지가 해당 데이터인지 파악하기 위해 필요함).

     

    위의 사실만 놓고보면, 무조건 VARCHAR을 써야된다 생각하지만, 고정된 길이의 CHAR을 찾아오는 속도가 더 빠르기도 하고, VARCHAR이 생성되면 데이터 길이 정보를 만들어 내기 위한 추가적인 Logic이 생기기 때문에 약간의 부하가 올 수도 있다. 항상 하는 말이지만, 소수가 사용하는 서비스면 어떤 것을 사용해도 상관없지만 정말 대규모의 서비스라면 이런 추가적인 Logic 마저도 크리티컬 할 수 있기 때문이다.

    반응형

    'Tech > Daily' 카테고리의 다른 글

    Daily #1, ES6 문법  (0) 2021.07.16
    Daily #2, react - setState  (0) 2021.07.14

    댓글

Designed by Tistory.