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

  • 구름많음고창22.5℃
  • 구름많음부여21.6℃
  • 구름많음영광군22.2℃
  • 흐림태백17.1℃
  • 구름많음흑산도21.1℃
  • 흐림거창21.7℃
  • 흐림동두천21.7℃
  • 흐림춘천22.8℃
  • 흐림안동21.0℃
  • 흐림철원22.0℃
  • 흐림울산21.0℃
  • 흐림파주21.7℃
  • 흐림서산22.2℃
  • 흐림합천22.1℃
  • 구름많음임실21.2℃
  • 맑음동해20.4℃
  • 흐림영월19.5℃
  • 흐림서청주21.9℃
  • 흐림양산시23.2℃
  • 구름조금속초20.6℃
  • 맑음고흥22.9℃
  • 흐림울진21.2℃
  • 흐림영덕20.8℃
  • 흐림서울23.5℃
  • 흐림추풍령20.3℃
  • 흐림충주20.3℃
  • 구름조금거제22.6℃
  • 흐림함양군22.3℃
  • 구름많음부안22.5℃
  • 흐림정읍23.3℃
  • 구름많음고창군22.2℃
  • 구름조금인제20.4℃
  • 흐림보령23.1℃
  • 흐림구미21.9℃
  • 흐림인천23.3℃
  • 흐림청주23.2℃
  • 흐림목포22.3℃
  • 구름많음남원22.1℃
  • 흐림원주20.7℃
  • 구름조금광양시22.8℃
  • 구름조금보성군23.1℃
  • 맑음강진군22.4℃
  • 흐림경주시20.6℃
  • 흐림장수20.5℃
  • 흐림포항21.1℃
  • 구름조금순천22.0℃
  • 흐림영천20.2℃
  • 맑음성산23.7℃
  • 흐림청송군19.6℃
  • 흐림대전21.5℃
  • 구름많음군산22.1℃
  • 맑음전주23.3℃
  • 흐림정선군18.5℃
  • 구름조금울릉도21.4℃
  • 흐림봉화19.9℃
  • 흐림홍천21.0℃
  • 흐림강화21.7℃
  • 흐림김해시23.3℃
  • 흐림북춘천22.1℃
  • 흐림순창군22.5℃
  • 맑음북강릉19.5℃
  • 흐림북부산23.1℃
  • 흐림제천20.0℃
  • 구름조금고산23.2℃
  • 흐림보은21.0℃
  • 구름많음북창원24.0℃
  • 흐림영주20.3℃
  • 흐림양평21.5℃
  • 흐림문경20.7℃
  • 흐림천안22.1℃
  • 구름많음창원23.0℃
  • 구름많음부산22.8℃
  • 구름조금광주22.7℃
  • 구름조금해남22.4℃
  • 흐림대구22.0℃
  • 맑음서귀포25.3℃
  • 맑음제주24.7℃
  • 맑음장흥22.9℃
  • 흐림밀양23.9℃
  • 흐림금산21.4℃
  • 구름많음백령도20.2℃
  • 흐림진도군22.0℃
  • 구름많음진주22.3℃
  • 흐림의성20.5℃
  • 맑음여수23.4℃
  • 흐림수원22.2℃
  • 흐림이천20.8℃
  • 구름많음완도22.2℃
  • 흐림홍성22.7℃
  • 구름많음산청21.8℃
  • 구름많음의령군21.9℃
  • 흐림세종21.6℃
  • 구름조금대관령14.5℃
  • 구름조금남해22.2℃
  • 구름조금통영23.0℃
  • 흐림상주21.2℃
  • 맑음강릉21.2℃
  • 2025.10.04 (토)

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