AI 코딩 어시스턴트, 잘 알수록 안전하게 쓴다
컨텐츠 정보
- 조회 719
본문
AI를 사용하면서 전달되는 코드의 양과 재작업이 필요한 코드의 양이 모두 증가했다. 감당할 수 있는 것보다 더 많은 AI를 사용하지 말자.
끊임없이 변화하는 AI 환경에 지친 사람은 혼자가 아니다. 마이크로소프트 리서치의 천재 빅터 디비아는 한 게시물에서 “전례 없는 AI 발전 속도에 맞추려고 할 때 생기는 특별한 종류의 피로감”을 포착했다. 하지만 개발자라면 소프트웨어 개발 분야의 생성형 AI의 영향을 더 이상 외면할 수 없다. 물론 경험이 많은 개발자인지, 덜 숙련된 개발자인지에 따라 차이는 있겠지만, 이제는 AI를 업무에 활용하지 않으면 안 되는 시점에 도달했다.
하지만 어떻게 할까? 응용 AI 엔지니어 산칼프 슈밤이 AI 기반 코딩 어시스턴트의 진화에 대해자세히 설명하며 효과적인 사용 방법을 조언했다. 슈밤은 코딩 어시스턴트를 자동차에 비유한다. 자동 완성 같은 것은 최대한의 제어가 가능하지만 천천히 움직이며(1단 기어), 에이전트 모드와 같은 더 야심찬 기능은 “세분화된 제어와 더 빠른 속도와 자동화를 교환”한다. 아이러니한 점은 경험이 많은 개발자는 ‘1단 기어’로 안전하게 운전하는 경향이 있는 반면, 경험이 적은 개발자는 빨리 가기 위해 AI에 더 많은 제어권을 부여하고 그 과정에서 무언가를 망가뜨리는 경향이 있다는 것이다.
지원이 많을 수록 늘어나는 문제
매우 중요한 지점이다. AI는 소프트웨어 개발자에게 꼭 필요하지만, 그 이유는 일을 덜어주기 때문이 아니다. 오히려 개발자의 업무 방식을 바꾸기 때문이다. 코딩을 기계에 맡기는 개발자의 경우 그 결과는 끔찍하다. 산티아고 발다라마는 이런 현상을 ‘모델 AI 워크플로’라고 표현했다.
- 모델에 코드 생성을 요청한다.
- 코드에 버그가 있다.
- 모델에게 버그를 수정해 달라고 요청한다.
- 이제 각기 다른 버그가 두 개가 되었다.
- 모델에게 버그를 수정해 달라고 요청한다.
- 이제 세 번째 버그가 생겼다.
발다라마는 “AI 모델이 만든 코드를 이해할 수 없는 사람들의 슬픈 현실”이라고 요약한다.
요컨대, AI는 소프트웨어 개발에 도움을 주지만 소프트웨어 개발자를 대체하지는 못한다. 사람의 지능이 적용되지 않으면 온갖 종류의 실수를 저지르기 쉽고, 여기에서 다시 온갖 문제가 발생한다. 허니콤의 CTO 채리티 메이저스의 말처럼 AI는 “코드를 관리, 이해 또는 운영하는 작업을 지원하는 데 아무런 도움이 되지 못했다. 오히려 어려운 일을 더 어렵게 만들었을 뿐”이다.
AI를 잘못 사용하면 상황이 나아지기는커녕 더 나빠진다. 스탠포드 연구원인 예고르 데니소프-블랜치는 AI로 전달되는 코드의 양과 재작업이 필요한 코드의 양이 모두 증가한다는 사실을 발견했으며, “진짜 유용한 전달 코드가 항상 증가하지는 않는다”라고 지적했다. 요컨대, AI를 사용하면 생산성이 떨어지는 사람이 있다는 것이다. 그렇다면 어떻게 코딩 어시스턴트로 더 많은 작업을 할 수 있을까?
천천히 운전하면 더 잘 제어할 수 있다
슈밤은 자동차 비유를 통해 “자동차의 기어를 낮출수록 엔진을 더 잘 제어할 수 있지만, 속도를 줄여도 된다”라고 말했다. 코딩에 적용해보자. AI를 통제할 수 있다고 느끼면 더 높은 기어를 선택해도 된다. 그러나 AI에 압도당하거나 막히면 더 낮은 기어를 써야 한다. 이것이 비결이다. 항상 개발자 개인의 문제이며 어느 정도의 자기 인식이 필요하다. 슈밤은 “AI 지원 코딩은 더 세밀한 제어가 필요할 때와 더 빠르게 움직이기 위해 제어권을 놓아야 할 때를 파악하는 것”이라고 말하며 “기어가 높으면 오류와 신뢰 문제가 발생할 여지가 더 많다는 것을 인식해야 한다”라고 강조한다.
시니어 엔지니어는 이 점을 이해하고, 자동 완성 같은 ‘낮은 기어’에서 더 많은 작업을 수행하면서 AI 도구를 신중하게 사용하는 것으로 보인다. 문제는 주니어 엔지니어와 비엔지니어가 AI 도구를 필요 이상으로 신뢰한다는 것이다. 소프트웨어 지식이 전혀(또는 별로) 없어도 누구나 개발자가 될 수 있다고 약속하는 노코드/로우코드 플랫폼의 수년간의 마케팅 탓도 어느 정도는 있다. 하지만 이것은 항상 잘못된 희망이었다.
해결책은 있다. AI 코딩 어시스턴트를 코딩을 배우지 않기 위한 핑계로 삼지 말자. 로봇이 무언가를대신해줄 수는 없다. AI 어시스턴트를 가장 잘 활용하는 엔지니어는 소프트웨어를 가장 잘 아는 엔지니어다. 이들은 코딩 어시스턴트에게 제어권을 부여해야 할 때와 그 지원을 제한하는 방법(코딩 어시스턴트가 작업할 문제 범위를 좁히는 것 등)을 알고 있을 것이다. 경험이 부족한 엔지니어는 빠르게 움직이다가 막히거나 AI가 만든 버그를 인식하지 못할 위험이 있다.
결론은 AI는 좋은 프로그래밍을 대체할 수 없다는 것이다. 실제로 좋은 프로그래밍을 하지 못하기 때문이다. 여전히 매우 유용하겠지만, 그 유용성은 사용하는 개발자의 상대적인 전문성과 밀접한 관련이 있다.
dl-itworldkorea@foundryco.com
관련자료
-
링크
-
이전
-
다음






