CWN(CHANGE WITH NEWS) - TabNine, 대학생이 개발한 딥러닝 기반 "코드 자동 완성 도구"

  • 맑음부여8.5℃
  • 맑음보령6.2℃
  • 맑음완도12.2℃
  • 맑음서울9.1℃
  • 구름조금성산11.7℃
  • 맑음제천3.4℃
  • 맑음포항12.1℃
  • 맑음태백3.2℃
  • 맑음제주15.5℃
  • 맑음대구6.5℃
  • 맑음동해7.9℃
  • 맑음합천6.2℃
  • 맑음군산8.9℃
  • 맑음영월4.2℃
  • 맑음문경8.3℃
  • 맑음서산5.4℃
  • 맑음강릉12.3℃
  • 맑음의성1.9℃
  • 맑음양산시8.0℃
  • 맑음김해시11.0℃
  • 맑음고산15.1℃
  • 맑음이천7.1℃
  • 맑음수원6.8℃
  • 구름조금동두천5.6℃
  • 맑음북부산7.1℃
  • 맑음영주1.3℃
  • 구름많음북춘천2.0℃
  • 맑음영천3.7℃
  • 맑음장수2.7℃
  • 맑음남해10.0℃
  • 맑음산청5.4℃
  • 맑음파주4.6℃
  • 맑음진도군8.1℃
  • 구름조금홍천4.0℃
  • 맑음고창군6.4℃
  • 맑음천안4.7℃
  • 구름많음백령도10.1℃
  • 맑음봉화-0.4℃
  • 맑음원주6.7℃
  • 맑음함양군3.8℃
  • 맑음대관령4.5℃
  • 구름조금통영12.5℃
  • 맑음부산13.5℃
  • 맑음여수11.5℃
  • 맑음흑산도12.5℃
  • 맑음세종7.5℃
  • 구름많음남원6.3℃
  • 구름조금속초11.6℃
  • 맑음대전8.6℃
  • 맑음밀양5.2℃
  • 맑음순천3.9℃
  • 맑음추풍령4.9℃
  • 맑음양평5.0℃
  • 맑음순창군5.5℃
  • 맑음의령군3.6℃
  • 구름조금인천9.9℃
  • 맑음정읍7.8℃
  • 맑음정선군4.1℃
  • 구름많음춘천2.5℃
  • 맑음구미5.2℃
  • 맑음울산11.0℃
  • 맑음장흥5.6℃
  • 맑음청송군1.5℃
  • 맑음진주4.9℃
  • 구름많음거제10.6℃
  • 맑음경주시4.7℃
  • 맑음보성군7.8℃
  • 맑음보은3.8℃
  • 맑음홍성7.8℃
  • 맑음울진9.1℃
  • 맑음북강릉10.9℃
  • 맑음광양시9.9℃
  • 맑음상주10.8℃
  • 맑음임실5.4℃
  • 맑음광주10.4℃
  • 구름조금강화5.7℃
  • 맑음거창3.2℃
  • 맑음울릉도13.4℃
  • 맑음영광군8.5℃
  • 맑음해남6.7℃
  • 맑음목포12.5℃
  • 맑음인제2.9℃
  • 맑음서청주7.9℃
  • 맑음창원10.5℃
  • 맑음청주9.3℃
  • 맑음고창5.8℃
  • 맑음금산5.6℃
  • 맑음부안8.3℃
  • 맑음강진군7.3℃
  • 맑음영덕9.0℃
  • 맑음고흥8.7℃
  • 맑음서귀포14.9℃
  • 맑음전주8.9℃
  • 맑음충주4.9℃
  • 구름조금철원7.7℃
  • 맑음북창원10.3℃
  • 맑음안동4.8℃
  • 2025.11.25 (화)

TabNine, 대학생이 개발한 딥러닝 기반 "코드 자동 완성 도구"

이진영 / 기사승인 : 2019-07-22 23:11:33
  • -
  • +
  • 인쇄

프로그래밍을 하기 위해서 모든 코드를 일일히 작성해야 할까? 이제는 열심히 일하는 것 보다 똑똑하게 일하는 방법이 중요하다. 워털루 대학교의 컴퓨터 과학 학생 Jacob Jackson(제이콥 잭슨)은 딥러닝 소프트웨어를 사용해 소스 코드를 자동으로 완성하는 도구인 "Deep TabNine"을 개발했다.

TabNine은 프로그래머가 입력하지 않은 나머지 코드를 자동으로 예측하는 코드 자동 완성 도구이다. 인터넷 검색창의 검색어 자동 완성 기능과 유사하다. Deep TabNine은 23개의 주요 프로그래밍 언어와 5개의 코드 편집기를 지원하는 등 코딩에 소요되는 시간을 효과적으로 줄여준다. 이미 수많은 소스 코드 자동 완성 도구가 있지만, Deep TabNine에 대한 소식은 단 24시간 만에 4000개가 넘는 트위터 좋아요를 받는 등 소셜 미디어에 빠르게 퍼져 많은 관심을 받고 있다.

