챕터 정리
- Code Search는 grep을 대체하여 개발자 생산성을 높이는 핵심 도구로 성장했고, 그 과정에서 구글의 웹 검색 기술을 활용했다.
- IDE에서 감당할 수 있는 작은 프로젝트를 진행하고 있으면 큰 의미는 없다.
- 하지만 거대한 코드베이스에서 작업 중인 엔지니어들의 생산성을 책임지려면 값진 깨달음을 선물해 준다.
- Code Search가 주는 가장 중요한 가치는 명백성이다.
- 코드를 이해하는 것은 개발하고 유지보수하는 열쇠이다.
- 그래서 측정하기 어렵지만 부정할 수 없는 이익을 돌려준다.
- 가장 중요한 두 기능 'Kythe 통합(의미론적 코드 이해 추가)'과 '동작하는 예시 찾기'는 '변경 이력 찾기' 등의 기능과 비교하여 확실한 코드 이해를 돕는데 중점을 두고 있다.
- Code Search를 사용할 수 없는 조직이라면, IDE용 사내 표준 인덱싱 프로파일을 설정하거나 egrep 사용법을 정리해서 공유하면 된다. 또는 ctags로 인덱스를 생성하거나 구글의 Code Search 같은 독자적인 인덱싱 도구를 구축해도 좋다.
- 어떤 방식을 택하든 기대 이상으로 많이, 그리고 생각하지도 못한 방식으로 쓰일 것이며, 개발자들에게 큰 혜택으로 돌아갈 것이다.
핵심 정리
- Code Search는 개발자들이 코드를 쉽게 이해하도록 도와주고, 엔지니어링 생산성을 크게 끌어올린다.
- Code Search는 다른 도구들의 기반을 제공하며, 모든 문서자료와 개발자 도구가 참조하는 중앙의 표준 저장소라는 가치를 추가로 제공한다.
- 구글은 코드베이스가 거대하여 독자적인 도구를 만들어야 했고, 코드베이스가 작다면 grep이나 IDE의 인덱싱 기능으로 충분하다)
- Code Search는 대화형 도구이므로 반응이 빨라야 한다. 검색, 브라우징, 인덱싱 모든 면에서 지연이 짧아야 한다.
- 신뢰할 수 있는 도구여야만 널리 쓰인다. 신뢰를 얻으려면 코드를 인덱싱 하고, 빠뜨림 없는 결과를 제공하고, 이용자가 원하는 결과를 먼저 보여줘야 한다. 이용자가 한계를 인지하고 있다면 초기의 덜 강력한 버전들도 충분히 유용하고 많이 쓰인다.
eezz 정리
- 해당 챕터의 Code Search는 구글의 대규모 코드베이스를 로컬에서 이용하기 쉽지 않기 때문에 만들어진 도구이다. 그 과정에서 발생하는 다양한 트레이드오프와 고민에 대해 기록되어 있다.
Google Kythe
https://ko.wikipedia.org/wiki/%EA%B5%AC%EA%B8%80_%EC%B9%B4%EC%9D%B4%EC%8A%A4
구글 카이스 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 구글 카이스(Google Kythe)는 코드 이해를 위한 소스 코드 인덱서이자 크로스 레퍼런서이며, 자칭 "코드와 함께 동작하는 도구 빌드를 위한 접속 가능한 (대체적으
ko.wikipedia.org
'[리뷰] > Software Engineering at Google' 카테고리의 다른 글
| [Software Engineering at Google, 19장, 도구] Critique: 구글의 코드 리뷰 도구 (0) | 2024.02.12 |
|---|---|
| [Software Engineering at Google, 18장, 도구] 빌드 시스템과 철학 (0) | 2024.02.11 |
| [Software Engineering at Google, 16장, 도구] 버전 관리와 브랜치 관리 (1) | 2024.02.11 |
| [Software Engineering at Google, 15장, 프로세스] 폐기 (0) | 2024.02.09 |
| [Software Engineering at Google, 14장, 프로세스] 더 큰 테스트 (1) | 2024.02.09 |