[Java] 윈도우 설정으로 CSV 파일 ,(콤마) 말고 다른 구분자로 변경하기!

 

 

 

오늘 포스팅할 내용은 프로젝트 중에 발견한 애로사항과 그 해결 과정을 공유해서 같은 문제를 겪는 사람들에게 도움이 되고자 하는 마음에 올리는 포스팅이다!

 

바로 본론으로 들어가겠다.

 

 

 

CSV 파일은 , (콤마)로 컬럼들을 구분하도록 되어있는 파일이다. 하지만 내용에 ',' 이 들어있으면 파싱 시 맞지 않는 컬럼에 데이터가 이상하게 쪼개져 들어가게 된다.

 

나는 이번 프로젝트 진행 중,  CSV 파일의 모든 데이터를 DB에 넣는 작업을 거쳐야 했다.

 

"CSV는 당연히 콤마를 기준으로 데이터들이 분류되어있는 파일이니까 split(",") 를 하면 row에서 column들이 알아서 분리되겠지?" 라는 생각에 로직을 이대로 작성했고 문제는 여기서 발생했다.

 

컬럼 내용에 ,(콤마) 가 들어있었다

 

컬럼의 내용 중에 ,(콤마) 를 포함한 데이터가 많이 있었고, 그래서 데이터가 엉망으로 저장되었다.

 

엉망으로 저장된 데이터

 

이런 식으로 말도 안 되는 값을 가진 컬럼들이 나타나 버렸다..

 

문제를 해결하기 위해 고민하던 중 해결책을 떠올렸다. CSV 파일의 구분자를 바꾸는 것이었다.

 

지금부터 CSV 파일의 구분자 변경법에 대해 알아보자!

 

제어판 - 국가 또는 지역

 

제어판의 국가 또는 지역 설정으로 들어간다.

 

추가 설정

 

그리고 구분자 변경을 위해 추가 설정 버튼을 눌러준다.

 

숫자 - 목록 구분 기호 변경

 

목록 구분 기호는 CSV 파일의 구분자이고 원래 ',' 로 되어있는데 우리는 '|' 나 '@' 중 마음에 드는 대로 사용하면 된다.

 

변경 후에 확인을 눌러준다.

 

(설명을 위해 찍은 캡처본에는 '|' 를 썼지만 내 컴퓨터에서는 인식을 잘 못해서 추후에 '@' 로 변경하였다.)

 

엑셀 - 내보내기

 

설정이 완료되었으면 CSV 엑셀 파일에 들어가서 '파일 - 내보내기' 버튼을 눌러준다.

 

파일 형식 변경

 

그럼 이런 창이 나타나는데 '파일 형식 변경' 버튼을 누른 뒤에

 

CSV (쉼표로 분리)

 

CSV (쉼표로 분리) 를 눌러주면 된다. 만약 이렇게 했는데 DB에서 알 수 없는 외계어가 나타나면서 인식을 잘 못한다면 인코딩 문제이므로

 

바로 밑의 다른 파일 형식으로 저장을 누르고 CSV UTF8 (쉼표로 분리) 를 선택해주면 해결할 수 있다.

 

저장된 파일

 

이제 쉼표가 아닌 '|' 가 구분자로 사용된 CSV 파일이 되었다.

 

Before Code

 

마지막으로 원래 ,(콤마) 로 분리되도록 설정해놓았던 코드를 변경해준다.

 

After Code

 

자신이 변경한 구분자로 split 부분을 변경해주면 끝이다. 이제 데이터를 저장해 보면 문제가 잘 해결되었다는 것을 알 수 있다. 

 

데이터가 제대로 들어간 모습

 

구분자를 ',' 에서 '|' 로 변경하니 DB 저장이 정상적으로 수행되었다. 

 

 

 

오늘은 이렇게 CSV 파일 ,(콤마) 말고 다른 구분자로 변경하는 방법에 대해 알아보았다.

 

같은 문제를 겪고 있는 사람들에게 도움이 되었으면 좋겠고 다음에도 좋은 포스팅으로 찾아뵙겠습니다!

728x90