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

  • 맑음함양군12.6℃
  • 맑음추풍령11.1℃
  • 맑음고산17.1℃
  • 맑음서귀포16.9℃
  • 맑음성산17.0℃
  • 맑음서산7.7℃
  • 맑음광양시15.7℃
  • 박무청주1.6℃
  • 맑음목포7.3℃
  • 맑음북부산15.2℃
  • 구름조금진도군10.3℃
  • 맑음거창12.5℃
  • 맑음홍천4.2℃
  • 맑음부여4.7℃
  • 맑음천안4.4℃
  • 맑음남원9.1℃
  • 맑음남해11.5℃
  • 구름많음파주1.9℃
  • 맑음울진12.5℃
  • 맑음대구12.8℃
  • 맑음구미9.5℃
  • 맑음동해11.7℃
  • 맑음보성군13.3℃
  • 맑음김해시15.1℃
  • 맑음영광군8.6℃
  • 맑음충주3.7℃
  • 맑음창원13.8℃
  • 맑음제주17.2℃
  • 흐림서청주1.5℃
  • 맑음북창원13.8℃
  • 구름많음부안3.1℃
  • 맑음고창10.0℃
  • 맑음진주15.0℃
  • 맑음문경8.9℃
  • 맑음밀양14.4℃
  • 흐림세종1.4℃
  • 맑음의령군11.4℃
  • 맑음양평4.7℃
  • 맑음청송군10.1℃
  • 맑음거제12.5℃
  • 맑음강진군14.8℃
  • 맑음포항14.3℃
  • 맑음정선군6.3℃
  • 박무서울5.8℃
  • 구름조금완도11.5℃
  • 맑음울릉도10.5℃
  • 맑음임실11.3℃
  • 연무수원7.8℃
  • 맑음안동8.7℃
  • 맑음경주시12.8℃
  • 맑음대관령5.5℃
  • 맑음원주5.6℃
  • 박무대전4.6℃
  • 맑음여수12.0℃
  • 맑음장흥15.4℃
  • 맑음춘천2.7℃
  • 맑음울산15.1℃
  • 맑음봉화8.7℃
  • 맑음상주8.1℃
  • 박무전주4.7℃
  • 맑음영월3.5℃
  • 맑음제천4.2℃
  • 안개홍성1.0℃
  • 맑음고창군9.1℃
  • 구름많음강화1.8℃
  • 맑음순천15.0℃
  • 맑음합천13.4℃
  • 맑음인제5.2℃
  • 맑음금산9.5℃
  • 박무백령도3.5℃
  • 맑음영덕13.5℃
  • 맑음영천11.5℃
  • 맑음보령9.4℃
  • 맑음광주11.3℃
  • 맑음강릉13.0℃
  • 박무북춘천2.2℃
  • 맑음흑산도11.1℃
  • 맑음장수12.2℃
  • 맑음양산시15.0℃
  • 맑음영주7.4℃
  • 맑음철원1.0℃
  • 맑음북강릉11.0℃
  • 맑음부산16.3℃
  • 맑음정읍8.3℃
  • 흐림이천2.9℃
  • 박무인천5.0℃
  • 맑음군산5.3℃
  • 맑음고흥14.4℃
  • 맑음태백9.3℃
  • 맑음속초10.8℃
  • 맑음산청11.0℃
  • 맑음해남12.9℃
  • 맑음순창군9.2℃
  • 맑음보은8.0℃
  • 맑음의성9.9℃
  • 맑음동두천4.0℃
  • 맑음통영15.5℃
  • 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