맨위로가기

구글 카이스

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

구글 카이스(Kythe)는 구글 내부 코드 분석 도구인 Grok에서 발전된 오픈 소스 프로젝트이다. 소스 코드의 상호 참조 정보를 생성, 저장, 질의하여 개발자가 코드베이스를 쉽게 이해하고 분석하도록 돕는 크로스 플랫폼 도구이며, C++, 자바, 파이썬 등 다양한 프로그래밍 언어를 지원한다. 2015년 아파치 라이선스 2.0으로 공개되었으며, 공식 웹사이트는 Kythe이다.

더 읽어볼만한 페이지

  • 코드 검색 엔진 - 애저 데브옵스 서버
    애저 데브옵스 서버는 팀 파운데이션 서버에서 시작하여 변경된 마이크로소프트의 온-프레미스 데브옵스 솔루션으로, 다중 계층 아키텍처를 기반으로 작업 항목, 소스 제어, 보고 기능, 팀 빌드, 릴리스 관리 등의 기능을 제공한다.
  • 코드 검색 엔진 - 오픈 허브
    오픈 허브는 제이슨 앨런과 스콧 콜리슨이 설립한 오픈 소스 프로젝트 분석 플랫폼으로, 소프트웨어 라이선스 정보, 소스 코드 라인 수, 커밋 통계 등의 데이터 분석 및 통계 기능을 제공하여 오픈 소스 프로젝트의 이해, 개발 활동 추적, 관련 프로젝트 검색을 지원하고 한국 오픈 소스 프로젝트의 국제적 인지도 향상에 기여한다.
  • 구글의 서비스 - 유튜브
    유튜브는 2005년 설립되어 다양한 비디오 콘텐츠를 공유하는 세계 최대 온라인 동영상 플랫폼으로 성장, 구글에 인수된 후 다양한 서비스를 출시하고 기술적 발전을 이루었으나, 저작권 문제, 극단주의 콘텐츠 확산, 개인정보보호 논란 등 사회적 문제에 직면해 광고 차단 프로그램 단속 강화 정책을 시행하고 있다.
  • 구글의 서비스 - 구글 검색
    구글 검색은 래리 페이지와 세르게이 브린이 개발한 검색 엔진으로, 페이지랭크 알고리즘을 사용하며 검색 품질 개선을 위한 다양한 업데이트를 진행해 왔으나, 개인 정보 보호, 편향성 등의 문제로 비판받기도 한다.
구글 카이스 - [IT 관련 정보]에 관한 문서
기본 정보
이름Google Kythe
원래 이름Project Grok (프로젝트 그록)
개발사구글
프로그래밍 언어C++
Go
자바
자바스크립트

클로저
운영 체제데비안
종류인덱서 및 크로스 레퍼런서
라이선스아파치 라이선스 2.0
웹사이트카이스 웹사이트
최신 릴리스 버전아직 없음 (2015년 2월 기준)

2. 역사

구글 카이스는 소스 코드 정보를 데이터로 표현, 접근, 조회하기 위한 언어 상호 운용적 프로토콜과 데이터 포맷을 정의한다. 카이스는 카이스 특화 포맷으로 인덱싱 정보, 시맨틱 정보, 메타데이터를 만드는 편성된 빌드 시스템과 컴파일러에 의존한다. 편성된 빌드를 실행하여 얻은 이 정보는 언어 상호 운용적인 그래프 구조로 저장된다. 끝으로 이 그래프 구조는 코드 기반에 관한 질의에 답하기 위해 조회가 가능하다.[13]

구글 카이스는 구글이 개발 중인 오픈 소스 프로젝트이며, 아파치 라이선스 2.0으로 배포된다.[14]

2. 1. Grok

구글 카이스는 Grok이라는 내부 프로젝트에서 비롯되었다.

Grok은 2008년 스티브 예그가 제안하였다.[15] 예그는 소프트웨어 프로젝트가 일상적으로 3개 이상의 프로그래밍 언어를 사용하지만, 개발 도구는 언어별로 특화되어 있고 여러 프로그래밍 언어를 잘 처리하지 못한다는 점을 지적했다. IDE에 언어 지원을 추가하는 것은 어렵고, IDE의 임시 분석 도구는 실제 파서 및 컴파일러보다 성능이 떨어지는 경향이 있다.[7]

