가계부를 만들면서 디바이스에서 입력한 정보를 백서비스로 넘기고 DB에 데이터를 저장하려고 했는데 

이런 오류가 발생했다.

 

category의 밸류가 잘못된 것 같은데.. Vo의 category 자료형이나 데이터베이스의 컬럼을 확인해봤는데 String과 VARCHAR로 문제없이 설정이 돼있었고 디버깅을 통해 넘어온 값을 봐도 정상적으로 String 값을 가져오고 있었다.

 

그래서 무슨 오류인가 하니 데이터베이스의 문자셋이 잘못 성절돼있어 내가 넘겨준 값을 제대로 확인하지 못하는 상태였다.

 

저는 Amazon의 RDS 서비스를 이용하고 있었고 생성된 데이터베이스를 확인해봤더니

위 사진처럼 swedish의 문자셋으로 설정이 돼있었고 테이블이 생성되면서 데이터베이스의 기본설정을 따라 swedish로 설정되어 내가 보낸 한글을 읽지 못해 발생한 오류였다.

 

해결방법

1. 관리도구를 이용

저는 heidiSQL로 DB에 접속중이었어서 해당되는 DB의 문자셋을 우리가 사용하는 utf8mb4_unicode_ci로 변경했습니다.

변경 후에 생성된 테이블의 설정값 도 확인해주시고 변경해주시면 됩니다.

 

2. 커맨드를 이용

리눅스 시스템이나 서버에 직접 접속하신 분들은 커맨드를 통해 수정해줘야 합니다.

 

2-1. DB의 문자셋 변경

ALTER DATABASE "DB 이름" CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

2-2. 테이블의 문자셋 변경

ALTER TABLE "테이블" CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

2-3. 특정 컬럼의 문자셋 변경

ALTER TABLE "테이블" MODIFY "컬럼" VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

문자 셋 변경 후 정상적으로 데이터 등록 확인!

 

안녕하세요~

저번에 가계부 프로젝트를 한다고 했는데 뭐 중간에 로스트아크 프로젝트를 약간 변경하기도 하고 이것저것 하다보니 시간이 꽤 지났습니다.

 

그래도 틈틈이 만들고는 있었기에 중간점검 겸 내용을 작성해보겠습니다.

 

우선은 flutter를 통해서 앱 화면을 만들고 있었구요 

현재까지 만들어진 화면입니다. 여기서 제 지출/수입 내역을 등록해서 화면으로 확인해보는것이 첫 번째 목표입니다.

그리고 차차 사용 통계, 자주 구매한 물건에 대한 물가 비교를 해보는 페이지까지 만들어보려고 합니다.

 

이번 프로젝트는 프론트 영역의 flutter + 백서비스의 스프링부트 + MariaDB를 사용했는데요

 

보통 이런 앱의 경우 firebase나 nosql 같은 DB서비스를 사용해서 만든다고 하는데 제가 다음으로 만들려고 하는 프로젝트가 MSA로 제가 만든 서비스들을 묶어보려고 해서 기존에 많이 사용하기도 했고 스프링으로 백서비스를 구축해서 해보려고 합니다. 

 

프로젝트 진행하면서 중간중간 오류내역이라던지 진행상황 공유해보겠습니다. 감사합니다~

안녕하세요~

이번에 진행할 프로젝트는 가계부 입니다!

 

이미 가계부는 다양한 어플들이 많지만! 제가 원하는 기능들만 추가하고 좀 더 간단하게 보기 위해서 가계부 프로젝트를 하려고 합니다. 이번에는 Flutter라는 프레임워크를 이용해서 프론트 화면구성을 해보고 그 다음에는 스프링으로 백 서버를 만들어서 해보겠습니다.

 

최종적으로는 앱을 출시? 까지는 모르겠지만 만들어서 저라도 써볼려구요 ㅎ ㅎ

 

시작하겠습니다~

+ Recent posts