brunch

You can make anything
by writing

C.S.Lewis

by 번개거북 Jan 26. 2023

업무 효율화 : 파일 이름 변경/취합

하루 종일 반복 작업은 싫어요. feat 구글시트

혹시 오늘 ctrl+c/v 몇 번 하셨나요?




일을 하다보면 반복적인 일을 해야 할 때가 있습니다. 그런 일들이 가끔 생긴다면 빠르게 손을 움직이는 것으로도 충분히 결과를 잘 얻었다고 할 수 있을 것입니다. 그런데 수십 ~ 수백번을 반복해서 어제 했던 일을 오늘도 하고 있다면 과연 일을 잘 하고 있는지 생각을 하게 될 것입니다.





최근에 같이 일을 하시는 분 중에 본업과는 다른 단순 작업을 추가로 하는 해야만 하는 상황이 생기면서 시간을 많이 쓰는 일이 있었습니다. 관련해서 개발쪽에서 지원을 하기로 아름답게 논의는 되었지만, 관련 실무 상황이 아무래도 혼선이 있을 부분이 보여서 오지랖을 발휘해 제가 도움을 드리기로 하였습니다.


여러 이유중에 두 가지만 간단히 요약하자면, 첫번째는 자동화 할 수 없는 영역이 존재한다는 것과 두번째는 개발자들이 맥을 가지고 작업을 하는데 비해 지원해야 할 업무는 윈도우에서 파일을 다루는 일에 도움을 드려야 하는 상황이 보였다는 것입니다. 물론 저 역시 맥을 주로 사용하지만 맥/윈도우 상관없이 할 수 있는 일과, 윈도우에서 일을 하시는 분들의 업무를 지원해야 하는 영역의 차이에 대한 경험이 있었던 제가 조금 더 도움이 될 것이라 생각했고 결과적으로 '적정 기술 도입'의 관점에서 적절한 시도였습니다^^


추가로 말씀을 드리자면 관련 업무는 임시적인 형태의 처리로 진행하는 것이 맞는 접근이었습니다. 자주 발생하는 일이라면 시간이 좀 걸리더라도 정상적인 백오피스 개발 결과물을 만드는 것이 맞겠지만, 총 2000개 미만의 단에에 대해서만 처리를 하고 이후에는 대규모로 작업을 할 일이 없는 '임시적인' 업무를 위해, '수십 시간'의 수작업 대신에 '몇 시간의 준비 작업'과 '아주 짧은 수행 시간'으로 '실수가 없이' 진행을 하고자 하는 목표가 명확한 일이었죠.




작업에 대한 내용 설명 이전에 잠시 윈도우와 맥의 차이에 대한 예시를 하나 보여드리려고 합니다. 아래의 그림처럼 윈도우에서 파일 목록을 보는 기본 명령어인 dir 의 결과와 맥에서 ls 명령어를 사용한 결과는 동일한 것처럼 보입니다. 구글시트에 붙여넣기를 해봐도 사실 똑같게 보여지죠.


< 눈으로 볼 때는 잘 구별이 되지 않는 윈도우와 맥의 차이 >


하지만 위의 시트의 결과물을 윈도우의 메모장에서 각각 복사해서 붙여넣기를 해보면 아래처럼 다른 결과가 나타날 수도 있습니다. 여러가지 변형을 고려해 볼 수도 있겠지만, 기본적으로 다른 결과물이 될 수 있다는 정도의 이해는 필요합니다.


< 눈으로 같아 보이지만 다른 결과일 수 있다 >




이제 실무자의 업무 파악을 해봅시다. 실제로는 자리 옆으로 가서 현재 하고 있는 일을 눈으로 보면서 확인해 보고, 필요하다면 질문을 하면서 할 수 있는 일과 그렇지 않은 일, 그리고 조금 변형을 하면 더 편하게 할 수 있는 일 등으로 정리를 해봅니다.


첫번째로 정리된 일은 해야만 하는 일에 대해서 구분을 한 내용입니다. 갑자기 일 자체가 필요없는 상황이면 오히려 좋겠지만 아래의 일은 영어 전문가로서의 역할을 활용해서 해야만 하는 업무였습니다.