Grok의 일부는 구글 카이스가 발표되기도 전에 공개적으로 출시되었다. 2010년 구글은 Grok의 일부로 개발된 Python 정적 분석기를 출시했다.[8]

2012년에는 C++, Java, Python, JS 및 "2개의 내부 언어"가 Grok에 의해 지원되었다. 데이터베이스를 쿼리하고 소스 코드를 시각적으로 탐색하는 기능을 갖춘 브라우저 클라이언트가 있었고, Emacs 클라이언트도 있었다.[7]

크롬 코드 검색 브라우저는 Grok 인덱스를 사용하여 소스 코드의 모든 기호에 대한 정의에 대한 빠른 링크를 제공한다.[9][10]

2. 2. Kythe

구글 카이스(Kythe)는 Grok이라는 내부 프로젝트에서 비롯되었다. Grok은 2008년 스티브 예그가 제안하였다.[15]

구글 카이스는 구글이 개발 중인 오픈 소스 프로젝트이다.[14] 아파치 라이선스 2.0으로 배포된다.

구글 카이스의 코어는 소스 코드 정보를 데이터로 표현, 접근, 조회하기 위한 언어 상호 운용적 프로토콜과 데이터 포맷을 정의한다. 카이스는 카이스 특화 포맷으로 인덱싱 정보, 시맨틱 정보, 메타데이터를 만드는 편성된 빌드 시스템과 컴파일러에 의존한다. 편성된 빌드를 실행하여 얻은 이 정보는 언어 상호 운용적인 그래프 구조로 저장된다. 끝으로 이 그래프 구조는 코드 기반에 관한 질의에 답하기 위해 조회가 가능하다.[13]

3. 기술적 특징

구글 카이스는 소스 코드 정보를 데이터로 표현하고, 접근 및 조회하기 위한 언어 중립적인 프로토콜과 데이터 형식을 정의한다. 카이스는 지정된 형식으로 인덱싱 정보, 의미 정보, 메타데이터를 생성하는 계측된 빌드 시스템 및 컴파일러에 의존한다.[4]

3. 1. 데이터 표현 및 저장

구글 카이스의 핵심은 소스 코드 정보를 데이터로 표현, 접근, 조회하기 위한 언어 상호 운용적 프로토콜과 데이터 포맷을 정의하는 것이다. 카이스는 카이스 특화 포맷으로 인덱싱 정보, 시맨틱 정보, 메타데이터를 만드는 편성된 빌드 시스템과 컴파일러에 의존한다. 편성된 빌드를 실행하여 얻은 이 정보는 언어 상호 운용적인 그래프 구조로 저장된다. 결과적으로 이 그래프 구조는 코드 기반에 관한 질의에 답하기 위해 조회가 가능하다.[13]

3. 2. 질의 및 분석

구글 카이스의 코어는 소스 코드 정보를 데이터로 표현, 접근, 조회하기 위한 언어 상호 운용적 프로토콜과 데이터 포맷을 정의한다. 카이스는 카이스 특화 포맷으로 인덱싱 정보, 시맨틱 정보, 메타데이터를 만드는 편성된 빌드 시스템과 컴파일러에 의존한다. 편성된 빌드를 실행하여 얻은 이 정보는 언어 상호 운용적인 그래프 구조로 저장된다. 끝으로 이 그래프 구조는 코드 기반에 관한 질의에 답하기 위해 조회가 가능하다.[13]

3. 3. 언어 상호 운용성

구글 카이스의 코어는 소스 코드 정보를 데이터로 표현, 접근, 조회하기 위한 언어 상호 운용적 프로토콜과 데이터 포맷을 정의한다. 카이스는 카이스 특화 포맷으로 인덱싱 정보, 시맨틱 정보, 메타데이터를 만드는 편성된 빌드 시스템과 컴파일러에 의존한다. 편성된 빌드를 실행하여 얻은 이 정보는 언어 상호 운용적인 그래프 구조로 저장된다. 끝으로 이 그래프 구조는 코드 기반에 관한 질의에 답하기 위해 조회가 가능하다.[13]

