GitHub Copilot 베타 사용 후기 - 실무 투입 1주차
배경
지난주 GitHub Copilot 베타 접근 권한을 받았다. OpenAI Codex 기반이라는데, 실제로 얼마나 쓸만한지 일주일간 실무에 적용해봤다.
좋았던 점
1. 반복 코드 자동 완성
API 엔드포인트를 여러 개 만들 때 패턴을 학습해서 제안해줬다.
// 첫 번째 엔드포인트 작성 후
router.get('/users/:id', async (req, res) => {
const user = await User.findById(req.params.id);
res.json(user);
});
// 두 번째부터는 주석만 쓰면 거의 완벽하게 생성
// Get post by id
// -> 전체 코드를 제안해줌
2. 테스트 코드 작성
함수 작성 후 describe 키워드만 입력하면 테스트 케이스를 알아서 생성했다. 엣지 케이스까지 커버하진 못하지만 기본 구조 잡는 시간은 확실히 줄었다.
3. 타입 정의
TypeScript 인터페이스 작성할 때 필드명만 입력하면 타입을 추론해서 제안했다. 컨벤션도 기존 코드를 학습하는 듯했다.
문제점
1. 잘못된 제안
lodash의 _.get 대신 존재하지 않는 메서드를 제안한 적이 있었다. 검증 없이 받아들였다가 런타임 에러를 만났다.
2. 보안 이슈
환경변수를 하드코딩하려는 제안을 여러 번 받았다. 민감한 코드 작성 시 주의가 필요하다.
3. 의존성
너무 의존하다 보니 간단한 로직도 Copilot 제안을 기다리게 됐다. 스스로 생각하는 시간이 줄어드는 느낌.
결론
보일러플레이트 코드 작성에는 확실히 도움이 된다. 하지만 제안을 무조건 신뢰하면 안 되고, 반드시 검토 후 사용해야 한다. 주니어 개발자가 사용하면 학습에 방해가 될 수도 있을 것 같다는 생각이 들었다.
당분간 계속 사용하면서 어떤 상황에서 유용한지 더 파악해볼 예정이다.