여기까지는 전문가의 검수의 영역이므로 그대로 유지를 해야 하는 업무였습니다. 다만 자동화를 위해 선별 여부 기록 방법을 색깔로 표시하는 대신에 특정 문자로 표시하도록 하는 것이 가능한지를 여쭤봐서 '-'(마이너스) 기호로 표기하는 것으로 얘기가 되었습니다.




두번째 작업은 이후 작업을 위한 준비였는데요, 차후 검수를 통과한 이미지들을 대량으로 등록하기 위해 파일명이 이미 등록되어 있는 단어에 대한 key값을 포함해야 하는 조건이 있었습니다. 그래서 각 단어를 백오피스에 입력해서 key 값을 찾은 후 복사해서 시트에 기록하는 작업을 하고 계셨습니다.



해당 작업은 꽤 수월하게 해결할 수 있었는데요, 백오피스에서 전체 단어에 대한 정보를 csv 형태로 export 하는 기능을 이용해서 시트안에서 한번에 모든 단어의 부가 정보를 구성할 수 있었습니다. 물론 목록 자체가 변경이 되면 다시 붙여넣는 작업을 해야 하지만, 자주 변경이 되는 내용이 아니므로 한번만 해두고 활용할 수 있는 형태였습니다.


< cms.voca 라는 이름의 시트에 export 한 결과물 붙여넣기 >


위와 같이 붙여넣은 자료를 기준으로 참조를 하기 위한 시트를 하나 더 만들어야 했는데요, 같은 단어라도 관리를 하면서 추가적으로 등록이 되는 경우가 있었는데 사용될 key값은 날짜 기준으로 최신인 것을 선택하여야 하는 이슈가 있었습니다.


이 부분은 자세한 설명 대신에 실제 사용한 function 및 query 를 보여 드리는 것으로 대신하겠습니다. 해당 시트는 voca.ref 라는 이름으로 만들고 다른 곳에서 참조하는 용도로 만들었습니다.


< voca.ref / A1 >
< voca.ref / E1 >
< voca.ref / F2 >




이후 작업 이전에 필요한 것은 실제 검수 작업인데요, 실무자분이 작성하신 시트의 결과는 아래와 같습니다.


:: '-'(마이너스)로 표시한 것이 검수를 통과한 이미지

< '통과한 사진' 시트 >




이후 작업은 미리 준비되었던 시트와 실제 붙여넣기 작업을 시트 단위로 보여 드리려고 합니다. 실제로는 미리 시트를 구성한 상태에서 매뉴얼에 따라 각각 진행을 하면 동작하도록 해두었습니다. 추가로 이 글에서는 하나의 단어에 여러 품사가 있는 내용에 대해서는 설명을 자세하게 하지 않았습니다. 구성은 되어 있기 때문에 수식 등이 같이 보여지기는 하겠지만요.



list.txt 파일의 내용을 H2셀 이후에 붙여넣기


:: 붙여넣은 내용에서 단어 정보 뽑기

< list.txt 시트 / A2 >

:: 검수했던 시트에서 No 정보 가져오기

< list.txt 시트 / B2 >

:: 단에 품사 개수 확인

< list.txt 시트 / C2 >

:: voca.ref 에서 key값 가져오기

< list.txt 시트 / D2 >

:: 품사 가져오기

< list.txt 시트 / E2 >

:: 검수 결과를 하나의 셀로 합치기

< list.txt 시트 / F2 >




이번에는 시트를 보기 전에 작업의 특이성을 몇 가지 언급을 해둡니다. 이후 수식들을 볼 때 참고를 하시면 되겠습니다. 


* 하나의 단어에 대해서 여러개의 이미지가 있음

* 그 중에 9개는 앞에 '0000'이 붙음

* 인덱스는 0부터 시작. 00000.jpg 가 있음

* 10번째 단어는 v1-1

* 11번째 단어는 v1-2





어찌보면 잘 정리되지 않은 형태의 포맷들로 되어 있는데요, 아쉽지만 현실은 받아들이고 도움을 드릴 수 있는 방법을 찾는 것이 중요하겠죠.




