개요
저희 회사에서 AI 코딩을 이용해 제가 간단히 만든 이미지 판정 프로그램이 있습니다.
소스 코드 : https://drive.google.com/file/d/1sfCMVzhr_wmu3ZqfbxEPsQ-_c1buNGPb
※ 지난글에서 소개한 이미지 판정(흰색 오염 판정) 로직 외에 두가지 로직이 추가되어 있습니다.
(경계선의 선형 완결성 판정, 흑점 검출 판정)
※ 참고 이전글
https://www.gpters.org/dev/post/determination-defective-product-images-HzGwJZluRDLyU26
https://www.gpters.org/dev/post/determination-defective-product-images-sosI4iWn0CXHrRn
이 코드는 실행하게 되면 다음과 같은 GUI창이 뜨면서 크게 3종류의 이미지 판정을 할 수 있게 로직이 구성되어 있습니다.
당장 회사에서 사용해야 하는 꼭 필요한 기능은 모두 구현되어 있었고 사용에 불편함은 없었지만, 소스코드를 관리하는 제 입장에서는 불편한 점이 몇가지 있었습니다.
필요할 때마다 AI 코딩툴을 통해 코드를 추가하다 보니 각각의 코드들이 따로 노는 모양이었습니다. (최소한의 기능 구현 후 최대한 정리했지만 부족함이 많았습니다.)
폴더/파일경로에 대한 관리, 파라미터에 대한 관리도 최대한 패키지화 한 GUI 로 정리했지만, 그럼에도 호출시에서는 각각의 번호로 호출해서 가독성이 좋지 않았습니다.
비슷 비슷한 구조의 코드가 반복되어서 한번 수정이 발생하면 반복되는 코드를 모두 다시 바꿔야 하는 어려움이 있었습니다.
앞으로도 기능은 계속 추가될 예정인데(현업에서 이미지 판정이 필요하다는 로직이 생길 때마다 조금씩 기능은 추가될 것 같습니다.) 점점 코드가 복잡해져서 구현이 점점 어려워 졌습니다.
이와 같은 문제점을 모두 한번에 해결해 보고자 Code Refactoring을 진행해 봤습니다.
Code Refactoring : 리팩터링(refactoring)은 소프트웨어 공학에서 '결과의 변경 없이 코드의 구조를 재조정함'을 뜻한다. 주로 가독성을 높이고 유지보수를 편하게 한다. 버그를 없애거나 새로운 기능을 추가하는 행위는 아니다.
AI 활용 상세
이전에 genspark을 활용하여 GitHub Copilot과 Cursor의 차이점을 분석했었습니다.
https://www.gpters.org/dev/post/asked-genspark-cursor-vs-NbhjOaUx2fWINvR
당시 내린 결론으로 "리팩토링에는 Cursor가 더 유리하다." 였으므로, Cursor를 이용하여 리팩토링을 진행하였습니다.
Cursor의 Composers를 띄워두고, Refactoring을 하고자 하는 코드를 올려둔 상태에서 간단히 지시했습니다.
코드를 리팩토링해줘