kdhy***
2023-12-24

아마존 소프트웨어 공학 분야 베스트셀러! 아키텍트, 설계자, 개발자를 위한 소프트웨어 엔지니어링 필독서
35년 경력을 가진 선배 개발자가 직접 겪은 다양한 이슈와 과거 큰 이슈들을 이야기해주면서 실제 프로덕트 환경의 무서움을 알려주는 책이다.
코드를 잘못 작성해서, 요구사항과 다른 구현, 예외처리를 놓쳐서 등 프로그램을 잘못 작성해서 발생하는 문제들은 분명 많다.
많은(거의 모든) 개발자들은 위 사실을 알고 최대한 위와 같은 일들이 일어나지 않도록 테스트 코드를 작성하고, 많은 테스트를 통해 방지를 위해 힘을 쓴다.
하지만, 실환경에서는 문제가 저게 다가 아니다.
테스트 환경에서는 발견할 수 없었던 문제가 실환경에서는 더 많은 서버가 올라가고,
더 많고 무작위인 많은 트래픽(사용자)로 인해 성능 테스트에서 발견하지 못한 문제를 만날 수도 있으며,
많은 사람이 믿고 사용하는 라이브러리를 믿고 가져다 썼다가 버그가 있을 수도 있고,
AWS에 모든 서버를 구축했지만, AWS의 실수로 몇 시간의 장애가 있을 수 있고,
전혀 문제가 없을 것 같은 네트워크조차 문제가 발생할 수 있다.
이 외에도 과거에 겪은 다양한 사례로 조심해야 할 안티 패턴과 문제들이 많지만, 모두 완벽히 방지할 수는 없다.
하지만, 미리 책에서 알려주는 안정성 패턴을 통해 문제가 발생했을 때 빠르게 인지하고, 해결하기 위한 환경을 갖춤으로써 좀 더 안전한 시스템을 구축하여 많은 시행착오를 줄일 수 있을 것이다.
이 책의 내용은 소프트웨어 설계를 어떻게 하면 좋을지에 대한 방법과 실제 서비스를 운영하는 노하우를 알려주는 책이다.
그렇기에 신입보다는 직접 Release를 준비하는 개발자 혹은 어느 정도 경력있는 사람이 읽었을 때 더 많이 와 닿는 게 많을 것 같고,
주니어라면 이 책을 깊게 파기보다는 가볍게 훑으면서 '이런 생각지 못한 상황이 발생할 수도 있구나' 정도로 보면서
책에 나오는 용어들을 보고 알아가는 것만으로도 도움이 될 것 같다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."