대규모 C++ I편 - 절차와 아키텍처, 23주년 개정판
존 레이코스 지음, 권오인 옮김 / 길벗 / 2023년 12월
평점 :
장바구니담기


C++로 주로 개발은 하지 않습니다.

최근 오픈소스에 관심이 생겨서 PR를 할 때 C 기반의 코드들을 많이 보게 되어서 아키텍처를 이해하고 싶어졌습니다.

마침 ‘대규모 C++ I편 절차와 아키텍처’란 책이 23주년 개정판으로 나와 읽어 보게 됐습니다.

이 책은 대규모 소프트웨어 시스템을 효율적으로 개발하고 유지보수하기 위한 필수적인 방법론과 기술에 대해 다루고 있습니다.

저자는 개발자가 소프트웨어를 작성할 때 고려해야 할 사항과, 코드의 구조화, 재사용성, 테스트 가능성 등에 대한 중요성을 강조하고 있습니다

책을 읽으면서 가장 기억에 남는 2가지를 소개 하겠습니다.




1) 소프트웨어 자산 ‘시간’

지식 산업은 가장 큰 자산은 시간인데요.

똑같이 주어진 시간에 남들보다 다르게 N 배를 더 하는 사람 있지만 반대인 사람도 있습니다.

그렇다면 프로그램을 개발을 하면서 가장 많이 시간을 보내는 것 무엇일까요?

바로 도메인을 이해하는 부분입니다.

막상 코드를 짜는 시간은 업무를 이해를 한다면 개발 코드에 대해 숙달이 되어져 있다면 금방 하기 때문이죠.

하지만 비즈니스를 이해하지 못하고 개발자가 코드만 짠다면 일을 안 하게 되고 협업에도 문제가 생기기 마련입니다.

단순히 빨리하는 게 필요로 한 게 아니라 주어진 목표를 정확하게 하고 일을 빨리할 수 있도록 훈련해야 합니다.

그러기 위해서 저자는 개발하기 전에 정확히 무엇을 할 것인지 또한 사용 시나리오의 참조 문서를 보고 남들이 보기에 이해하기 쉬운 설계가 나와야 장기적으로 비용 즉 시간을 줄일 수 있다고 합니다.



2) 유지보수가 쉬운 개발, ‘테스트’

개발자가 개발하는 소프트웨어의 전체적인 구조를 고려해 효율적으로 관리하는 방법에 대해서도 알아야 합니다.

이 책은 소프트웨어를 재사용 가능하고 유지보수하기 쉬운 형태로 개발하는 방법에 대해 상세히 다루고 있는데요.

컴포넌트 기반 소프트웨어의 설계와 구현에 대한 물리적 설계의 중요성을 강조하며, 이를 통해 유연하고 안정적인 시스템을 구축하는 방법을 안내하고 있습니다.

또한 유지보수 쉬운 개발을 하기 위해 테스트의 중요성을 강조 하는데요.

테스트가 수행되지 않으면 소프트웨어의 신뢰성이 떨어 질 수 있으며, 중복코드가 많아 유지 보수에 부담이 됩니다.

저자는 코드가 수정되면 반드시 테스트 해야 한다고 강조합니다.




PS

이 책을 통해 개발자는 레거시 코드를 효율적으로 관리하고 현대적인 아키텍처를 구축하는 방법에 대해 배울 수 있습니다.

하지만 책도 상당히 두껍고 아키텍처에 대한 배경지식이 부족하다면 단기간에 이 책을 단숨에 읽을 수 없습니다.

업무를 하다가 내가 짜고 있는 소프트웨어의 설계가 잘 안된다고 생각이 들 때 책에 해당하는 도메인이나 설계 방법론이랑 비교해 보면서 틈틈이 조언받을을 수 있는 책이라 생각 합니다.


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