강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Hyo Kyun Lee님의 프로필 이미지
Hyo Kyun Lee

작성한 질문수

죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.

2장. 작전1: FlatFileItemReader (시스템의 마지막 기록을 읽어내다 ☠️)

2강 작전1. csv/fixedLength 윈도우 실행 관련 유의사항 제보

작성

·

61

·

수정됨

1

현재 윈도우 환경에서 학습 중이어서 형님께서 싫어하실 수 있겠지만, 꽤나 흥미로운 것을 발견해서 형님께(강의내용에 도움이 되실 수도 있을까 하여) 제보드립니다!

참고로 저의 경우 IntelliJ의 powershell에서 echo를 하고 csv/txt내용수정은 IntelliJ에서 직접 하였습니다.

1) csv 실행시 오류
최초 실행시 파싱불가 오류가 발생하였는데, csv파일에서 문제점은 없을 것으로 판단하여 프로젝트의 인코딩을 utf-8에서 EUC-KR로 변경해주었습니다. 이러면 정상 작동하였습니다.

{36F91887-83B2-4C6E-81D1-95598A514A99}.png


2) fixedLength 실행시 오류
역시 최초 실행시 파싱불가 오류가 발생하였습니다.

로그를 살펴보았을때

 

{BB287F25-F29E-4767-9D4F-54A09AC5350A}.png

 

인코딩이 잘못되었을 것으로 판단하여 프로젝트의 인코딩 설정과 해당 txt파일의 인코딩 설정을 모두 utf-8로 바꿔주었습니다(utf-16/utf-16LE/utf-16BE 모두 오류 발생, 특히 저 인코딩 문제는 utf-8에서만 유일하게 발생하지 않아서 utf-8 인코딩만 가능한 것으로 보임).

이래도 파싱문제가 발생하였는데,


.columns(new Range[]{ new Range(1, 8), // errorId: ERR001 + 2 new Range(9, 29), // errorDateTime: 19 + 2 new Range(30, 38), // severity: CRITICAL/FATAL + padding new Range(39, 44), // processId: 1234 + 2 new Range(45, 66) // errorMessage: msg + \n })

 

severity 부분을 30 ~ 39 가 아닌 30 ~ 38로 바꿔주었고

마지막 errorMessage 부분을 46 ~ 66이 아닌 45 ~ 66으로 바꿔주었습니다(21자리 -> 22자리)

echo로 공백을 입력해주었지만 실제 파일을 보았을때는 공백이 먹히지 않았던 것 같습니다. 그래서 아래와 같이 공백대신 문자열 1개를 그냥 입력해주었습니다.

 

{DD100314-8AA9-40B0-8E8F-74F80A91FDA1}.png

 

echo를 통한 개행이 먹히지 않아 위와 같이 intellij로 txt파일을 변경해주었습니다.

마지막 문자는 DETECT + 공백 + 개행 -> DETECTS + 개행으로 공백을 제거해주었습니다.

 

{B2152AB8-F5A5-4185-95F2-98EBD490D695}.png

 

이렇게 했을때 최종적으로 빌드성공하였습니다.

저 Range범위, 특히 severity 범위를 왜 저렇게 구성해야 하는지, 이게 윈도우 실행 환경만 이런건지, 제 환경에서만 이런 문제가 발생하는건지..아직도 모르겠지만..

 

형님께 제보를 해드리면 좋을 것 같아서 남겨봅니다!

답변 1

1

KILL-9님의 프로필 이미지
KILL-9
지식공유자

아니?? 고맙다
효균형 진짜 원인을
주말 중 찾아보겠다

버그 제보 고맙다 💀💀
Hyo Kyun Lee님의 프로필 이미지
Hyo Kyun Lee
질문자

형님 몇가지 정정해드립니다.

1) csv
-> 최초 생성시 echo 생성
-> 이 파일을 다른 이름으로 저장해서 .csv(utf-8)로 형식 변경
-> 이를 읽을때 EUC-KR/utf-8 형태로 인코딩 바꿔서 읽으면 됨

2) .txt
-> 최초 생성시 echo 생성
-> 이 파일도 마찬가지로 다른 이름으로 저장해서 utf-8 형식 변경(확장자는.txt 그대로)
-> 이를 읽을때 utf-8형태로 인코딩 바꿔서 읽으면 됨(단 고정길이의 경우 column 길이를 수정해주어야 합니다)

 

감기조심하세요 형

KILL-9님의 프로필 이미지
KILL-9
지식공유자

고맙다 형 
형도 감기조심하라
나는 오늘 패딩 샀다 💀💀
Hyo Kyun Lee님의 프로필 이미지
Hyo Kyun Lee

작성한 질문수

질문하기