개발하는 일상

github copilot 2년동안 사용한 사람의 활용 팁 본문

개발 간단 팁

github copilot 2년동안 사용한 사람의 활용 팁

롯데빙빙바 2024. 3. 17. 23:59

나는 github copilot이 베타 서비스 할 때 부터 사용하기 시작해서, 지금은 코파일럿 없이 코딩한다는 것은 상상도 못하는 사람이 되었다. 2년 넘게 사용하다 보니 코파일럿이 어떤 것을 잘하고, 어떤 것을 못하는 지 어느정도 감이 생겼다. 그래서 코파일럿에 익숙하지 않은 사람들을 위해 나의 활용법 몇가지를 소개한다. 나는 vscode 환경에서 코파일럿을 사용한다.

 

코파일럿이 잘 하는 것

1. 유틸 함수 생성

코파일럿은 github의 다른 코드를 기반하여 생성된 모델로 돌아가기 때문에, 단순하고 범용적으로 쓰일 법한 코드일 수록 더 잘 생성해낸다. 유틸 함수가 대표적인 사례이다. 아래 [그림 1]을 보자.

그림 1. 색상의 밝기를 구하는 함수를 추천하는 copilot

[그림 1]에서 밝기를 구한다는 주석을 작성한 뒤 코드를 추천받고 있다. 이 함수는 실무에서 실제로 사용했다. 서비스에서 사람들이 닉네임 뱃지에 사용될 배경색을 직접 선택했는데, 밝기에 따라 이름을 흰색이나 검은색으로 표시하는데 이 함수를 사용했다.

 

색의 밝기라는 것을 어떻게 정의하는지 검색하고 생각해서 코드로 구현하는 방식보다 훨씬 간편하고 빠르게 구현이 가능하다.

 

함수 이름 주석을 대신할 수도 있다. 체감으로는 주석으로 하는 편이 더 쉽고 정확도도 높은 듯하다. 

 

2. 중복이 많은 코드 작성

그림 2. 비슷한 여러 버튼을 가져오는 코파일럿 활용

[그림 2] 처럼 비슷한 구조에서 규칙적으로 달라지는 코드를 많이 작성해야 할 때 코드를 빠르게 작성할 수 있다. 나는 복사 붙여넣기해서 수정하는 것보다 피로도가 덜하고 더 빠른 느낌이 든다. 또한, 이미 작성된 코드를 참고하여 추천하기 때문에 아래 [그림 3]과 같은 추천도 잘 한다.

그림 3. 작성된 코드를 참고하여 중복된 코드 작성하기

 

저렇게 중복된 코드를 많이 작성하는 것은 코딩을 못하는 것이 아닌가?

 

코파일럿을 활용하기 전에는 위와 같은 생각을 많이 했었다. 조금이라도 코드에 중복이 발생하면 해결하려고 들었다. 그런데 저렇게 작성된 코드는 의외로 알아보기도 쉽고 수정도 간편한 경우가 많다. 코파일럿을 포함해 편집기에 좋은 기능이 많아 졌기 때문이다.

 

또한, 섣불리 중복을 제거하기 위해서 함수를 만들거나 추상화를 하게 되면 오히려 안좋은 코드를 작성하게 되는 경험도 많이 했다. 이전과 달리 툴이 충분히 좋아졌기 때문에 최적화를 뒤로 미루는 것이 더 좋은 선택이 되는 경우가 많아졌다.

 

아래 [그림 4] 처럼 다른 파일에 열린 코드도 잘 참고하여 추천해준다.

그림 4. 다른 파일의 코드를 참고하여 추천하는 코파일럿

코파일럿이 잘 못하는 것

보통, 특수한 경우에만 사용하는 코드를 추천받는 것은 위험하다. 아래 [그림 5]를 보자.

그림 5. 코파일럿의 토스페이먼츠의 결제를 검증하는 코드 추천

주석으로 쓴 부분까지만 내가 작성한 부분이고, 나머지 코드는 코파일럿이 추천한 코드이다. 당연히 실제 동작하는 코드와 전혀 다르다.

 

  - 3rd party 라이브러리를 활용하여 작성하는 코드

  - 내부 서비스에만 존재하는 로직

  - 범용적일 수 있으나 복잡하게 얽힌 로직

 

위 같은 경우는 코파일럿의 도움을 과하게 받으면 안 받으니만 못한 코드가 된다. 이런 경우에는 기본적인 코딩은 내가한다고 생각하는 것이 낫다.

 

 

Comments