스티브 예그는 2008년에 소프트웨어 프로젝트가 일상적으로 3개 이상의 프로그래밍 언어를 사용하지만, 개발 도구는 언어별로 특화되어 있고 여러 프로그래밍 언어를 잘 처리하지 못한다는 점을 지적했다. IDE에 언어 지원을 추가하는 것은 어렵고, IDE의 임시 분석 도구는 실제 파서 및 컴파일러보다 성능이 떨어지는 경향이 있다고 하였다.[7]

2012년에는 C++, Java, Python, JS 및 "2개의 내부 언어"가 그록에 의해 지원되었다. 데이터베이스를 쿼리하고 소스 코드를 시각적으로 탐색하는 기능을 갖춘 브라우저 클라이언트가 있었고, Emacs 클라이언트도 있었다.[7]

4. 관련 프로젝트

카이스와 비슷한 목표를 가진 프로젝트로는 페이스북 pfff, Sourcegraph srclib, 오라클 Frappé, 마이크로소프트 언어 서버 프로토콜 등이 있다.[11]

4. 1. 페이스북 pfff

페이스북의 pfff는 프로그램 분석, 리팩토링, 코드 탐색 등을 위한 도구 모음이다. 이 프로젝트는 2011년 9월에 종료되었으며, 더 이상 유지 관리되지 않는다.[11]

4. 2. Sourcegraph srclib

Sourcegraph의 srclib은 소프트웨어 개발 도구 모음이다. 이 도구는 소스 코드 분석, 코드 네비게이션, 문서화 생성 등 다양한 기능을 제공한다.[11]

4. 3. 오라클 Frappé

오라클 Frappé는 오라클 랩스에서 진행한 프로그래밍 도구 개발 프로젝트였다.[11]

4. 4. 마이크로소프트 언어 서버 프로토콜

마이크로소프트의 언어 서버 프로토콜은 여러 언어에 대한 구현과 다른 여러 개발 도구에 통합되어 Visual Studio Code의 일부로 설계되었다.[11]

5. 활용 사례

카이스는 구글 내부 프로젝트인 그록(Grok)에서 시작되었다.[6] 2012년에는 C++, Java, Python, JS 및 "2개의 내부 언어"가 그록에 의해 지원되었다. 데이터베이스를 쿼리하고 소스 코드를 시각적으로 탐색하는 기능을 갖춘 브라우저 클라이언트와 Emacs 클라이언트가 있었다.[7]

크롬 코드 검색 브라우저는 그록 인덱스를 사용하여 소스 코드의 모든 기호에 대한 정의에 대한 빠른 링크를 제공한다.[10]

참조

[1] 웹사이트 Google Open Source Blog: Kythe: a new approach to making developer tools http://google-openso[...]
[2] 웹사이트 Exclusive: Google lays off staff from Flutter, Dart and Python teams weeks before its developer conference https://techcrunch.c[...] 2024-05
[3] 웹사이트 item https://news.ycombin[...]
[4] 웹사이트 Kythe - An Overview of Kythe http://www.kythe.io/[...]
[5] 웹사이트 Google Kythe Website http://www.kythe.io/ Google 2015-02-23
[6] 웹사이트 Notes from the Mystery Machine Bus https://plus.google.[...]
[7] 웹사이트 Bryan Summersett - Steve Yegge and Grok http://bsumm.net/201[...] 2012-08-11
[8] 웹사이트 Issue 1541: new static analyzer from Google - Jython tracker http://bugs.jython.o[...]
[9] 웹사이트 Chromium Code Search https://cs.chromium.[...]
[10] 웹사이트 Kythe - Exploring Kythe's Sample Web UI http://www.kythe.io/[...] 2015-04-30
[11] 웹사이트 Using Clang to Visualize Large Codebases http://llvm.org/devm[...] 2015-09-25
[12] 웹인용 Google Open Source Blog: Kythe: a new approach to making developer tools http://google-openso[...]
[13] 웹인용 Kythe - An Overview of Kythe http://www.kythe.io/[...]
[14] 웹인용 Google Kythe Website http://www.kythe.io/ Google 2015-02-23
[15] 웹인용 Notes from the Mystery Machine Bus https://plus.google.[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com