본문 바로가기
book

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

by 믹스 2022. 5. 27.

#2218

원하는 정보를 찾기 위한 도구로서 어떤 경로든 IT와 관련된 일을 하다 보면 구글과 떨어질 수 없다. 특히 기업문화나 복지 등 세상에 끼치는 영향을 생각해 본다면 그 안에서 이루어지는 것들에 대해 궁금해지기 마련이다. 구글. 그 안에서 일하는 엔지니어가 일하는 방법은 이런저런 과정을 통해 많이 알려져 있기는 하지만 엔지니어의 측면에서 업무에 관한 프로세스, 도구 등에 대해 다루고 있는 책이 있었나 싶었는데 궁금했던 많은 것들을 들여다볼 수 있었다.

소위 천재들의 집합소, 구글의 엔지니어들이 일하는 방법

이 책은 구글이 어떤 식으로 양질의 프로그램을 만들기 위해 협업하고 코드를 만들고 테스트하고 관리하는지를 다루고 있는 책이다. 단지, 책에서 언급하고 있듯 어떤 방식으로 프로그래밍하라거나 설계법, 언어별 주의점 같은 것들을 다루지 않고 있다. 이런걸 기대한다면 도움은 되지 않을 것 같다. 구글의 엔지니어들이 어떤 문화 속에서 어떤 프로세스로 어떤 도구를 활용해서 코드의 생성부터 관리, 그리고 폐기까지. 운영하고 있는 방법 전반에 걸친 부분이 궁금하다면 재미있게 읽을 수 있을 것이라 생각된다.

소위 천재라 불리는 사람들이 모이고 모여서 만들어내는 문화는 당연히 남다른 부분이 있을 것이라 여겨진다. 책에서 다루고 있는 긴 시간 동안 축적시킨, 잘 정리된 방대한 정보는 사용할 수 있는 것도 있고 전혀 써먹을 수 없는 부분도 있겠지만 내가 지금 일하고 있는 곳과의 다른 점, 도입한다면 좋을 것 같은 것들이 정리되어 있기에 구글이 코드 품질을 유지하기 위해 진행했던 프로세스가 궁금했다면 일독해보길 권한다.

도움이 되었던 부분 - 지식 공유, 문서, 스타일 가이드

책 전체 분량으로 봤을 때는 극히 일부분에 지나지 않았지만 문서 제작과 스타일 가이드에 대한 부분이 개인적으로 무척 마음에 들었다. 어떤 경로 건 일정 부분 연차가 쌓이게 되면 문서 작업이 필요해진다. 회의록이 되었건 가이드 문서건 메일이건 읽는 사람을 위한 글을 쓴다는 것은 생각보다 어려운 작업이니까.

어려운 지식을 쉽게 전달시킬 수 있다면 가장 이상적이라 할 수 있겠다. 지식을 협업을 위해 관계자들에게 효율적으로 전달하는 방법에는 어떤 것들이 있을까? 책에서는 조직의 지식을 확장시키기 위해 가장 중요한 것은 정보를 접하는 상호간에 존중이라고 한다. 무척 공감 가는 부분이었다. 일부 인원들은 직접 참여하거나 작성하지도 않으면서 감 놔라 배 놔라 하는 경우가 있는데 무척 민폐다.

지식을 공유한다는 것은 어려운 일이면서도 생각보다 쉬운 일이다. 한번이 어렵지 두 번은 그렇게 어렵지 않다고 할까. 인하우스 작업인 경우 이런 지식 공유 방식은 무척 중요해진다. 외부인력들을 동원한, 단발적으로 이루어지는 프로젝트의 경우 아무리 코딩 규칙을 만들어 둔다고 해도 어디선가는 지켜지지 않게 되는 부분이 있기 때문에 스타일 가이드가 더욱 중요해지기도 한다. 그리고 가능하다면 자동화를 통해 조금은 수월하게 처리가 가능하기도 하다.

책에서 다루는 것은 권장사항에 해당하는 'Guide' 개념으로 'Rule' 처럼 엄격하게 지켜야 하는 것을 지칭하지는 않는다고 생각된다. 관계된 불특정 다수의 사람이 작업하기 때문에 규칙으로 강제하기에는 한계가 있으니까. 따라서 프로젝트에서는 규칙의 양을 최소화하며 읽는 사람에게 기준을 맞추고 일관되도록 작성하며 문제가 생길 수 있는 구조를 피하고 실용적 측면을 위하여 예외를 허용하는 유연성도 갖추고 있어야 한다.(어렵다..)

스타일 가이드에서 중요한 내용은 위험을 회피하기 위한 올바른 사용법에 대한 제시와 모범 사례, 일관성 있는 규칙들에 대해 언급하며 가장 중요한 부분, 규칙은 수정 가능하다는 것도 빼놓지 않고 있는데 스타일 가이드나 각종 문서는 프로젝트에 문외한인 사람이 빠르게 실제 작업에 투입될 수 있는 중요한 부분이기 때문에 프로젝트 별 성격에 따라 항상 제대로 관리될 필요가 있다.

후기

구글 엔지니어들이 업무를 대하는 방법에 대해 궁금하다면, 가볍게라도 읽어 보면 좋을 것 같다.(가볍게 읽을 분량은 아니지만..) 엔지니어가 효율적으로 일하는 데 있어 필요한 모든 것들이 담겨있다 생각하면 좋겠다.

당연한 이야기지만 프리랜서로 일하기 시작한지 꽤 시간이 지났지만 회사마다 분위기도 틀리고 업종에 따라서도 분위기나 환경이 사뭇 다르다. 숙련된 작업자의 경우 자기만의 방식이 어느 곳에 선가는 작용하기 마련이다. 따라서 자동화가 가능한 부분이 있다면 자동화를 정의해 두는 것이 좋을 것이라 생각된다. 사람의 사고라는 것은 언제든지 바뀔 수 있는 부분이기 때문이다.

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
728x90
반응형

댓글