HisStory/나는리뷰어다2023

Release의 모든 것 (리뷰)

Hyo Kim 2023. 12. 24. 00:29
728x90
반응형

Release의 모든 것

한줄평: 제목을 참 잘 지은 책.

 

35년 경력을 가진 선배 개발자가 직접 겪은 다양한 이슈와 과거 큰 이슈들을 이야기해주면서 실제 프로덕트 환경의 무서움을 알려주는 책이다.

 

코드를 잘못 작성해서, 요구사항과 다른 구현, 예외처리를 놓쳐서 등 프로그램을 잘못 작성해서 발생하는 문제들은 분명 많다.

많은(거의 모든) 개발자들은 위 사실을 알고 최대한 위와 같은 일들이 일어나지 않도록 테스트 코드를 작성하고, 많은 테스트를 통해 방지를 위해 힘을 쓴다.

 

하지만, 실환경에서는 문제가 저게 다가 아니다.

테스트 환경에서는 발견할 수 없었던 문제가 실환경에서는 더 많은 서버가 올라가고,

더 많고 무작위인 많은 트래픽(사용자)로 인해 성능 테스트에서 발견하지 못한 문제를 만날 수도 있으며,

많은 사람이 믿고 사용하는 라이브러리를 믿고 가져다 썼다가 버그가 있을 수도 있고,

AWS에 모든 서버를 구축했지만, AWS의 실수로 몇 시간의 장애가 있을 수 있고,

전혀 문제가 없을 것 같은 네트워크조차 문제가 발생할 수 있다.

 

이 외에도 과거에 겪은 다양한 사례로 조심해야 할 안티 패턴과 문제들이 많지만, 모두 완벽히 방지할 수는 없다.

하지만, 미리 책에서 알려주는 안정성 패턴을 통해 문제가 발생했을 때 빠르게 인지하고, 해결하기 위한 환경을 갖춤으로써 좀 더 안전한 시스템을 구축하여 많은 시행착오를 줄일 수 있을 것이다.

 

이 책의 내용은 소프트웨어 설계를 어떻게 하면 좋을지에 대한 방법과 실제 서비스를 운영하는 노하우를 알려주는 책이다.

그렇기에 신입보다는 직접 Release를 준비하는 개발자 혹은 어느 정도 경력있는 사람이 읽었을 때 더 많이 와 닿는 게 많을 것 같고,

주니어라면 이 책을 깊게 파기보다는 가볍게 훑으면서 '이런 생각지 못한 상황이 발생할 수도 있구나' 정도로 보면서

책에 나오는 용어들을 보고 알아가는 것만으로도 도움이 될 것 같다.

 

이 잡동사니가 정말로 필요한가?
필자가 소켓 라이브러리를 이식할 때 그랬던 것 처럼 가능할 때마다 모두 시간을 제한하도록 처리하면 코드가 지나치게 복잡해진다고 생각할 수 있다. 물론 확실히 더 복잡해진다. 코드의 절반은 기능을 제공하는 대신 오류만 처리하고 있음을 알게 될 것이다. 그러나 QA가 아니라 운영을 목표로 한다는 말의 핵심은 부당한 운명의 돌팔매와 화살을 다루는 것이다. 오류 처리 코드가 제대로 작성되었다면 탄력성이 부여된다. 
시스템이 죽지 않으면 아무도 알아채지 못하기 때문에 사용자는 고마워하지 않겠지만 밤에 마음 편히 잘 수 있다. - P147 발췌

 

미리미리 안전한 시스템을 설계하고 구축하여 밤에 마음편히 잘 수 있는 개발자가 됩시다!


 

개인적인 잡담.

 

최근 테스트를 하면서 겪었던 문제들이 이 책에서 많이 소개되어 놀랐다.

좀 더 일찍 이 책을 봤으면 나도 시행착오를 줄일 수 있었을 텐데 싶은 안타까운 생각과,

그래도 이제라도 읽어서 다른 문제들에 대해서는 시행착오를 줄일 수 있지 않을까란 미래에 대한 희망회로가 돌아갔다.

 

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

728x90
반응형