linu***
2022-05-29

지난 20년간 구글 소프트웨어 엔지니어가 구글에서 직접 경험한 내용을 바탕으로 코드의 가치를 가장 잘 유지하는 방법, 소프트웨어를 효율적으로 관리하는 프로세스 도입 방법, 구글의 문화를 소개하는 도서입니다.
프로그래밍에 대한 관심이 높다.
각종 언어나 방법에 대한 일반인의 지대한 관심은 익히 알 수 있다.
그러나 현업 개발자들이 가장 많이 궁금하고 필요로 하는 것은 '소프트웨어 엔지니어링'이다.
보다 더 나은 코딩, 개발환경, 문화..
이런 것에 대한 치열한 고민을 하고 있다.
이 책 '구글 엔지니어는 이렇게 일한다'는 그에 대한 좋은 가이드가 되어 줄 것이다.
이 책의 저자들은 세계 최고의 소프트웨어 그룹 중 하나인 구글에서 일하였다.
그곳서 얻은 소프트웨어 엔지니어링을 방법을 이 책에 담고 있다.
구글에서 개발에 대한 '문화', '프로세스', '도구'에 대해 보여주고 있다.
소프트웨어 엔지니어링이란 '흐르는 시간 위에서 순간순간의 프로그래밍을 모두 합산한 것이다.'
소프트웨어 엔지니어링이란 개념에 막막하게 느껴질 수도 있다.
개발에 대한 모든 것이 소프트웨에 프로그래밍이라 생각하면 쉽게 정리할 수 있을까?
- 시간과 변경 : 코드가 수명을 다할 때까지 새로운 요구사항에 잘 적응하려면 어떻게 해야 하는가?
- 규모와 성장 : 커져가는 규모에 발맞춰 조직은 어떻게 진화해야 하는가?
- 트레이드오프와 비용 : '시간과 변경', '규모와 성장'에서 얻은 교훈들을 바탕으로 조직은 어떻게 의사결정을 내려야 하는가?
이것이 이 책을 통해 우리가 배울 수 있는 것들이다.
흔히 개발에 대해 '새로운 것을 만들어 내기 위한 것'을 말한다.
그것을 위한 최적의 프로그래밍 언어, 시스템, 코딩에 대해서 생각한다.
하지만 그 다음을 생각한다면 결코 그것의 최적이 아닐 수 있다.
변경은 어떻게 할 것이며, 서비스가 확장되면 어떻게 처리할 것인지, 분리와 폐기는 용이한 것인지...
다양한 것에 대해 생각하고 분석하고 적용해야 한다.
어떻해 팀을 만들고, 운영하는지,
그 팀과 함께 일하기 위한 좋은 개발 환경-코딩 가이드, 테스트-는 어떻게 만들어야 하는지,
버전 관리와 배포, 통합은 어떻게 운영하는 것이 좋은지를 볼 수 있다.
개발자들이 그리 좋아하지 않는 문서화에 대한 언급도 무척 좋았다.
이 책으로 프로그래밍에 대한 도움을 얻고자 한다면 실망할 수 있다.
이 책은 '프로그래밍'이 아닌 '소프트웨어 엔지니어링'에 대한 책이다.
개발에 대한 책이지만 코딩에 대한 언급은 물론이고, 코드도 부가적인 설명을 위해 쓰이고 있을 뿐이다.
세계적인 그룹으로 성장했기 구글의 문화, 프로세스, 도구가 모두 옳다고 말하고 싶지 않다.
하지만 그들의 성장 동력 중 하나였음은 분명하고 그것을 이렇게 한 권의 책을 통해 쉽게(?) 접할 수 있음은 무척 큰 행운이다.
구글과 지금의 회사와 같지 않기에 똑같이 적용하기에는 무리가 있을 수도 있다.
하지만 분명 바로 도입하고 적용할 수 있는 것도 있을 것이다.
[한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.]