2021. 9. 25. 02:37ㆍ[공부] 독서/구글의 소프트웨어 엔지니어링
0. 구글의 소프트웨어 엔지니어링 (Software Engineering at Google)
해당 포스팅은 구글의 소프트웨어 엔지니어링(Software Engineering at Google)이라는 책을 읽고 나름 재밌었던 개념들을 정리한 시리즈입니다.
책은 여기서 읽을 수 있습니다. (pdf 문서)
포스팅을 작성하게 된 동기
우선 글을 시작하기 전에 이 포스팅을 하게 된 계기부터 이야기 하려 합니다.
때는 바야흐로 5월. 업무를 하던 도중 해당 도서의 존재를 알게 되었습니다. 그리고 평상시에 구글이라는 회사는 선망의 대상과 같은 곳이었기 때문에 자연스럽게 손이 갔습니다. 구글이 어떤 식으로 개발하는지 궁금했고, 이 책을 읽으면 업무를 하면서 느꼈던 고민들을 해결해 줄 수 있지 않을까 기대했습니다. 그리고 실제로 완벽히 해소되지는 않았지만, 대부분의 답변은 들을 수 있었던 것 같아 도움이 많이 되었습니다.
책 초반부를 읽던 도중 문득 이런 생각을 하게 됩니다.
- 책이 무료로 풀렸네? 그리고 분량이 550페이지.
- 하루에 3페이지씩만 번역한다면? 얼추 180일.
- 6개월만 꾸준하게 하면? 11월쯤에는 번역을 다 할 수 있겠네?
- 생각보다 해볼 만해 보이잖아? 기왕 읽는 거 번역이나 시도해 볼까?
지금 와서 보면 무모해 보이는 이 생각이, 그때는 왠지 모르게 할만해 보였습니다. 나름 합리적인 이유도 있었습니다. 내심 3페이지 하는데 1시간 정도 걸리겠지?라는 생각이 있었기 때문입니다. 이 어찌나 미련한 생각인지. 그 때는 바보같이도 번역이 이렇게 힘든 것인 줄 몰랐습니다. 영어 실력이 유려하지 않았기 때문에 문장이 길어지면 헤매기 일쑤였고, 개발자들의 말은 생각보다 이해하기 어려웠습니다.
하지만 6개월을 예상하던 프로젝트는 생각보다 일찍 끝났습니다. 왜냐면 하루에 3~4시간, 혹은 주말에는 그 이상씩 작업했기 때문입니다. 책을 200페이지 정도 번역했을 때, 하루에 1시간씩 하겠다는 마인드로는 절대 6개월 안에 끝날 수 없다는 판단이 들었습니다. 그래서 아예 그냥 단기간에 끝장을 보자는 생각으로 변했습니다. 그렇게 달렸더니 결국 9월 중순이 되어서야 번역을 마쳤습니다.
그 동안의 커밋 기록...
번역을 마무리했고, 이제 배포를 할 시간입니다. 번역은 private 레포지토리에서 작업했었습니다. public으로 전환함과 동시에 github page를 이용해서 웹페이지를 띄운다는 그럴듯한 계획도 있었습니다. 이제 저자에게 직접 물어 허락을 받을 차례입니다. 그리고...
https://github.com/abseil/abseil.github.io/issues/382
이미 한빛 미디어에서 번역이 진행 중이라는 소식을 들었습니다!
감정이 미묘했습니다. 개인적으론 최근에 읽었던 책 중에서 가장 많은 영향을 받은 책이라 번역이 진행 중이라는 사실이 꽤나 반가웠습니다. 하지만 동시에 드는 허탈감도 어쩔 수가 없었습니다. 그래도 뭐... 어쩌겠습니까! 배포는 깔끔하게 포기하기로 했습니다. 미리 확인 안 한 제 잘못이죠.
아무튼 그러한 관계로 프로젝트는 중단이 되었습니다. 하지만 장작 3개월간 고생한 이 프로젝트 이대로 보내주기에는 너무 아쉽다고 느꼈습니다. 그래서 제가 책을 읽으면서 느끼고 배운 것을 블로그에 글로 정리해 보려 합니다.
앞으로 다루게 될 키워드
대부분 책의 순서를 따라가며 포스팅하겠지만, 인상 깊었거나 재밌었던 키워드들을 단편적으로나마 전달하고자 합니다. 짧게 설명하려다 보니 설득력이 약할 수 있습니다. 본 포스팅은 키워드를 던져드리는 것만을 목표로 하려 합니다. 가급적 책을 읽어보시는 것을 강력 추천합니다!
- 프로그래밍과 소프트웨어 공학의 차이
- 하이럼 법칙
- The bus factor
- 관리자라는 말 자체가 시대착오적이다.
- 피터의 법칙
- 파킨슨 법칙
- 천재 설화
- 가면 증후군
- 가독성 검사 프로세스
- TBD
- 테스트 문화를 전파하는 트로이 목마
- 테스트 더블
- mocking 을 남용하지 마라
- Record/Replay 전략
- Chained 테스트
- DAMP > DRY at test
- 모노레포와 Test train
- One-Version 규칙
- unfunded mandate
- 코드는 자산이 아니라 부채다
- 체스터슨 울타리
'[공부] 독서 > 구글의 소프트웨어 엔지니어링' 카테고리의 다른 글
구글의 소프트웨어 엔지니어링 (5/5) (1) | 2021.09.25 |
---|---|
구글의 소프트웨어 엔지니어링 (4/5) (0) | 2021.09.25 |
구글의 소프트웨어 엔지니어링 (3/5) (0) | 2021.09.25 |
구글의 소프트웨어 엔지니어링 (2/5) (0) | 2021.09.25 |
구글의 소프트웨어 엔지니어링 (1/5) (0) | 2021.09.25 |