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

  • 박무북춘천0.1℃
  • 맑음진도군10.1℃
  • 맑음영덕10.8℃
  • 흐림양평2.4℃
  • 흐림영월-0.5℃
  • 맑음광양시11.0℃
  • 맑음통영12.3℃
  • 맑음흑산도12.7℃
  • 맑음순천10.1℃
  • 구름많음인제1.8℃
  • 맑음북창원10.4℃
  • 맑음상주3.3℃
  • 박무광주5.5℃
  • 맑음보령4.3℃
  • 흐림천안0.6℃
  • 맑음북부산10.9℃
  • 맑음봉화2.1℃
  • 맑음속초10.0℃
  • 맑음고창군2.8℃
  • 맑음북강릉10.6℃
  • 흐림제천0.8℃
  • 맑음거제10.1℃
  • 비홍성-0.4℃
  • 맑음여수9.2℃
  • 맑음청송군4.2℃
  • 흐림이천1.7℃
  • 흐림부여0.8℃
  • 맑음양산시10.7℃
  • 연무대구7.4℃
  • 맑음고산16.4℃
  • 맑음창원9.1℃
  • 구름많음홍천1.4℃
  • 맑음남해8.4℃
  • 맑음금산0.3℃
  • 맑음장흥8.8℃
  • 안개청주0.2℃
  • 맑음부산15.0℃
  • 맑음영주3.4℃
  • 연무안동3.7℃
  • 맑음의성3.5℃
  • 맑음강릉10.7℃
  • 맑음합천7.2℃
  • 박무인천1.8℃
  • 맑음경주시9.0℃
  • 흐림강화-0.2℃
  • 박무목포4.3℃
  • 맑음고창4.2℃
  • 박무백령도4.6℃
  • 흐림파주0.0℃
  • 맑음의령군6.3℃
  • 맑음영광군2.6℃
  • 흐림서산1.0℃
  • 맑음영천6.2℃
  • 맑음구미5.4℃
  • 맑음포항9.9℃
  • 맑음보성군10.1℃
  • 구름조금완도8.9℃
  • 맑음전주2.8℃
  • 흐림철원-0.9℃
  • 맑음밀양8.4℃
  • 흐림부안1.1℃
  • 맑음성산14.8℃
  • 맑음정읍2.1℃
  • 맑음추풍령5.8℃
  • 맑음제주15.3℃
  • 맑음문경4.5℃
  • 맑음울릉도9.9℃
  • 맑음강진군7.8℃
  • 맑음고흥11.1℃
  • 맑음임실3.5℃
  • 구름많음보은-0.8℃
  • 흐림군산0.8℃
  • 구름많음원주1.6℃
  • 흐림서청주0.1℃
  • 맑음함양군5.2℃
  • 맑음산청4.6℃
  • 구름많음순창군-0.1℃
  • 흐림동두천0.5℃
  • 맑음서귀포15.8℃
  • 맑음진주7.8℃
  • 맑음거창4.2℃
  • 흐림춘천0.4℃
  • 맑음태백4.4℃
  • 맑음해남9.6℃
  • 흐림충주0.8℃
  • 흐림대전1.2℃
  • 박무서울2.8℃
  • 맑음장수5.7℃
  • 맑음정선군1.2℃
  • 맑음남원1.2℃
  • 맑음울진12.6℃
  • 흐림세종0.5℃
  • 박무수원3.0℃
  • 맑음김해시11.9℃
  • 맑음울산11.0℃
  • 맑음동해9.8℃
  • 맑음대관령1.9℃
  • 2026.01.16 (금)

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