소개
최근 끝없이 화제가 되고 있는 ChatGPT 보다 전에, Github Copilot이라는 IDE에서 코딩을 도와주는 프로그램이 있습니다.
ChatGPT는 직접 내가 물어봐야 하지만, Github Copilot은 프로젝트 내에서 내 코드를 학습하고 코드를 칠 때 아래와 같이 자동으로 제안해 줍니다. 여기서 Tab 한 번만 누르면 바로 제안된 코드를 사용할 수 있습니다.
최대한 객관적으로, 현재 상황 기준
프로그래머로써 이런 기술을 볼 때 순수한 기쁨만 느낀다면 거짓말입니다. 당연히 위기감을 비롯한 복잡한 감정을 느꼈습니다. 특히, 일부 유튜버들이 말하는걸 듣고 있으면 프로그래머는 곧 Github Copilot에 대체 될 것만 같았습니다.
하지만 이런 기술적 흐름을 개인이 막을 수 있는 것도 아니니, 나중에 대체 되더라도 그때까지 좋은 프로그래머로 남기 위해 직접 이런 기술을 적극적으로 쓸려고 하고 있습니다.
그럼에도 무의식중에 이런 기술을 실제보다 더 부정적으로 보게 되는 편향이 있을 수도 있습니다. 하지만 의식적으로 최대한 객관적으로 평가하려고 했습니다. 또, 앞으로의 AI 발전을 전문가도 아닌 제가 논의하는건 무의미하다고 생각해 현재 기준 + 선형적인 발전을 한다고 가정하고 후기를 써 보겠습니다.
생각보다는 별로다
우선, Github Copilot 뿐만 아니라 생성 AI 전반적으로 쓰면 쓸 수록 제가 물어보는 개념을 진짜로 이해하고 있는게 아니라 말 그대로 '생성' 하고 있는게 느껴졌습니다. 이 말은, 반복되는 뻔한 패턴이 많으면 많을 수록 생성 AI가 도움이 됩니다.
별로인 점
- 프로그래머들은 이미 반복되는 걸 싫어해서 디자인 패턴, 라이브러리/프레임워크, 자동완성이 있기 때문에 Github Copilot이 추가된다고 혁신적으로 코딩 속도가 향상되는 건 느끼지 못했습니다.
- 심지어 틀린 코드를 생성하는 경우가 너무 많아서 오히려 속도가 느려지는 경우도 있었습니다. 남의 틀린 코드를 수정하는게 직접 처음부터 하는 것 보다 느린 경우가 있으니 일부 상황에서는 아예 끄는게 도움이 될 때도 있습니다.
괜찮은 점
- 라이브러리/프레임워크는 최대한 다양한 상황에 적용 가능하게 추상적으로 짜여 있기 때문에, 제 프로젝트 안에서 특정 라이브러리/프레임워크의 특정 기능만 사용할 경우 반복되는 코드가 많아질 수 있습니다. 이런 상황에서는 비교적 높은 정확도로 도움을 줬습니다.
- 특히 옛날에 쓴 코드나 다른 사람이 쓴 코드는 이해하는데 시간이 조금 필요한 경우가 많은데, 이런 경우에는 확실히 지엽적인 문법에 덜 집중하고 핵심 비즈니스 로직에만 집중할 수 있어 생산성이 올라가는 걸 느꼈습니다.
구체적으로 각 상황별 느낀 장단점을 말씀드리겠습니다.
Frontend 코딩 할 때 (Html, CSS, JS, React, TS 등)
도움이 되긴 하지만 그렇게 큰 도움은 아님
Backend 코딩 할 때 (Spring, SQL, YAML)
별로 도움이 안 되고 방해되는 경우도 많아 자연스럽게 끄게 됨
코딩 테스트 풀 때
무쓸모, 오히려 방해됨
코딩 테스트는 반복이 거의 없는 매우 구체적인 요구사항이 필요한 경우가 많아 Github Copilot과는 극성일 거 같았는데, 역시나 계속 말도 안 되는 다른 분들이 쓴 엄청 긴 코드를 추천해 주는 경우가 빈번해서 끄게 됐습니다.
Github Copilot vs ChatGPT
객관적으로 쓴다고 하고 Github Copilot 욕만 한거 같지만, 저는 ChatGPT는 매우 자주 쓰고, 유료 구독까지 하고 있습니다.
ChatGPT와 Github Copilot의 가장 큰 차이점은 예측 가능성 같습니다. ChatGPT에게는 제가 모든 큰 그림을 짜고 퍼즐 조각 일부 혹은 지엽적인 문법들을, 구글링 할 때 보다 빠르게 + 비교적 높은 정확도로 주니 정말 혁신적이라 느꼈는데, Github Copilot은 그렇지 못 했습니다.
다만, 큰 프로젝트에서는 학습할 것들이 많아지니 정확도가 올라갈 거 같고, 또 프로젝트 구조를 잘 짜 놓고, 읽기 쉽고 예측 가능한 Clean Code를 쓰면 AI가 학습하기 편하니 정확도가 올라가는거 같았습니다.
하지만 2개 중 1개만 선택한다면 저는 ChatGPT를 선택할 거 같습니다.
결론 : AI 시대에도 Clean Code, Clean Architecture는 중요할 거 같다
생성형 AI는 구조상 패턴을 보여주는 데이터가 많을 수록 정확도가 올라갑니다.
그래서 처음 ChatGPT를 써 볼 때는 "Hello World"에 해당하는 기본적인 것을 물어보니 실제 능력보다 과하게 칭찬하게 된 거 같습니다. 유튜브만 봐도 처음 ChatGPT로 게임을 만들게 시킨다고 하면 "Hello World"에 해당하는 가장 일반적인 Flappy Bird나 오목 등을 만들게 하니 잘 만들지만, 요구사항이 구체적일 수록 한계점이 잘 드러납니다.
그래서 개인적인 생각으로 AI가 잘 학습할 수 있게 예측가능하게 잘 짠 코드의 가치는 더욱 더 올라갈 거 같습니다.
'👨💻 프로그래밍' 카테고리의 다른 글
🐶 신입 개발자가 3개월 현업에서 굴러본 후기 (0) | 2023.11.26 |
---|---|
🥳 토스 NEXT 2023 합격 후기 (서버 전형, 신입) (1) | 2023.09.23 |
여러가지 프로그래밍 패러다임 알아보기 (명령형, 함수형, 논리형 등) (0) | 2023.04.08 |
Clean Code, 읽기 쉬운 코드를 쓰는 법 (0) | 2022.09.17 |
프로그래밍을 할려면 영어를 잘해야 할까? (0) | 2021.08.01 |