데이타베이스에서 엑셀 추출 팁

infoqoch·2021년 10월 16일
0

Mysql, MariaDB

목록 보기
5/5

나는 엑셀이 싫다.

  • 엑셀과 자바 중 누가 세상을 더 바꿨을까? 아마 당연히 엑셀일테다. 쉽고 간단하고 그러나 강력하다. 자바와 파이썬 자바스크립트 중 뭐가 제일 좋냐라고 싸워봤자 그것들은 다만 언어 중 하나일 뿐이다.
  • 그런데 개발자 입장에서 엑셀이 짜증나는 경우가 있다. 이건 내가 '자바' 개발자라서 그럴 수 있는데...

데이터 타입의 문제

  • 예를 들면 "1e100" 란 String 이 있다고 하자. 이를 엑셀에 집어 넣으면? 1e+1 이 된다. 왜? 스프링은 타입을 자기 멋대로 변경하기 때문이다.
  • 01012341234 라는 전화번호가 있다. 엑셀에 집어 넣는다. 어떻게 될까? 1012341234 이 된다. (ㅅㅂ....) 왜? 숫자에서 가장 앞자리의 0은 의미가 없으니까.
  • 이것 이외에 날짜 변경 등 매우 다양한 곳에서 데이타 타입과 관련한 문제가 발생한다. 이럴 때마다 진짜 화가 난다.
  • 내가 자바를 사랑하는 이유 중 하나는 엄격함이다. int v = 100; 은 언제나 숫자이다. "100"과 결코 같지 않다. 자바 11에서 var 가 생겼다고 하지만, 그런 걸 쓸 일은 결코 없으리라.
  • 나의 경우 데이타를 추출할 일이 많고, 처음 할 때는 가장 가벼운 csv 를 사용했다. 그런데 위의 이유로 데이타가 다 깨져버린 일이 있다. 아, 정말로 최악이다.

데이타 타입의 해결

  • 나는 dbeaver 를 사용 중이며, 엑셀 추출 팁은 다음과 같다. (다른 설정을 통한 해결책이 있을 수 있겠지만, 엑셀과 dbeaver를 건드리지 않는 순정 상태에서 가장 쉬운 방법은 아래라고 생각한다.)
  • 순수한 csv 파일을 절대 사용하지 않는다. 엑셀로 이를 여는 순간 끝이다.
  • 나의 경우 txt 파일로 추출한다. 그리고 엑셀에서 파워쿼리로 추출한다. 이 경우 모든 데이타타입은 String 으로 나온다.
  • 만약 int로 사용하고 싶으면 =int({대상}) 으로 한다. 숫자 형태로 바뀐다.
profile
JAVA web developer

0개의 댓글