RPA에서 컬럼을 동적으로 가져가야 하는 경우들이 생긴다.

번거롭지만 그리 어렵지 않게 가능하고, 컬럼 순서 변경 등에 자동으로 대응할 수 있다.

따로 만들어둔 모듈없이도 BalaReva의 Excel이나 EasyExcel을 살펴보면 Index만 줘도, 컬럼의 알파벳명을 가져올 수 있고

변수에 담아 할당하면 된다.

다만 RAW DATA, MASTER간의 동적인 컬럼 비교가 되는 경우 다음과 같은 이슈가 생긴다.

1. 비교로직 최적화 필요

- 비교할 컬럼이 몇 개 없다면 퍼포먼스에 큰 영향이 없을 수 있겠지만, 단순히 개발하면 N*N 로직이 나오기 때문에

 퍼포먼스 차이가 클 수 있다.

- 그나마 간단히 개발하면 Parsing중 해당 컬럼이 있는 경우 Continue 하게끔 개발해 그 절반정도(52%)의 경우의 수를 쓸 순 있다. [index만큼 Summation하기 때문에]

- 문제는 그렇게 비교할 때 마스터와 Raw Data의 컬럼명이 다르게 매칭된다면 매칭 마스터가 별도로 필요하다.

- 그럼 비교가 Raw Data - Raw Data 컬럼 마스터 - Master 순으로 비교되며 더더욱 퍼포먼스에 지장을 줄 가능성이 커진다.

2. 정합성 책임의 전가

- 1번 로직이 어떻게든 더 최적화되어 성공했다 하더라도 하나의 전제 조건이 생기게 된다. 실제 Raw Data의 컬럼이 변경되더라도 Master가 변경될 필요가 없다는 보장이 필요하다는 점이다.

- 만약 Raw Data가 바뀌었고 그에 맞춰 Master도 수정해 줘야할 필요가 생길 수 있다면, RPA가 아무리 컬럼을 맞춰준들 아침에 깨워줬더니 왜 늦게 깨웠냐는 식의 리액션을 받을 수도 있다.

- 심지어 이렇게 하더라도 결국 사람의 판단이 들어가는 컬럼 마스터와 Master 파일을 모두 체크하거나 갈아야 한다.

- 다시 말해, 기껏 개발했더니 에러가 실제 나야될 부분을 막는 행위가 될 수 있다.

 

따라서 단순 컬럼명이 아닌 컬럼명을 비교하며 동적으로 가져가는 경우는 웬만해선 안 받는 것이 좋다.

그런 류 로직이 필요하다면 처음와 끝만 비교하거나, 주요 컬럼만 비교하는 로직으로 협의하기를 추천한다.

+ Recent posts