Offcanvas

AI / 개발자

블로그 | 기계에게 ‘코딩’ 가르치기

2024.01.23 Matt Asay  |  InfoWorld
훌륭한 문서는 기계에게 더욱 중요하다. 개발자와 LLM 모두에게 필요한 정보를 제공한다는 '계층화된 문서화'(tiered documentation)라는 개념에 주목할 만하다.

코드에 대한 문서화가 더 중요하다는 것은 명백한 사실이다. 어떤 개발자도, 어떤 소프트웨어도 백지 상태에서 존재하기 어렵다. 다른 개발자들이 이해할 수 있도록 코드를 작성할 필요가 있다.

하지만 기계는 어떨까? 기계도 좋은 문서가 필요할까? 필자의 대답은 '그렇다'이다. 그리고 이는 블라드 로네스쿠가 언급한 '계층화된 문서화'와 연결된다. 계층형 문서란 ‘인간 사용자를 위한 문서 세트와 LLM(대규모 언어 모델) 학습을 위한 문서 세트가 따로 있는 것’을 의미한다. 

전자는 사람들이 쉽게 사용할 수 있어야 하고, 후자는 아마존 코드 위스퍼러나 깃허브 코파일럿과 같은 도구가 점점 더 나은 코드를 생성할 수 있도록 상세하게 작성되어야 한다. 개발자의 생산성 향상이라는 궁극적인 목표를 가진 매력적인 개념이다. 그렇다면 이러한 목표를 달성하려면 무엇이 필요할까?

훌륭한 문서의 중요성
개발자에게 생산성을 높이기 위해 무엇이 필요한지 물어보면 ‘훌륭한 문서화’라는 대답이 빠지지 않는다. 실제로 스플래시데이터(SlashData)는 수년간 이 질문을 해왔는데, 이 응답이 최우선 순위로 꼽히곤 했다.


좋은 문서는 개발자의 위시리스트에서 항상 1순위를 차지한다.

물론 말처럼 쉽지 않다. 개발자 제레미 미콜라의 설명에 따르면, 지식 전달을 위한 문서의 중요성은 누구나 알고 있지만, 소프트웨어 개발자가 하기 싫은 작업은 언제나 문서 작업이었다. 키슬리 버마는, 좋은 문서를 작성하기란 정말 어렵고 코드 작성 자체만큼 재미있지도 않다고 말한 바 있다.

그런데 더 어려워지고 있기도 하다. 

개발자 야쿱 코치는 "(문서 작성에 있어) 가장 큰 문제는 명확성"이라고 말했다. 그는 "기계가 아닌 인간을 위해 코드를 작성하고 있다. 작동하도록 만드는 것과 구조화 및 유지 관리가 가능하도록 만드는 것은 또 다른 부분이다"라고 덧붙였다. 

코치가 이 말을 한 2022년에도 그랬을 것이지만, 2024년에는 아마존 코드 위스퍼러나 깃허브 코파일럿과 같은 LLM 기반 코딩 어시스턴트가 등장함에 따라 기계가 문서를 이해하도록 하는 것도 중요해졌다. 그리고 기계는 사람과 다른 문서, 예를 들어 더 자세한 문서를 필요로 한다.

계층화된 문서화 도입
로네스쿠는 “일각에서 LLM 코드 어시스턴트의 해결책/해결 방법으로 계층형 문서를 실험하고 있다. 문서가 멍청하다면 (산출물도) 멍청하기 때문이다”라고 말했다. 실제로 몇몇 소프트웨어 기업은 파트너와 직접 협력하여 샘플 코드, 문서 등을 LLM에 직접 제공함으로써 이 문제를 해결하려고 시도하고 있다. LLM 코드 어시스턴트에 대한 해결책의 일환이다. 일례로 필자가 속한 몽고DB는 AWS와 함께 이 작업을 수행하고 있다. 단 아직 확장성에 한계가 있다. LLM이 스스로 크롤링할 수 있는 문서를 개발자가 구축하는 것이 가장 이상적이다.

또한 개발자가 요청할 때 최상의 코드를 산출할 수 있도록 하기 위해서는 LLM이 소프트웨어를 심층적으로 이해할 수 있도록 해야 한다. 그러나 안타깝게도 "대부분의 개발자 문서(또는 사용자 문서)는 초보자를 위해 작성되는 경우가 많다. 이것이 걸림돌이 되고 있다"라고 로네스쿠는 지적했다.

사람에게는 빠른 시작과 기본적인 코드 샘플을 제공하는 것이 적절하지만, 기계에 그런 종류의 제한된 데이터를 제공하면 "진지한 프로덕션 수준의 코드를 제안하는 데 어려움을 겪을 것"이라는 설명이다.

계층형 문서의 기본 개념은 "기본적으로 LLM용 크롤링 봇은 매우 상세하고 심층적인 문서를 얻고, 인간은 보다 친근한 문서를 얻도록 하는 것"이라고 로네스쿠는 요약했다.

현실은 어떨까? 적어도 지금은 어렵다. 필자가 알기로는 아무도 이 작업을 성공적으로 수행하지 못했다. 하지만 앞으로도 못할 이유는 없다. 인간과 기계 모두를 만족시키는 문서를 제공하는 것은 까다롭겠지만, 방법롭이 개발되면서 개발자에게 한층 밝은 미래가 펼쳐질 것이다.

오라일리의 마이크 루키데스가 전망한 것처럼, 컴파일러를 대체할 만큼 효과적이고 일관성 있게 코드를 뱉어낼 수 있는 LLM이 나오기까지는 아직 먼 길이 남았다. 하지만 개발자가 훌륭한 코드를 작성하는 데 LLM이 도움을 줄 수 있는 세상이 이미 도래했다. 개발자를 위한 문서와 개발자의 부조종사인 LLM을 개선하는 것은 개발자의 생산성을 향상시키는 데 매우 중요한 일이 될 것이다. 

* Matt Asay는 몽고DB의 개발자 관계 업무를 담당하고 있다. 그러나 본 글은 몽고DB의 입장이 아니다. ciokr@idg.co.kr
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
Sponsored
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.