메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

IT/모바일

AI 시대의 개발자에게 - AI 어시스턴트 프로그래밍의 등장에 대처하는 우리의 자세

한빛미디어

|

2024-08-26

|

by 톰 타울리

4,071

 

AI 어시스턴트 프로그래밍의 등장

 

컴퓨터 시대가 막 열리던 시기, 초기 프로그래머들은 0과 1을 가지고 씨름하며 어셈블리 언어의 도입으로 큰 도움을 받았습니다. 이후 수십 년 동안 프로그래밍 언어는 발전을 거듭해 왔습니다. 그 중에서도 개발자가 중요한 일에 집중할 수 있도록 ‘추상화’를 중점으로 발전했는데요. 

 

특히 2010년대에는 머신러닝과 AI의 부각으로 텐서플로 TensorFlow, 파이토치 PyTorch 같은 전문 라이브러리 및 프레임워크가 프로그래밍의 복잡한 수학적 영역을 추상화했죠. 이를 통해 개발자는 모델 아키텍처와 학습 프로세스에 집중할 수 있게 되었습니다.

 

이어 등장한 것이 바로 AI 어시스턴트 프로그래밍입니다. 가장 최근에 등장한 추상화 내러티브는 GPT 및 기타 거대 언어 모델 (LLM)로 대표되는 AI 어시스턴트 프로그래밍이죠. 이 어시스턴트는 사용자의 명령에 따라 언제든지 코드 생성에 참여할 수 있는 준비가 되어 있는 조수와 같습니다.

 

AI 어시스턴트는 개발자의 능력을 향상시키며, 단조로운 작업이나 복잡한 코드 세부 사항에 얽매이지 않고 고급 문제 해결과 혁신에 집중할 수 있도록 제작되었습니다. 깃허브는 코파일럿 copilot 이라는 단어를 사용하기도 하죠. 

 

AI 어시스턴트 도구들은 코드 초안을 작성하거나 기존 코드를 개선하고, 다양한 도구를 활용하여 개발자가 새로운 시도를 할 수 있도록 돕습니다. 때로는 개발 활동에 필요한 다양한 조언을 해 줍니다. 우리가 원하면 언제, 어디에서든 불과 수 초만에 말이죠.

 

AI가 바꾼 프로그래밍 방식

 

AI 어시스턴트 프로그래밍은 흥미로운 영역이지만, 관련한 기술이 너무나 빠르게 발전하고 있기에 숙련된 개발자들에게도 도전적인 영역일 것입니다. 어시스턴트와 관련된 새로운 기술의 등장은 물론, 이를 활용한 산업 환경의 변화도 학습의 어려움을 높이는 요소입니다. 변화를 따라잡는 것은 달리는 호랑이 등에 올라타는 것처럼 힘겨울지도 모릅니다.


AI 어시스턴트 프로그래밍에 적응하는 것은 선형적인 기존 개발 방법과 비교하여 당황스럽거나 흥미로울 수 있습니다. AI 어시스턴트는 개발자가 직관적으로 이해할 수 없는 방식으로 프로그래밍을 하기도 합니다.


이는 개발자에게 새로운 사고방식을 요구합니다. 개발자는 AI 어시스턴트가 출력한 예상치 못한 결과를 해석하는 방법을 배워야 하는데, 이는 논리적 사고를 중시하는 기존 개발의 프로세스와 다르기에 처음에는 불편할 수 있을 것입니다.

 

 

AI 어시스턴트의 이점

 

지금까지 문제 발생 시 보통 모든 작업을 중단하고 스택 오버플로우나 구글링을 통해 수많은 문서를 탐색했습니다. 하지만 AI 어시스턴트 프로그래밍 도구가 등장하면서 작업 방식에 변화가 생겼습니다. AI 어시스턴트 도구들은 코드 작성 및 수정 사항을 팝업으로 안내해 주며, 이 덕분에 개발자는 개발 환경을 벗어날 필요가 줄어들어 작업에 더욱 집중할 수 있게 되었습니다.

 


일부 어시스턴트는 사용자의 변수, 함수, 메서드 작성 스타일을 파악할 만큼 똑똑합니다. 즉, 개발 요건뿐만 아니라 코드의 전체 분위기를 파악할 수 있습니다. 이를 통해 사용자는 프로젝트별 특성에 맞춘 제안을 받을 수 있죠.


보다 구체적인 이점을 언급해보겠습니다. 개발 과정에는 지루한 요소들, 예를 들면 파일 처리, 데이터 핸들링, API 호출, UI 작업, 정규식, 배시 명령어나 깃허브 연결 등이 있습니다. AI 어시스턴트는 이런 작업들에 특히 효율적입니다.이 도구들은 코드를 이해하고 주석 등의 문서화 작업에도 능숙하여, 개발 문서화 작업을 효율적으로 지원합니다. 

 

 

AI 어시스턴트의 유의점

 

물론 AI 어시스턴트 사용 시 유의해야 할 점도 있습니다. 

 

