전공영역 공부 기록

Copilot을 이용한 소스코드 분석

악분 2023. 10. 29. 21:39
반응형

들어가며

이번 주에 copilot을 1년 결재 했습니다. 문득 Copilot을 소스코드 분석에 활용할 수 없을까라는 생각이 들었습니다. 그래서 바로 실행을 옮겼습니다.

 

실습 IDE

  • vscode

 

분석할 소스

External DNS controller가 어떻게 Route53 record를 삭제하는지 궁금했습니다. 그래서 External DNS controller에 있는 aws.go파일을 대상으로 테스를 진행했습니다.

 

 

첫 번째 테스트

Route53 record를 삭제하는 함수를 찾아달라고 부탁했습니다. Copilot은 record를 직접 delete하는 함수가 없다고 했습니다. 하지만 Route53Change라는 힌트를 줬습니다. 

 

두 번째 테스트

바로 copilot에게 질문을 했습니다. Route53Change로 어떻게 record를 삭제할 수 있는지 질문했습니다. ChangeActionDelete Action을 AWSProvider에게 넘기면 reocrd가 삭제된다고 대답했습니다.

 

그래서 ChangeActionDelete키워드로 소스코드 검색을 했습니다. 놀랍게도 record를 변경하는 newChange함수가 있었고 , ChangeActionDelete action으로 record를 삭제할 수 있다는 주석이 있었습니다.

 

그리고 vscode의 call stack을 사용하여 최초 호출 함수를 찾았습니다.

 

마치며

copilot은 소스코드 작성 뿐만 아니라, IDE로 연 파일을 분석하는데 충분히 활용가치가 있는 것을 알았습니다.

반응형