Release의 모든 것 - 대규모 웹 분산 시스템을 위한 운영 고려 설계 | 아마존 소프트웨어 공학 분야 베스트셀러
마이클 나이가드 지음, 박성철 옮김 / 한빛미디어 / 2023년 11월
평점 :
장바구니담기


소프트웨어 개발을 처음 시작하는 사람들은 요구사항에 대한 정교한 설계 보다는 어떤 기술을 사용해서 어떻게 구현할 것인지에 대해 고민을 하게 되는데 운용을 포함한 입체적인 관점보다는 구현 자체에만 의미를 두는 경우가 많다. 여기서 정교한 설계는 어떤 시스템과 통합될 것인지 그리고 사용하게될 사용자수는 어떻게 되는지, 안정성을 위해 테스트 시나리오는 무엇일지 그리고 마지막으로 이 모든것을 포함하여 구현해야할 기능들에 대해 일정내 가능할지등 고민하는 것을 말한다.


문제는 실제 제품이나 서비스 운용 경험이 있어야 설계에 여러가지 고려사항들을 포함시킬 수 있다는 점이다. thread safe하지 않는 API를 사용해서 간헐적으로 프로세스가 죽는다던가 또는 책에서도 나오는 예시로 try-catch-finally에서 finally 구문에 close에서 다시 예외가 raise 될 수 있는 것을 고려하지 못해 socket 파일을 닫지 못하는 상황이 발생할 수 있다. 


"Release의 모든 것", 이 책은 제품 및 서비스(대부분 서비스 이야기이지만...) Release 이후의 일어날 수 있는 문제점 요소들에 대해 나열하고 서사 방식의 예시를 통해 몰입을 더한다. 책 표지만 봐서는 Release를 어떻게 해야하는지에 대한 좀 따분한 느낌이 들긴 했지만 말이다.
저자 마이클 나이가드는 미국 정보, 은행, 금융, 농업, 상거래등 시스템을 설계 구축하고 운용한 사람으로써, 이미 2007년에 1판 "Release it ! 성공적인 출시를 위한 소프트웨어 설계와 배치" 책을 다시 가다듬어서 2판으로 낸 것이다.


시니어 개발자라는 이야기를 하게 되면 꼭 대용량 트래픽이 빠지지 않는다. 그만큼 난이도가 있고 시스템적으로 난이도가 있고 컴퓨팅자원뿐 아니라 인정 자원등 고려할 사항이 많기 때문인데 이 책은 그에 대한 힌트 또한 얻을 수 있다. 물론 대용량 트래픽이 아니더라도 복잡한 시스템에 대해 어떻게 운용 관점에서 밤을 새지 않고 새벽에 끌려가지 않게끔 건강한 개발자 그리고 건강한 시스템을 만들어가게 되는 비법을 제공한다. 이 책의 큰 장점이다.


물론 단점 또한 존재하는데 많은 주제를 이야기하다보니 최소 CS(Computer Science) 지식과 서비스 개발 및 출시 경험이 조금이라도 있어야 몰입할 수 있다는 점이다. TCP/IP가 무엇인지 3 hand shaking 과정은 어떻게 되고 TIME_WAIT을 줄일 수 있는 설정은 어떻게 하는지등 자세한 내용은 서술하지 않는다. 당장 구현해야할 기능들을 해결하기 급급하다면 책의 절반 이상은 공감하기 힘들고 다른 세상 이야기로만 느껴질 수 있다. 그럼에도 불구하고 옆에 두고 패턴 부분이나 실제 사례 내용들을 차근차근 읽어보면 1~2년 뒤 개인의 성장과 담당 서비스가 성숙하는데 충분히 도움이 될 것이라 생각한다.


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

	

 



댓글(0) 먼댓글(0) 좋아요(2)
좋아요
북마크하기찜하기 thankstoThanksTo