file.txt 파일의 내용을 O3셀 이후에 붙여넣기
> 작업 중간 결과인 file.txt나 list.txt 도 무시하고 시트에 붙여넣도록 함


< file.txt 시트 전체 구성 >

:: 폴더 / 예외는 무시

< file.txt 시트 / A3 >

:: 파일명

< file.txt 시트 / B3 >

:: 확장자

< file.txt 시트 / C3 >

:: 명령어 구성시 편의를 위한 참조 위치 기록

< file.txt 시트 / D3 >

:: 단어 / 예외는 무시

< file.txt 시트 / E3 >

:: 검수 결과 

< file.txt 시트 / F3 >

:: 이미지별 검수 결과 매핑

< file.txt 시트 / G3 >


## 아래에는 글자 읽기 편하도록 우측으로 스크롤 해서 H열부터 보이도록 캡처


:: key 값 매핑

< file.txt 시트 / H3 >

:: 품사 

< file.txt 시트 / I3 >

:: 단어 품사 개수

< file.txt 시트 / J3 >

:: 수행할 명령어 구성

< file.txt 시트 / K3 >
< file.txt 시트 / K열 데이터가 있는 셀까지 스크롤 내린 화면 >

:: A3와 B3에서 참조하는 폴더 구분자 개수 정보

< file.txt 시트 / L3 >




위에 command 구성에서 나온 내용에 대해 설명이 필요한 부분이 있습니다. 사실 파일 복사에는 여러가지 방법이 있겠지만 결과 폴더 생성을 포함해서 진행하도록 xcopy 명령어를 사용했습니다.

그리고 K3셀에 대한 수식이 꽤나 복잡한데요, 이에 대해서도 알아두시면 좋을 내용 한가지를 말씀드리면,  xcopy 명령어에서 파일명 전체를 그대로 사용할 경우 사용자에게 선택을 묻는 대기 상태로 전환이 되는 현상이 있습니다.


< 확장자를 모두 포함하면 파일인지 디렉터리(폴더)인지를 물어본다 >


이 현상을 피하기 위해 파일명 전체를 알고 있음에도 불구하고 해당 부분을 XXX.* 처럼 바꿔서 처리하도록 구성한 점도 알아두시면 좋을 것 같네요.




모든 작업이 끝났다면 결과 명령어를 복사한 이후 명령 프롬프트에 붙여넣으면 아래처럼 파일이 result-YYYY-MM-DD 폴더에 잘 복사가 됩니다. (수행할 명령어들만 선택하는 대신 K열 전체를 선택해서 복사할 경우 공백이나 command 라는 키워드도 같이 복사가 되지만 잘못된 결과는 생기지 않으니 그냥 열 전체를 복사하는 것이 사실 편하기는 합니다) 옆에서 지켜보니 한번에 수백개의 명령어가 수행되면서 뭔가 컴퓨터가 일을 열심히 하는 모습이 연출이 되네요. 생각해보면 수백번 이름 바꾸기와 복사를 손으로 했던 양이 만만치 않았던 것이겠죠.



실제로 잘 들어갔는지 확인을 해보니 예쁘게 잘 복사가 되었네요.




이렇게 선별된 이미지들은 아마도 대량 등록 처리를 하는 절차 이후에 서비스에 반영이 될텐데요, 아직 작업이 모두 되지 않았겠지만 이미 살펴볼 수 있는 것도 있어서 앱에서 보이는 단어를 가져와 봤습니다.


< 산타 앱서비스 안에서 보이는 단어 샘플 >


얘기를 들어보니 이미지의 품질도 점점 더 좋아질 것이라고 하네요. 하지만 아마도 완벽하게 처리가 되기 전까지는 전문가의 검수가 필요하지 않을까 합니다.




작업중에 몇가지 문제점이 있었지만 위와 같이 구성한 내용을 실무자분이 사용한 이후에 많은 도움이 되었다는 피드백을 받았습니다. (오타를 포함한 버그를 다행히 찾아서 수정을 했습니다;;;)


그럼 모든 분들의 안녕한 손가락을 기원하면서 이번 글을 마칩니다^^

작가의 이전글 팀 구성원 근무 시간 Slack 알림
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari