Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions 챕터_17/변수미.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
## Code Search

- 구글이 이용하는 코드 브라우징 및 검색 도구
- 구글의 거대한 코드 베이스를 감당하며 쉽게 확장할 수 있는 도구가 필요해 만들어짐

**검색창**이 핵심 요소이다.
타이핑을 시작하면‘제안’ 기능이 작동하여 개발자가 파일, 심볼, 디렉터리로 빠르게 찾아 들어갈 수 있다.

## 구글 개발자가 Code Search를 이용하는 방법

> 코드에 대한 답을 찾고 코드의 의도를 분명하게 이해하기 위해 사용

- 결과에 랭킹을 매겨 보여준다.
- 표현력 좋은 질의어를 제공해 구체적인 조건 적용 가능
- 검색 결과를 동료와 공유하기 쉽다.
- 다른 사람이 어떻게 썻는지 볼 수 있다.
- 호출 계층을 브라우징하고 관련 파일 사이를 빠르게 오갈 수 있도록 해준다
- 특정 문제에 이용할 라이브러리를 찾은 다음, 그 안에서 가장 적합한 구현을 선택하도록 도와준다
- 특정 시점에서 코드베이스의 상태를 찾고 탐색할 수 있다
- 특정 코드 라인가 언제 추가됐는지 볼 수 있고, 그 코드를 추가한 코드 리뷰로 점프 가능하다.

## 독립된 웹 도구로 만든 이유

- 대규모 코드베이스를 지원하기 위해
- 코드 베이스 전체를 로컬로 복사하는게 불가능
- 설정 없이 모든 최신 코드를 보기 위해서
- IDE가 아니라 코드의 탐색, 이해를 위해서만 최적화 하기위해

## 규모가 설계에 미치는 영향

중앙집중형 검색 솔루션은 이용자 수와 코드량이 늘면 함께 비대해질 수 밖에 없다.

그래서 문제는

- 검색 쿼리 지연시간 -> **sparse n-gram 방식** 사용
- 인덱싱 지연시간 -> 랭킹