며칠 전 저는 LinkedIn에서 "기술 회사는 GitHub Copilot을 통해 프로그래머의 생산성을 50% 높이는 것을 목표로 합니다."라는 대담한 문구가 표시된 흥미로운 헤드라인을 접했습니다. 상황을 더욱 궁금하게 만든 것은 해당 게시물의 작성자가 프로그래머가 아니라는 점이었습니다.
제목의 대담함에도 불구하고, 나는 이 문제가 흥미로운 분석과 토론으로 이어질 수 있다고 믿습니다.
오늘날 대중이 사용할 수 있는 AI 도구의 인상적인 기능은 부정할 수 없습니다. 프로그래밍 분야에서는 이미 개발자를 크게 지원하고 루틴을 최적화하며 생산성을 높이고 있습니다. 올바른 도구를 사용하면 더 빠른 속도로 문제를 해결할 수 있습니다.
하지만 프로그래밍에 익숙하지 않은 사람들에게는 이러한 AI 도구가 거의 신비롭게 느껴질 수 있으며, 어떤 문제든 신속하고 자동으로 해결할 수 있다는 인상을 줄 수 있습니다. 그러나 우리는 현실이 상당히 다르다는 것을 알고 있습니다.
이러한 도구에 의해 생성된 열정은 완전히 정당하며, 나에 대한 오해를 형성하기 전에 나도 그들 중 하나라는 점을 알아두십시오. 그러나 나는 이러한 도구가 실제로 무엇을 할 수 있는지 모든 사람이 완전히 이해하는 것은 아니라고 생각합니다.
한편으로는 기계로 대체되는 것을 두려워하는 프로그래밍 초보자도 있습니다.
반면에 프로그래머가 수행하는 실제 작업에 대한 명확한 이해 없이 비용을 절감하거나 생산성을 높이기 위한 마법 같은 솔루션을 찾는 CEO도 있습니다.
"ChatGPT(또는 Copilot), Node.js에서 공연 티켓을 판매하기 위한 페이지를 생성하세요. 백엔드는 초당 평균 2,000개의 요청을 준비하고 실패에 대한 복원력을 갖춰야 합니다. 로드 밸런서를 설정하여 분산된 서버 간에 요청을 분산하세요. 캐시가 작동하는지 확인하고 실제로 서버 로드를 줄이는지 확인하세요. 실시간 모니터링 도구를 계측하세요. 그리고 물론 데이터베이스는 좋은 복제 전략으로 클러스터링되어야 합니다."
이 예는 지나치게 과장된 것으로 알고 있습니다. 그러나 이는 프로그래머가 아닌 사람에게는 단순해 보일 수 있는 것을 구현하는 것의 복잡성을 보여줍니다.
코드 작성은 프로그래머 업무의 일부일 뿐이며 생성 AI가 그 분야에서 탁월하다고 확신하지만 이것이 프로그래머가 수행하는 전부는 아닙니다.
우리 프로그래머들은 단 한 줄의 코드도 작성하지 않고 하루의 상당 부분을 보냅니다. 먼저 새로운 기능의 요구 사항을 이해하고, 이해관계자와의 대화 및 조정에 참여하고, 기술 아키텍처를 설계하고, 마지막으로 모든 정보를 코드로 변환해야 합니다.
그리고 이 코드는 기존 코드베이스의 나머지 부분과 어떻게 어울리는지를 고려하여 컨텍스트에 맞게 작성되어야 한다는 점을 잊지 마십시오.
내 말은 이러한 AI 도구가 매우 유용하기는 하지만 마법을 부리지는 않는다는 것입니다. 그러나 그들은 프로그래머에게 좋은 조력자가 될 수 있습니다.
소프트웨어 엔지니어링에 대한 나의 관점을 크게 확장한 독서 중 하나는 Dave Thomas와 Andrew Hunt가 쓴 고전 책 "The Pragmatic Programmer"였습니다. 장 중 하나에서는 흥미로운 디버깅 기술인 고무 오리에 대해 설명합니다.
고무 오리 프로그래밍의 기본 아이디어는 마치 고무 오리에게 설명하는 것처럼 큰 소리로 직면한 코드나 문제를 설명하는 것입니다. 문제를 말로 표현하거나 코드를 단계별로 설명함으로써 해결책을 찾거나 문제에 대한 새로운 관점을 얻을 수 있는 경우가 많습니다.
ChatGPT는 대화에 뛰어나고, 더 나아가 문맥에 맞춰 대화하는 데에도 뛰어납니다. 이 인공 지능이 데이브 토마스(Dave Thomas)와 앤드류 헌트(Andrew Hunt)의 고무 오리의 진화일 수 있을까요?
ChatGPT와 통합되어 이를 고무 오리로 사용하는 Visual Studio Code용 확장이 이미 있습니다. 여기서 확인하실 수 있습니다.
저는 GitHub가 제품 이름을 Copilot으로 선택한 방식이 마음에 듭니다. 이는 고무 오리의 개념과 일치합니다. 이 도구는 실제 조종사가 아닌 부조종사가 되는 것을 목표로 합니다. 그것은 프로그래머의 조수이자 그들의 고무 오리입니다.
이 메시지는 프로그래밍 경력의 미래에 대해 불안하고 걱정하는 사람들을 위한 것입니다. 긴장을 푸세요! 하지만 너무 긴장하지 마십시오. 좋은 프로그래머를 만드는 것은 코드뿐만 아니라 소프트웨어 엔지니어링의 기본이라는 가혹한 현실이기 때문입니다.
70년대와 80년대 일반 대중을 위한 컴퓨터의 대중화와 함께 회계 및 재무 전문가들은 스프레드시트 소프트웨어에 대한 위협을 느꼈습니다. 수천 개의 행과 열을 저장할 수 있고 계산 오류가 발생하지 않는 기계입니다. 누가 그것을 거부하겠습니까?
스프레드시트가 과거에도 그랬고 여전히 강력하다는 것은 사실이며 "스프레드시트 작성자" 작업에 위협이 되기도 했습니다. 그러나 데이터를 해석하고, 비즈니스 맥락을 이해하고, 회계 개념을 적용한 사람들은 스프레드시트를 비판하는 대신 스프레드시트를 사용하는 방법을 확실히 알고 있었습니다.
프로그래머는 단순한 코드 작성자가 아닙니다. 새로운 고무 오리를 두려워하지 마십시오. 대신에 그것을 사용하십시오. 그리고 이 기사를 작성하는 데 도움을 준 ChatGPT에게 감사드립니다.
여기에도 게시됨