TabNine의 개발자 잭슨은 The Register에 "자동완성은 이런 종류의 기술에 유용한 사용 사례입니다.", "모든 프로그래머는 인공 지능을 사용하면 확실히 속도를 높일 수 있는 코드를 작성하는 데 많은 시간을 소비합니다. 언어 자동 완성과 비교했을 때 코드 자동 완성이 기술적으로 더 쉬운 문제입니다."라고 말했다.

Deep TabNine은 인간이 입력하는 대로 각 소스 행을 분석하고, 페어 프로그래밍(짝 코딩) 파트너와 같이 각 구문을 완료하는 방법을 제안한다. 코더는 제안 목록에서 코드를 선택하는 방식으로 미완성 라인을 일일이 입력하지 않고 프로그래밍을 완료할 수 있다. 이 도구는 사실적인 단락을 생성할 수 있는 대형 변환기 기반 언어 모델인 GPT-2의 아키텍처를 기반으로 한다.

GPT-2는 OpenAI가 개발한 대형 변압기 기반 언어 모델로 기계 번역, 질문 응답, 독해 및 요약과 같은 다양한 언어 작업에서 강력한 성능을 보여준다. 뉴스 기사의 오프닝 문장이나 소설이나 코드, 그리고 다음 문장이 어떤 것일지를 예상하는 글쓰기 프롬프트를 제공한다. 뉴스 기사, 소설 또는 코드 줄의 시작 문장과 같은 서면 프롬프트를 제공할 수 있는 훈련된 신경망을 특징으로 하며, 다음에 해야 할 일을 예측한다. 사람들이 어떻게 주제, 아이디어, 단어를 묶는지에 대한 아이디어를 얻기 위해 수백만 개의 웹 페이지를 연구해 예측 결과를 제공한다.

개발에 사용된 GPT-2의 버전은 알려지지 않았지만 잭슨은 "매개변수가 더 많은 모델을 사용하는 것이 항상 도움이 되는 것은 아닙니다.", "그 제안들은 점점 더 똑똑해지겠지만, 타이핑을 할 때 더 느리고 반응성이 떨어지게 될 것입니다."라고 말했다.

TabNine은 자연어로 작성된 문서에서 함수 이름, 매개변수 및 반환 유형을 추론한다.
[tabnine.com]

Deep TabNine은 전통적인 코드 완성 도구로 이해하기 어려웠던 사소한 세부 사항을 잘 활용하는데, 자연어로 작성된 문서에서 함수 이름, 매개 변수 및 반환 유형을 추론할 수 있다. 또한 소규모 프로젝트나 기존의 프로젝트에 새로운 라이브러리가 추가될 때 기존의 지식을 적용하는 등 사용자가 필요로 하는 유용한 새로운 기능을 제공한다. 따라서 Deep TabNine은 소스 코드의 맥락을 알고 있어야 하며, 따라서 일반적인 코드 완성 도구 키트보다 더 똑똑해야 한다. 예를 들어 수학적인 부분에 집중한 기능에 대해 코딩을 할 때 텍스트 문자열을 다루는 방법이 아니라 수학적 연산에 대한 자동완성을 제안한다.

이 도구는 다른 코드 완성 플러그인과 달리 프로그래머의 사용 기록 및 습관에 따라 자동으로 컴파일되고, 그것이 제공하는 다른 예측의 확률을 포함한다. 이전 프로젝트에 비슷한 코드를 작성했을 경우 제안 목록을 제공할 때 박스에 주소를 직접 표시한다.

고성능 자동 완성 기능은 딥러닝 알고리즘에 의해 지원된다. 자동 완성 제안을 위해 초당 100억 개 이상의 FLOPS가 필요하다. 개인 컴퓨터로 효율적으로 구동이 어려울 경우 베타 등급 클라우드 서비스를 통해 DeepTab Nine을 사용할 수 있다. 이 서비스는 백엔드에서 모든 예측을 진행하고 인터넷을 통해 코드 편집자에게 제안 사항을 전송한다.

참고 사이트: theregister, infoworld, scyncedreview

[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]

최신기사

뉴스댓글 >

- 띄어 쓰기를 포함하여 250자 이내로 써주세요.
- 건전한 토론문화를 위해, 타인에게 불쾌감을 주는 욕설/비방/허위/명예훼손/도배 등의 댓글은 표시가 제한됩니다.

댓글 0

Today

Hot Issue