우선, 생성된 코드의 소유권에 대한 이슈가 있습니다. AI 어시스턴트는 온라인에 공개된 수많은 코드를 학습했기에, 그중 일부에 저작권 문제가 있을 수 있습니다. AI가 이미 존재하는 코드와 너무나 유사한 것을 만들어낸다면 누군가의 소유권을 침범하는 걸까요? AI 도움으로 만들어낸 작업물에서 얻은 수익은 누가 가져 가야 할까요? 이는 법적으로 복잡한 측면이 있기에, 공감대를 형성하는 데 시간이 걸릴 수 있습니다.


보안도 주의해야 할 사항입니다. AI가 생성한 코드는 보안에 취약할 수 있습니다. AI가 어떻게 코드를 생성해내는지는 알 수 없기에(미스터리 박스라고 불립니다), 어떤 결과를 얻을지도 확신할 수 없고 그대로 가져와서 실행하는 것도 어려움이 있을 것입니다. 그렇기에 실제 활용 전에 테스트와 점검을 거쳐야 합니다.


개인정보 보호 측면에서 잠재적 이슈도 존재합니다. AI 어시스턴트는 공개 여부가 불투명한 비공개 코드 저장소의 데이터를 학습했을 수도 있습니다. 이럴 경우 코드 원작자가 활용한 개인 정보가 포함됐을 수 있기에, 활용 전에 생성된 코드를 검토해야만 합니다.


문제는 AI 어시스턴트가 개인정보와 보안 사항을 준수하며 학습되고 훈련되도록 하는 것입니다. 철저한 데이터 처리 및 GDPR과 같은 개인정보 관련 규정을 준수해야 합니다.


AI 어시스턴트가 때때로 잘못 작동할 수 있다는 점도 유의하세요.

 

 정상 작동되더라도, 비효율적인 코드가 생성될 수 있습니다. 이는 AI가 학습한 비효율적인 코드에 기인한 것으로, 생성된 코드를 반드시 검토해야 합니다.

 

 

프로그래밍 이상의 작업


AI 어시스턴트 프로그래밍 도구는 코딩에 국한되지 않고 다양한 작업에 도움을 줍니다. AI 도구를 통해 아이디어를 발굴하고, 프로젝트 기획과 필요한 자료 수집까지, 모든 종류의 작업에 이 도구가 활용 가능하다는 것을 보았습니다. 

 

예를 들어, 최고 수준의 제품 요구사항 정의서와 소프트웨어 요구사항 명세서를 작성한다고 상상해보세요. AI는 이러한 작업을 도와줄 수 있으며, 심지어 더 잘 수행할 수도 있습니다. 제품 출시 준비에도 AI 도구에게 도움을 받을 수 있습니다. AI 도구를 활용하면 이목을 끄는 제품 홍보 마케팅을 기획할 수 있고,  사용자 피드백을 분석하는 데 AI를 활용하면 애플리케이션을 더욱 개선할 수도 있습니다.

 

 

 

프로그래머의 역할


AI가 많은 사람의 일자리를 빼앗을 것이라는 큰 우려도 있습니다. 세상이 기계가 지배하는 시나리오로 향하는 것처럼 보이기도 합니다. 코딩을 배우기 위해 쏟은 모든 노력이 헛수고가 될까요? 그렇지는 않을 것입니다.


이렇게 생각해보면 어떨까요? AI 어시스턴트 프로그래밍 도구는 강력하지만, 사람을 대신할 역량을 가지진 못했습니다. 더 나은 개발자가 될 수 있도록 돕는 조력자 같은 존재입니다. 그들은 실제 개발자처럼 똑똑하거나 독립적이지 않습니다.


하지만 이러한 도구를 사용하지 않는다면 뒤처질 수 있습니다. 개발자가 이러한 AI 시스템으로 작업하기를 기대하는 고용주가 점점 늘어나고 있습니다. 왜 그럴까요? 배척하기에는 이점이 매우 크기 때문입니다. 우리 모두는 시대를 따라잡아야 합니다. AI 도구를 사용하는 것은, AI 가 사람을 대체하기 위해서가 아니라(대체할 수 없기 때문에) 업무 수행을 돕기 때문에 필수적인 기술이 되고 있습니다.


듀러블 Durable 의 설립자이자 CEO인 제임스 클리프트 James Clift 의 이야기로 이번 글을 마칠까 합니다.

 

AI의 발전은 노동 시장의 역학 관계에 변화를 가져오겠지만,  AI와 비즈니스가 결합되면 이점이 더 크다는 점을 인지해야 합니다. 

 

어느 하나가 다른 하나를 대체할 수는 없습니다. 

 

변화를 두려워하지 않고 기술을 수용해 비즈니스 성장과 일자리 창출을 지원하는 것이 핵심입니다. 

AI 도구는 대기업만 사용할 수 있었던 리소스를 모든 사람이 사용할 수 있게 해주는 효과가 있습니다.


위 콘텐츠는 『AI 시대의 프로그래머』에서 내용을 발췌하여 작성하였습니다.

댓글 입력
자료실

최근 본 상품0