구글러가 공개하는 기업에 혁신을 가져다주는 엔지니어링 전략
여러분이 또 하나의 거대한 소프트웨어 엔지니어링 기업 ‘구글’을 만들 필요는 없습니다. 다만 구글이 그간 쌓아온 숱한 노하우를 모른다면, 여러분은 수만 명의 엔지니어가 20년 넘게 조화를 이뤄 다듬어온 소프트웨어 엔지니어링의 지식을 놓치게 됩니다. 모른 척하기에는 너무도 값진 지식일 것입니다. 이 책에서는 구글의 소프트웨어 엔지니어와 테크니컬 라이터가 뭉쳐 구글의 독창적인 엔지니어링 문화, 프로세스, 도구를 소개합니다. 단순히 도구의 기능과 활용법을 넘어 구글의 팀들이 따르는 철학과 프로세스까지 아주 상세히 설명합니다. 또한 프트웨어 조직이 코드를 설계, 작성, 유지 관리할 때 절대 잊어서는 안 되는 세 가지 기본 원칙도 함께 살펴봅니다. 이 책에 담긴 수만 명의 구글러가 여러 시행착오 끝에 검증한 실전 대응 기법이 적용된 다양한 사례와 예제로, 소프트웨어 엔지니어링의 핵심을 꿰뚫어보는 시각을 얻어 훌륭한 엔지니어로 거듭나길 바랍니다.
추천사
경험이 있는 개발자는 프로그래밍과 소프트웨어 엔지니어링이 다르다는 것을 압니다. 집중한 머리는 비트와 춤을 추고, 눈은 모니터 화면을 응시하고, 손은 키보드를 두드리는 게 프로그래밍입니다. 그렇다면 소프트웨어 엔지니어링은 무엇일까요? 이 질문에 대한 답은 이 책에서 찾을 수 있습니다. 구글 개발자 특유의 풍성하고, 깊고, 날카로운 사고를 담은 이 책을 좋은 개발자로 성장하고 싶은 모든 이에게 권합니다.
_임백준, 삼성리서치
이 책은 구글이 지금의 자리까지 이르게 하는 데 가장 큰 이바지를 한 소프트웨어 엔지니어들이 구글에서 실제로 어떻게 일하고 있는지 알려줍니다. 그래서 소프트웨어 엔지니어링과 관련된 문화, 프로세스, 도구들에 대한 고찰을 통해 고품질의 소프트웨어를 효과적으로 개발하는 데 필요한 통찰을 얻을 수 있습니다.
_권순선, 구글 글로벌 머신러닝 생태계 프로그램 리드
지난 19년간 구글 검색팀에서 소프트웨어 엔지니어, 엔지니어링 매니저와 디렉터를 거치면서 보고 경험했던 내용이 이 책 한 권에 담겨 있어서 매우 놀라웠습니다. 소프트웨어 엔지니어뿐만 아니라 IT 분야에 종사하는 모든 이에게 이 책을 추천합니다.
_이준영, 구글 소프트웨어 엔지니어링 디렉터
그간 여러 곳에 소개된 구글의 소프트웨어 엔지니어링은 단편적이었습니다. 하지만 이 책은 구글 엔지니어링의 역사, 변화 과정, 소프트웨어 개발을 다각도로 들여다봅니다. 작게는 구글이 사용하는 도구, 넓게는 문서화, 깊게는 의존성 관리, 대규모 변경, 지속적 배포 등을 다룹니다. 이 책은 성장하는 엔지니어링 조직에서 일하고 있는 모든 이에게 ‘어떤 문제를 어떻게 접근해야 하는가'에 대한 좋은 가이드가 되어줄 겁니다.
_서민구, 구글 코리아 테크 리드 메니저'
우리는 소프트웨어 엔지니어입니다. 소프트웨어 엔지니어링은 단순히 고객의 요구사항을 해소하는 것에만 그치지 않습니다. 문제의 근본 원인을 찾고 개선해나가며, 지속 가능성과 확장성을 고려하여 최적의 결과물을 만들어나가야 합니다. 이 책은 소프트웨어 엔지니어로 나아가기 위한 길을 제시해주고 있습니다. 이 책과 함께라면 우리에게 더 큰 보상과 기회의 문이 열리게 될 것입니다.
_당근마켓, 서비스코어 부문
구글의 아리스토텔레스 프로젝트를 통해 성공하는 팀이 가져야 하는 기준을 알게 되어, 그 내용을 사내에 적용하고 코칭하면서 많은 것을 배웠고 좋은 성과도 일궈냈습니다. 이 책에는 이렇게 성공하는 팀이 엔지니어링 측면에서 일하는 방식과 문화를 어떻게 만들어가는지에 대한 내용이 담겨있습니다. 이 책을 통해 알게 된 내용들을 과제와 조직에 적용할 생각을 하니 벌써부터 가슴이 뜁니다.
_우경우, 삼성전자 조직개발 코치 SWITCH 사무국
지금까지 출간된 ‘구글은 이렇게 한다’식의 책들과 달리, 불친절한 개념 설명도 없고 구글의 뛰어난 시스템 자랑 나열도 별로 없습니다. 그저 인터넷 서비스 업체에서 벌어지는 소프트웨어 개발에 대한 전부를 개념부터 한 숟가락씩 떠먹여 주고 그동안의 현장 경험과 노하우를 예제와 함께 소개합니다. 시중에 나온 많고 많은 자기계발/실천법 서적들을 응축하여 구글이 핸드드립한 에스프레소를 마시는 느낌이니, 이 책만 잘 읽어도 이 바닥 전체를 섭렵한 기분이 들것입니다. 이 책에서 제시하는 테크닉과 방법론은 현장감 있고 생생하다는 느낌을 받았습니다. 무엇보다도 소프트웨어 엔지니어링의 정수는 여기에 있다고 말하는듯이, 테스트와 변경 관리에 할애한 분량이 매우 많고 상세하다는 점이 매우 인상적이고 동감하는 바입니다. 목 넘김 좋은 막걸리처럼 술술 잘 넘어가는 한국어화 품질도 크게 칭찬해주고 싶습니다. 마지막으로, ‘이상적이고 순수하고 정직하다’라는 말을 하고 싶습니다. 구글 엔지니어들은 과연 이걸 진짜로 해낸 것일까요?
_곽용재, NHN 연구소장
저는 소프트웨어 엔지니어링이라는 용어에 막연한 거부감을 느끼며 살아왔습니다. 소프트웨어 엔지니어링보다는 프로그래밍이 우리가 하는 일을 더 잘 대변한다 생각했고, 소프트웨어 엔지니어보다 프로그래머로 불리기를 바랬습니다. 하지만 이 책에서 소프트웨어 엔지니어링을 ‘시간 위를 걷는 프로그래밍’으로 정의한 표현을 읽는 순간, 지금까지 가지고 있던 소프트웨어 엔지니어링에 대한 거부감이 사라졌습니다. 지금까지 중요하게 여기고 강조했던 많은 활동이 소프트웨어 엔지니어링에 해당했기 때문입니다. 이 책은 지금까지 가지고 있던 소프트웨어 엔지니어링에 대한 막연한 거부감을 깨트리고, 이에 대한 중요성과 구글의 시행착오를 간접 경험할 기회를 선사합니다. 또한 프로그래밍에 시간 축을 추가함으로써 한 조직이 고려해야 할 개발 문화, 프로세스, 도구를 소개합니다.
_박재성, 우아한테크코스 총괄