티스토리 뷰

Hobby/Book

[Book] 구글 엔지니어는 이렇게 일한다

생각많은 소심남 2022. 5. 30. 00:01

(해당 포스트에서 소개하고 있는 "구글 엔지니어는 이렇게 일한다" 책은 한빛 미디어로부터 제공받았음을 알려드립니다.)

 

구글 엔지니어는 이렇게 일한다

지난 20년간 구글 소프트웨어 엔지니어가 구글에서 직접 경험한 내용을 바탕으로 코드의 가치를 가장 잘 유지하는 방법, 소프트웨어를 효율적으로 관리하는 프로세스 도입 방법, 구글의 문화를

hanbit.co.kr

아마 IT업계에서 일하는 사람들이라면 각자 속한 팀내에서 활용되는 규칙이나 철학같은 것이 있을 것이다. 나름의 규칙을 가지고 에자일 프로세스를 따르기도 하고, 코드 리뷰를 통해 오류를 찾는 과정을 거치며, 정적분석을 통해 소프트웨어의 품질을 유지하려고 노력할 것이다. 내가 속한 팀도 그렇게 엄격하지는 않더라도 나름의 규칙을 통해서 이런 개발 프로세스를 유지하려고 한다. 뭐 워낙 소규모의 팀이고, 어떻게 보면 귀찮은 일일수 있겠지만, 그래도 이런거라도 있어서, 아직 우리가 만든 소프트웨어가 잘 돌아가고 개발이 되는 거겠지 싶다.

 문득 이런 개발 프로세스를 잘 유지하는 회사가 어딜까 싶었는데, 아무리 생각해도 "구글"이 제일 먼저 생각난다. 아마 대부분의 개발자들도 github에 있는 구글 코드를 참고해보겠지만, 구글만의 개발프로세스나 gerrit같은 것을 살펴보면 정말 잘되어 있다는 것이 느껴질 것이다.

구글 엔지니어는 이렇게 일한다

이번에 읽은 책은 구글에서 이뤄지는 소프트웨어 엔지니어링에 대한 내용을 다룬 책이다. 사실 이 책은 저자가 상에서 무료로 볼 수 있도록 공개되어 있는 책인데도, 아마존에서도 판매 순위가 높을만큼 좋은 평가를 받고 있는 책이다. 나도 원래 웹상에서 읽다가 방대한 양으로 인해서 필요한 부분만 발췌해서 읽었었는데, 이번에 번역본으로 출간되었다. 역시 번역본도 약 700쪽에 달할 만큼 방대한 양을 담고 있다.

우선 간단하게 이 책은 프로그래밍 책이 아니다. 테스트 파트에서 어떻게 진행이 되는지 예시를 들기 위해서 간단한 코드들이 나올 뿐, 거진 대부분의 내용이 구글에서 활용되고 있는 문화, 프로세스, 도구에 대한 내용이 설명되어 있다. 그래서 그렇게 큰 부담을 가지고 읽을 필요없을 듯하다. (나도 그냥 일하다가 틈틈히 읽거나 잠자기전에 조금씩 읽었는데, 뭔가 이해하면서 읽다는 느낌보다는 구글에서는 이렇게 일하다는 것에 대한 다큐멘터리를 본 느낌이었다.)

이책에서 담고 있는 내용은 다음과 같다.

  • 소프트웨어 엔지니어링의 정의
  • 팀을 관리하는데 있어 필요한 문화와 리딩 능력
  • 테스트와 코드 리뷰같은 개발 프로세스
  • 구글에서 활용하는 도구들: 버전관리와 정적분석, CI 등

세계적으로 큰 회사의 개발 문화에 대해서 이 한책으로 설명하기가 참 어려웠을텐데, 이 책에는 정말로 위의 내용들이 모두 들어 있다. 추가적으로 내용 설명과 동시에 구글에서 활용하면서 실제 적용되어 있는 서비스들과 연계되어 있어서 그만큼 읽는 재미도 있었다. 개인적으로 관심있던 부분은 구글에서 활용되는 도구에 대한 내용들이었는데, 특히 bazel에 대한 내용이던가 정적분석, 의존성 관리같은 부분은 실제 개발자들이 현업에서도 겪는 문제들을 구글에서는 이렇게 해결한다는 방법론을 제시하고 있었다. (한편으로는 구글이니까 이렇게까지 했겠지... 하는 체념도 들기도 했다. 어떻게 읽으면 읽을수록 현업에서 하고 있는 방법론들이 조금 부족하다는 것을 느꼈다거나...)

문득 아마존에서 글 리뷰를 보다가 재미있는 내용을 보았다.

아마존 리뷰중

 사실 이 리뷰가 어떻게 보면 책의 목적을 대변하고 있다고 생각한다. 앞에서 서두에 했던 말처럼 "그냥 구글이 이렇게 하니까 이게 진리다!" 라는 인식보다는 왜 구글이 이런 방법론을 택하고 발전시켰는지에 대한 생각을 해볼 필요가 있다고 생각한다. 그런 점에서 이 책은 무조건 구글! 이 아닌 그 근거에 대해서 장문의 페이지를 통해서 설명하고 있는 셈이다. (어쩌면 구글에서 하고 있는 방식은 구글이 다루는 문제에서 유용한 것이지 실제 우리같은 회사한테는 overkill일 수도 있겠다.) 개발하는 사람이나 그 사람들을 관리하는 PM들한테는 이런 부분을 책읽으면서 와닿지 않을까 하는 생각을 한다.

 

댓글