도서리뷰

[도서리뷰] Release의 모든 것 (feat. 지속 가능한 SW를 위해)

엘티엘 2023. 12. 25. 21:46

Release의 모든 것

프로젝트 팀은 너무나 자주 운영 상황에서 발생할 문제에 대비하는 대신 QA부서의 테스트를 통과하는 것을 목표로 삼는다. (..중략..) 하지만 테스트만으로는 소프트웨어가 현실에서 사용될 준비가 되었다고 증명하기에 충분하지 않다. - Release의 모든 것, p35

SW 개발자는 기능 요구사항과 QA 테스트에 집중하게 되는 것이 현실이다. 항상 시작할때는 Well Architected SW를 꿈꾸지만, 일정에 쫒기고, 다양한 사람들과 협업(싸움) 을 하다보면 어느새 일정에 맞추어 요구사항을 만족시키는 것이 1차 목표가 된다. 이를 단순히 개발자의 능력부족이나 시간과 비용의 문제로 치부해서는 안된다. 

지속 가능한 SW를 위해서는 개발자의 뛰어난 개발능력 외에 많은 것들이 필요하다. 합리적인 Plan과 좋은 품질의 Code, 문제와 원인을 빠르게 파악할수 있는 Monitor 환경, 수정사항을 간편하게 배포할수 있는 Build와 체계적인 Test 환경, 안정적인 Operate 환경 등..

이 책은, 단순히 "Release"에 대한 설명이라기 보다는, 이러한 "지속 가능한 SW를 위해 갖추어야 할 것" 에 대해서 설명한다. 각 단원마다 필자가 겪었던 구체적이 사례를 기반으로 설명을 하기 때문에 더욱 설득력 있게 다가온다.

  • 1부 에서는 "안정성 구축"에 대해서 설명한다. 장애가 확산되는 것을 방지하는것이 중요하며, 이를 위해 Code 레벨부터 Archtect 관점까지 다양한 패턴들에 대해서 상당히 구체적이고 실질적으로 설명한다.
  • 2부는 "운영 고려 설계" 에 대해서 설명한다. 운영자도 사용자이며, 운영 문제를 고려하여 SW를 설계해야 한다고 말한다. 이를 위해 5개 관심계층을 (기반, 인스턴스, 연결, 제어 평면, 운영) 정의하고, 각 계층별로 어떤 것을 고려해야 하는지, 운영 가시성은 어떻게 확보할수 있는지 설명한다.
  • 3부는 "시스템 전달" 에 대해 설명한다. CI/CD 및 버전관리에 대한 내용과 함께, 데이터베이스 스키마의 배포나 API 버전관리 등에 대해서도 설명한다. (책 전체적으로 Deployment를 "배치" 라고 번역되어 있다. "배포" 라는 단어에 익숙하다면 주의하자)
  • 4부는 "체계적 문제 해결" 에 대한 내용이다. 테스트와 실제 환경과의 간극, 카오스 테스트와 변화에 적응하는 Architect 에 대해서 설명한다.
이 책은 소프트웨어 출시 전 점검 목록 같은 책입니다. - Release의 모든 것, p7(베타리더의 말)

어느 베타리더의 서평이 이 책의 많은 것을 설명해준다. 이미 완성돼서 운영되고 있는 소프트웨어가 있다면, 아직 개발중이지만 조만간 출시 예정이라면, 언젠가는 많은 사람들이 사용하는 소프트웨어를 출시하고 싶다면, 이 책이 부족한 부분을 찾아줄 것이다.

 

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

반응형