NOMO.asia

폴더의 서브 트리 구조를 유지하며 해당 폴더 안의 파일 중 특정 확장자만 복사해야 할 일이 있어서 ChatGPT 를 활용해 코드를 작성해보기로 했다. 구글 번역기에 대충 적고 번역된 내용을 copy & paste 했다.

1. 폴더의 트리 구조를 유지하며 특정 확장자 파일만 복사

첫 번째 시도로, 폴더의 서브 트리 구조를 유지하며 해당 폴더 안의 파일 중 특정 확장자만 복사하는 코드를 Python 으로 작성하라고 명령해보았다.

와 어려운 코드는 아니었지만 단 한 번의 요청으로 얻은 코드가 꽤 괜찮았다. 시키지도 않았는데 source folder 가 존재하는지 확인 & exception 처리까지 해주는 센스까지~ 실행 결과 아래와 같이 잘 되었다.

 

2. 폴더를 모니터링 하며 원하는 확장자의 파일이 생성되면 다른 폴더로 복사

이번엔 아예 특정 폴더를 모니터링 하다가, 특정 확장자인 파일이 생성되면 다른 폴더로 복사하라고 해보았다. 추가로, 해당 파일이 생성되는데 시간이 오래 걸릴 수 있으므로, 파일 생성이 완전히 끝난 후 복사하라고 했다.

음... 그랬더니 ChatGPT는 While True 로 무한 루프를 돌면서 폴더 구조를 무식하게 모니터링 & 무한 복사하는 코드를 작성했다. 그래도 파일 생성이 완전히 된 후 복사해야 한다고 명령을 내렸더니, 현재 파일 사이즈가 1초 전과 동일한 경우에 복사하도록 작성된 부분은 센스가 있었다 ㅎㅎ

그래서 대신 파일 및 폴더 변경을 감지하는 이벤트를 활용해서 해보라고 시켰다.

그랬더니 watchdog 을 사용해서 파일 변경을 모니터링하기 시작했다. 여전히 코드 상에 while True 가 있긴 하지만 이전과 달리 사용자의 중지 요청을 받기 위한 코드라서 중요한 부분은 아닌 듯하다. 그래도 만약 chatGPT 대신 사람이 내 요청을 받았다면 이 부분에서도 while True 를 아예 쓰지 않았을 듯.

근데 파일 사이즈를 체크하는 부분이 없어졌다. 그래도 이게 어딘가? chatGPT가 이 코드 작성을 위한 최소 10분의 시간은 절약해준 듯하다.

실행 결과 특정 확장자를 가진 파일이 생성되는 경우에는 아래와 같이 정상적으로 복사되는 것을 확인할 수 있었다.

이후 Thread 도 쓰라고 하고, 파일이 수정되거나 이미 존재하는 경우에도 복사하라고 하고, 파일 사이즈도 체크하라고 하는 등 여러번의 시도를 더 거쳐서 아래와 같은 결과를 얻었다.

소감

위의 시도들은 모두 어려운 코드는 아니고 구글링 하면 쉽게 나오는 코드지만, 구글링 시간을 줄여주고 내 목적에 맞게 코드를 다시 고쳐야 하는 시간을 어느정도 줄여준다는 점에서 아주 유용했다. 이 외에도 구글에서 쉽게 찾을 수 있을만한 간단한 것들을 시켜봤는데 다 잘했다.

더 어려운 수학 계산 관련된 코드를 시켜봤는데, 길다면서 잘 안하려고 하고 컨셉만 알려주려고 하더라. 알려주는 컨셉도 간단한 건 제대로 알려줬지만 일부 대학원 수준 이상의 이론에 대한 코드까지는 제대로 알려주지는 못했다.

일단 당장은 노가다성이 강한 업무 자동화의 기초 코드를 작성하는데 매우 유용할 듯하다.

다만 아직 결과가 길게 나올만한 코드는 잘 안 해주고 컨셉만 알려주려고 하는 것이 아쉽다. 텍스트 파싱도 시켜봤는데 간단한건 대충 발로 설명해도 규칙을 알아서 찾아 알잘딱하게 파싱 해주지만, 복잡하고 긴건 일일히 설명을 입력해줘야 하거나 잘 안 해준다. 긴 코드도 무리없이 가능하게 되면 월 2만원이 안 아까울 듯하다.