소프트웨어 요구사항의 정수 - 20개의 실무 사례로 알려주는 요구사항 개발의 핵심 지식과 실전 경험
칼 위거스.캔디스 호캔슨 지음, 심재철 옮김 / 제이펍 / 2024년 3월
평점 :
장바구니담기


『소프트웨어 요구사항의 정수』(칼 위거스·캔디스 호캔슨 지음, 심재철 번역, 제이펍, 2024)는 소프트웨어 개발의 성공적인 출발을 위한 요구사항을 실무 사례를 통해 배우는 책입니다.


저자들은 프로젝트의 요구 사항을 개발하고 관리하는 데 있어 20가지의 핵심 실천 방법을 소개합니다. 요구사항을 올바르고 정확하게 알아내기 위한 요구사항의 정의부터 시작하여 도출·분석·명세·검증·관리까지 요구사항 개발 여정을 다루는 책입니다.



전통적인 프로젝트(폭포수)와 에자일 프로젝트 모두 적용 가능한 사례들을 제공하며, 이를 통해 비즈니스 문제에 대한 이해와 더 나은 해결책을 구체화할 수 있습니다. 그리고 의사 결정자 및이해 당사자와 커뮤니케이션을 개선하며, 기능을 올바른 순서로 구현하고, 요구사항 관리를 통해 다양한 상황에서 대응할 수 있게 도와줍니다.


책은 요구 사항 계획·수집·분석·명세·검증 및 관리에 대한 사례를 제공함으로써, 복잡한 소프트웨어 요구 사항을 다루는 데 있어 도움을 줍니다. 또한, 각 실천 방안에 대해 즉시 실행할 수 있는 다음 단계를 제안함으로써, 이론적인 지식을 실무에 적용하는 데 있어 가이드를 제공합니다.



『소프트웨어 요구사항의 정수』는 많은 장점을 가지고 있던 책이었습니다. 


1. 효과적인 20가지의 요구 사항 실천 방법을 제시합니다. 비즈니스 문제를 이해하고, 효과적인 해결책을 기술하고, 올바른 기능을 올바른 순서로 구현하고, 변화에 적응할 수 있도록 돕습니다.


2. 템플릿과 체크리스트, 다양한 다이어그램으로 이해를 돕습니다.


3. 비즈니스 분석가, 요구 사항 엔지니어, 프로덕트 매니저, 프로덕트 오너, 개발자 등 다양한 직무에서 자신감을 가지고 핵심 실천 방법을 적용할 수 있는 실용적인 세부 정보를 제공합니다.


4. 문제를 해결할 수 있는 실천 방법들을 행동으로 옮기기 위한 제안된 다음 단계들을 제공합니다.



추천하고 싶은 독자는 비즈니스 분석가, 요구사항 엔지니어, 제품 관리자, 제품 소유자 또는 개발자 등 비즈니스 분석과 관련된 다양한 역할을 맡고 있는 실무자들입니다. 이 책은 요구사항 문제를 분석, 비즈니스 목표를 정의하며, 설루션의 경계를 설정하는 방법을 배우고자 하는 사람들에게 도움이 될 것입니다.

소프트웨어 개발과 관련된 직무를 수행하는 전문가들뿐만 아니라, 비즈니스 분석과 요구 사항 관리에 관심이 있는 학생과 취업 준비생에게도 추천합니다. 또한, 재밌는 실무 사례가 가득해 요구사항 개발의 실무를 배우고자 하는 초심자나 경험 있는 전문가들에게도 유용해 보입니다.



모든 프로젝트에는 요구사항이 있다
『소프트웨어 요구사항의 정수』



책은 요구 사항 엔지니어링 분야의 방대한 지식을 20가지의 핵심 실천으로 압축하여, 거의 모든 프로젝트에 적용할 수 있는 중요한 요구 사항 활동을 제시합니다. 단순히 이론적인 지식을 전달하는 것이 아니라, 실제 프로젝트 수행에 있어 효과를 높일 수 있는 실무적인 노하우를 제공합니다. 이를 통해 현장에서 다양한 역할을 수행하는 비즈니스 분석가, 요구 사항 엔지니어, 제품 관리자, 제품 소유자, 개발자들은 도움을 많이 얻을 수 있을 것입니다. 또한 책에서는 팀 전체가 공유할 수 있는 핵심 개념, 용어, 기술을 통해 프로젝트 수행 과정에서 더 효과적으로 협력할 수 있도록 도와줍니다.



가장 인상 깊게 읽었던 부분은 실무 사례 8번, '데이터 개념 및 관계를 평가한다'였습니다. 개체 관계도인 ERD(Entity Relationship Diagram)에 대한 설명과 이를 통해 핵심 비즈니스를 분석하고 데이터 흐름도를 통해 데이터의 이해도를 향상시킬 수 있었습니다. 시스템 교체, 데이터 유형과 필드의 길이 등 사례를 통해, 데이터와 함께 데이터에 대한 데이터인 메타데이터를 비롯해 세부적인 정보를 담은 데이터 사전으로 오류를 사전에 예방할 수 있는 방법을 알 수 있었습니다.    



책은 170여 페이지의 적은 분량이지만 핵심만을 담아, 요즘같이 두꺼운 책을 긴 호흡으로 읽기 힘든 시대에 편한 마음으로 읽었던 책이었습니다. 요구사항에 대한 궁금한 사람에게 필요한 요구사항을 간결하게 제시하고, 프로젝트를 위한 팀이 고려해야 할 가장 필수적인 실천 방법들을 소개하고 포괄적으로 다루므로 요구사항 개발과 요구사항 관리라는 단단한 토대를 만들고 싶은 분들에게 추천하고 싶습니다.




"해당 서평은 제이펍 출판사로부터 책을 제공받아 작성된 서평입니다."



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
소프트웨어 개발의 진주 - 60개의 레슨으로 배우는 소프트웨어 개발의 핵심 지식과 실전 경험
칼 위거스 지음, 심재철 옮김 / 제이펍 / 2024년 3월
평점 :
장바구니담기


『소프트웨어의 개발의 진주』(칼 위거스 지음, 심재철 옮김, 제이펍, 2024)는 저자가 소프트웨어 개발에서 겪은 경험과 지혜를 담은 책입니다. 저자인 칼 위거스(Karl Wiegers)는 소프트웨어 엔지니어링, 프로젝트 관리, 비즈니스 분석 등 다양한 분야에서 25년 이상의 경력을 가진 전문가로, 이 책을 통해 그가 겪은 시행착오와 성공 사례를 소개합니다. 



책은 요구사항, 설계, 프로젝트 관리, 문화와 팀워크, 품질, 그리고 프로세스 개선 등 소프트웨어 개발의 여섯 가지 핵심 요소에 대한 60가지 교훈을 제시합니다. 각 장은 실제 사례 연구와 구체적인 해결책을 통해 이러한 교훈들을 심도 있게 다루고 있으며, 독자들이 자신의 프로젝트에 적용할 수 있도록 실용적인 조언을 제공합니다.





인상 깊게 봤던 부분은 문화와 팀워크와 같은 소프트웨어 개발에서 보이지 않는 부분을 상당히 강조한다는 것이었습니다. 이 책은 개발의 정수를 다루지만 프로그래밍 언어로 작성된 코드가 나오지 않으며, 개발자가 아니더라도 IT 분야에 몸담고 있는 모든 사람들이 부담 없이 편하게 읽을 수 있던 책이었습니다. 


『소프트웨어의 개발의 진주』에서 느꼈던 장점들입니다. 

1. 다양한 사례를 통한 구체적인 해결책을 제공합니다. 저자를 비롯한 사람들의 경험으로 실수를 줄여 실무를 빠르게 개선할 수 있도록 돕습니다.


2. 프로젝트 관리에서 흔히 발생하는 문제들을 예측하고 피하는 방법을 제시합니다.


3. 소프트웨어 개발 문화와 팀워크를 만드는 방법을 소개합니다.


4. 성공적인 프로젝트와 비즈니스 성과를 달성하기 위한 프로세스 개선을 이해합니다.




이 책은 소프트웨어 개발에 대한 심도 있는 이해를 하고 싶거나, 경험을 통한 실무를 배우고자 하는 사람들, 그리고 소프트웨어 개발 과정에서 발생할 수 있는 문제들을 예방하고자 하는 사람들에게 추천합니다. 특히, 개발자·비즈니스 분석가·관리자에게 유용해 보입니다.



내가 이 책을 쓴 이유는, 이 책에 수록된 것과 동일한 레슨들을

여러분이 따로 힘들게 축적할 필요 없도록 하기 위해서다.

『소프트웨어 개발의 진주』, 3페이지



책의 제목이기도 한 진주는 '보석의 한 종류로서 조개가 체내에 들어온 이물질에 견디기 위해 만들어 감싼 무기체 덩어리'라고 합니다. 저자가 겪은 고통으로 만들어진 아름다운 진주를 이 책을 통해 만날 수 있었습니다. 

『소프트웨어 개발의 진주』는 단순히 이론적인 지식을 전달하는 것이 아니라, 실제 경험에서 얻은 교훈을 바탕으로 독자들이 실무에서 직면할 수 있는 다양한 상황에 대처할 수 있도록 도왔습니다. 책은 소프트웨어 개발의 복잡성과 고통을 이해하고, 이를 극복하기 위한 실질적인 방법론을 제공합니다. 소프트웨어 개발의 복잡한 문제들을 해결하는 데 있어 실질적인 도움을 줄 수 있는 통찰력과 교훈을 제공하며, 이를 통해 소프트웨어 실무를 한 단계 끌어올릴 수 있을 것입니다.

책은 소프트웨어 개발 분야에서 오랜 시간 동안 축적된 지식과 경험을 통해, 실무에 적용할 수 있는 실질적인 교훈을 제공합니다. 저자의 통찰력이 녹아든 60개의 레슨을 통해 제시하는 구체적인 권장 사항은 소프트웨어 개발 프로젝트의 성공을 위한 지름길이 될 것입니다. 고통받지 않는 소프트웨어 개발을 위해, 모두가 행복한 소프트웨어 개발을 위해 이 책을 추천하고 싶습니다.



"해당 서평은 제이펍 출판사로부터  책을 제공받아 작성된 서평입니다."




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
제로부터 시작하는 러스트 백엔드 프로그래밍 - 뉴스레터 API를 만들며 배우는 러스트 A to Z
루카 팔미에리 지음, 김모세 옮김 / 제이펍 / 2024년 2월
평점 :
장바구니담기


『제로부터 시작하는 러스트 백엔드 프로그래밍』(루카 팔미에리 지음, 김모세 옮김, 제이펍, 2024)는 개발의 처음부터 끝까지 '러스트'적인 백엔드 개발을 해보고 싶은 사람들을 위한 책입니다. 



이 책을 모두 읽었을 때 러스트를 채택할 것인지 아닌지는 여러분의 선택이다. 하지만 그 결정을 내리는 데 필요한 모든 것을 갖게 될 것이다.

『제로부터 시작하는 러스트 백엔드 프로그래밍』, 서문


책은 이메일 뉴스레터를 보내는 친숙한 예제를 통해 러스트를 통한 백엔드 개발을 가르쳐줍니다. 서비스를 처음부터 끝까지 만들면서 러스트의 특징을 소개하면서 개발에 필요한 도구와 기술까지 다룹니다. 




책의 장점

- 러스트로 백엔드 개발을 해보고 싶은 사람들을 위한 책입니다. 책을 통해 클라우드 네이티브 애플리케이션을 개발하는 방법을 익힐 수 있으며, 관측가능성·테스트·보안도 심도있게 다룹니다.

- 책은 단순히 코드를 따라치는 것이 아니라, 왜 그렇게 코드를 작성하는지, 어떤 문제를 해결하려고 하는지, 어떤 방법이 더 좋은지 등을 설명해줍니다. 테스트, 리팩토링, 배포 등의 실제 개발 과정도 다루어줍니다.

- 저자가 직접 러스트로 개발하면서 겪은 경험과 지식을 바탕으로 이 책을 출간했습니다. 러스트를 다룬 정보를 얻기 힘든데, 저자는 책의 곳곳마다 팁과 노하우를 많이 제공해줍니다.




책에서 아쉬웠던 부분

- 책은 웹 개발에 대한 기본적인 지식이 있는 사람들을 대상으로 합니다. 특히 웹 개발에 대한 기초, 러스트라는 언어에 대한 기초가 없다면 이 책은 어렵다고 생각합니다. 

- 책에서 그림으로 도식화하여 설명하는 부분이 많지 않다는 점도 아쉬웠습니다. 현재 개발하는 과정이 어느 부분인지, 앞으로 무엇을 개발할지 글로만 설명하여 파악하기 어려웠습니다.


그 외에, 디지털 오션보다 'AWS와 같은 대중적인 클라우드를 이용했으면 어땠을까?'라는 아쉬움도 있습니다.


추천 독자

러스트로 백엔드 개발을 해보고 싶은 개발자입니다. 다른 개발 분야·다른 언어를 사용하고 있더라도, 책을 통해 러스트의 장점과 특징과 더불어 사용자의 요구사항을 이해하고 적용한 API를 개발해보면서 생산성 있는 개발 방법을 배울 수 있었습니다.


러스트는 수 년간 개발자들이 좋아하는 언어 1위로 뽑혔던 언어입니다.(출처: 스택오버플로우) 이 책은 그런 러스트를 활용하며 백엔드 개발을 하는 방법을 소개해주는 책입니다. 성능, 보안, 테스트, 보안까지 소프트웨어 개발에 필요한 여러 방법들을 소개하면서 러스트를 이미 사용 중인 사람에게도, 러스트를 처음 접해보는 사람이더라도 도움이 될 책이라 생각합니다.    


책은 다른 개발 책과 달리, 예제의 모든 것을 구현하지 않습니다. 저자는 연습 요구 사항을 남겨두어 독자들이 '스파르타'식으로 훈련시키고, 관련 있는 주제들을 소개하여 더 공부할 수 있게 도움을 줬습니다. 그리고 저자는 오류와 해결과정, 여러가지 옵션을 하나하나씩 실행하며 신중한 개발을 위해 천천히 진행합니다. 편한 방법인 처음부터 정답을 알려주는 것이 아닌, 실제 개발을 하면서 겪은 저자의 눈물나는 노력이 책이 잘 담겼다고 생각합니다.


책은 '러스트로 백엔드 개발이 가능할까?'라는 의구심을 넘어, 백엔드 개발의 선택지에 러스트가 들어갈 수 있다는 생각이 들었습니다. 러스트로 백엔드 개발을 하고 싶은데 어디서부터 시작해야 할지 모르는 사람들이라면, 가장 먼저 읽어야 하는 책입니다. 책을 통해 러스트로 백엔드 개발을 할 수 있는 능력과 자신감을 얻을 수 있을 것입니다.



해당 서평은 제이펍 출판사로부터 책을 제공받아 작성했습니다. 감사합니다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
컴퓨터 시스템 딥 다이브 - C 언어부터 어셈블리, 아키텍처, OS까지 한 꺼풀씩 벗겨보는 컴퓨터 시스템
수잰 J. 매슈스.티아 뉴홀.케빈 C. 웹 지음, 김모세 외 옮김 / 한빛미디어 / 2023년 12월
평점 :
장바구니담기


『컴퓨터 시스템 딥 다이브』는 프로그램이 실행되는 방식을 이해하기 위한 컴퓨터 시스템(컴퓨터 아키텍처, 컴퓨터 구조, 병렬 컴퓨팅 등)을 소개하는 책입니다. 



컴퓨터 시스템은 사용자가 컴퓨터에서 프로그램을 운용할 수 있도록 컴퓨터 하드웨어와 특정한 시스템 소프트웨어를 결합한 것을 말합니다. 책은 C언어부터 차례대로 아키텍처, 어셈블리, 운영체제, 병렬 프로그래밍까지 소개하며, 낮은 계층인 하드웨어부터 높은 계층인 시스템 프로그래밍까지 전반적인 컴퓨터 시스템을 다룹니다. 


컴퓨터 시스템이 무엇이고 프로그램이 어떤 원리로 실행하는지 이해하면,

효율적으로 실행되는 코드를 설계하고 시스템의 기능을 최대한 활용할 수 있다.

p.27


책은 총 5부와 15장으로 구성되어 있습니다. 

주제별로 독립적인 내용을 다루고 있기 때문에, 순서대로 진행하지 않고 본인이 학습하고자 하는 부분만 읽으면서 학습해도 됩니다.



1부에서는 C 프로그래밍 언어에 대해 소개합니다. C 프로그래밍의 기초와 심화, 디버깅하는 법을 살펴봅니다.

2부에서는 컴퓨터 시스템을 이해하는 기초인 바이너리와 데이터 표현법, 폰 노이만 아키텍처를 기반으로 한 컴퓨터 아키텍처를 소개합니다.

3부에서는 기계가 해석할 수 있는 기계와 가장 근접한 어셈블리 프로그래밍에 대해 살펴봅니다. 

4부에서는 성능에 영향을 미치는 요소는 무엇이고, 프로그램을 어떻게 최적화할 수 있는지에 대해 소개합니다. 이를 위해 저장소 메모리 계층 구조, 코드 최적화, 운영체제를 살펴봅니다.

5부에서는 공유 메모리와 스레드를 통한 최적화와 병렬 프로그래밍(이종 컴퓨팅, 분산 메모리 시스템, 고성능 컴퓨팅(HPC) 등)에 대해 소개합니다.



책에서 다루는 핵심 주제는 바로 ‘실행’입니다. ‘어떻게 하면 컴퓨터 시스템에서 실행을 효율적으로 할 수 있을까?’를 중점적으로 다룬 책이라고 할 수 있습니다. C언어로 작성된 프로그램이 어떻게 실행되고, 어떻게 구조를 변경하여 성능을 최적화할 수 있는지 알 수 있게 하는 책이었습니다. 



책에서 좋았던 점

✅ C 언어의 문법과 기능을 파이썬과 비교하며, 기본부터 심화적인 부분까지 포괄적으로 배울 수 있었습니다.

✅ 다른 책에서 잘 다루지 않는 어셈블리 언어를 소개하여 컴퓨터 구조와 운영체제의 내부 동작을 깊이 이해할 수 있었습니다.

✅ 책 한 권으로 컴퓨터 시스템을 학습할 수 있는 구성. 여러 주제를 한 권으로 배울 수 있어 가성비 측면에서 좋았고, 다루는 주제가 독립적이기 때문에 원하는 순서로 읽을 수 있어 매력적이었습니다.

✅ 부연 설명을 하는 글 상자, 중요한 정보를 강조하는 노트, 주의를 기울여야 하는 경고로 효과적인 학습이 가능했습니다.



책에서 아쉬웠던 점

❗ 전반적으로 어려운 책의 난이도. 컴퓨터 공학이 아닌 다른 전공자나 입문자가 읽기에는 어려운 책인 것 같습니다. 

❗ 컴퓨터 시스템의 전반적으로 다루지만 어느 부분(어셈블리)은 심화적인 내용으로 깊숙이 배우는 반면, 어느 부분(운영체제)은 기초적인 내용만 다뤄서 아쉬웠습니다.  

❗ 독자 스스로 풀어 볼 수 있는 문제가 부족했습니다. 


책을 읽기 전 '굳이 어셈블리를 배워야 할까?' 궁금했었습니다. 우리가 작성한 코드를 변환하고, 오류를 발견하고 타입까지 추론해 주는 컴파일러의 발달로 인해 어셈블리를 배워야 할 이유가 점점 사라지고 있지만 저자는 4가지 이유로 설명하고 있습니다.


1. 가치 있는 프로그램의 세부사항을 감추는 고수준의 추상화

2. 리소스가 제한돼 컴파일러를 사용할 수 없는 시스템

3. 취약점 분석

4. 시스템 수준의 소프트웨어에서 중요한 코드 순서


이외에도 책에서는 유용한 팁들이 가득합니다. 악의적인 코드를 삽입해 의도적으로 다른 프로그램이 실행되게 만드는 버퍼 오버플로 악용을 구현 후 보호하는 방법(실행 영역 제한, 길이가 지정된 C언어 함수의 사용 등), 디버깅이 필요한 이유(버그를 발견하고 파악)와 디버깅 도구(GDB, 발그린드)의 사용법 소개, 코드 성능을 개선하고자 하기 위한 효과적인 방법(좋은 데이터 구조와 알고리즘 선택하기, 메모리 사용에 주의하기, 복잡한 코드는 여러 함수로 개선하기) 등 주니어 개발자부터 숙련자까지 도움이 뼈와 살이 될 조언이 많이 있었습니다. 


책을 통해 무엇을 얻을 수 있을지 궁금한 독자들을 위해 책의 표지가 많은 힌트를 줍니다. 잠수복을 입고 깊은 바닷속으로 들어가 조개를 발견하는 표지는, 컴퓨터 세계 속으로 들어가 하나하나 발견하는 호기심과 탐구력입니다? 책을 다 읽게 되면 아득하게만 보였던 컴퓨터의 세계가 흥미롭고 아름다운 세계였다는 것을 알게 되었습니다.

   

책을 읽고 느낀 점을 한 마디로 표현하면 ‘전주비빔밥’입니다. 각 주제별로 독립적이면서, 유기적으로 구성되어 따로 읽어도 될 만큼 충분한 학습이 가능했습니다. 미국 대학교에서 교재(미 육군사관학교, 캘리포니아 공과대학, 듀크대학교 등)로 사용되는지 알 수 있을 만큼 탄탄한 구성이 돋보였던 책이었습니다.


특히 저에게 많은 도움이 되었던 부분은 병렬 프로그래밍이었습니다. HPC(High Performance Computing)와 HDA(High-End Data Analysis)라는 두 축을 토대로 HPC에서는 AI 시대에 주목을 받는 하드웨어 가속기(GPGPU), 엔비디아의 CUDA, HDA에서는 클라우드 컴퓨팅, 분산 메모리 시스템과 빅데이터 처리의 핵심인 맵리듀스에 대한 소개까지 최신 병렬 프로그래밍 시스템에 대해 알 수 있었습니다. 


추천 독자로는 C언어, 컴퓨터 구조와 운영체제 기초에 대해 학습하고 더 심화적인 내용을 공부하고 싶은 사람, 내가 만든 코드가 어떻게 작동하는지 궁금한 대학생, CS 지식의 밑바닥부터 공부하고 싶은 개발자에게 추천합니다.  


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


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
대규모 C++ I편 - 절차와 아키텍처, 23주년 개정판
존 레이코스 지음, 권오인 옮김 / 길벗 / 2023년 12월
평점 :
장바구니담기


『대규모 C++ I 편: 절차와 아키텍처』(존 레이코스 지음, 권오인 옮김, 길벗, 2023)은 다양한 규모의 소프트웨어 개발 조직에서 일한 저자의 풍부한 경험을 바탕으로, 대규모 C++ 프로젝트의 물리적 설계와 구성을 다루는 책입니다. 

 

 

책의 구성입니다.
0장은 '동기'로, 소프트웨어 개발에서 계층적 재사용이 중요한 이유, 생산성을 높이기 위해 초기 엔지니어링이 왜 중요한지 설명합니다.
1장은 '컴파일러, 링커, 컴포넌트'로, C++의 컴파일러, 링커에 대한 지식, 가장 작은 설계 단위인 컴포넌트와 물리적 종속성을 설명합니다.
2장은 '패키징과 설계 규칙'으로, 패키지를 소개하고 컴포넌트 기반 소프트웨어를 조직화하고 패키징 하는 방법을 설명합니다. 소프트웨어 모듈을 계층적으로 개발하기 위한 방법도 알아봅니다.
3장은 '물리적 설계와 인수분해'로, 물리적 설계를 소개합니다. 작고 세분화된 시스템으로부터 큰 시스템까지 설계 과정과 물리적 종속성을 피하는 방법, 레이어 아키텍처 설계 방법, 예시와 함께 효과적으로 컴포넌트를 설계하는 방법을 알아봅니다.
부록에서는 책을 빠르게 훑어보고, 참조할 수 있게 페이지를 제공합니다. 각 장이 끝날 때마다 요약해서 정리하는 부분보다 더 요약정리되어 있어 편리했습니다.

 

 

책에서 느꼈던 장점입니다.

→ 저자가 대규모 C++ 프로젝트에서 실제로 겪었던 문제들과 해결책들을 공유합니다. 이론적인 내용뿐만 아니라 실무적인 내용도 다루며, 많은 예제 코드와 사례를 제공합니다. 특히 책의 마지막 부분에서 고객의 요구사항에 맞춘 소프트웨어를 만들어보면서 컴포넌트 중심 설계를 이해할 수 있는 부분이 인상적이었습니다.

→ 소프트웨어 개발 과정과 개발팀들 간 협업이 이루어지는 과정을 소개합니다. 큰 그림에서 개발을 볼 수 있어 유용했습니다.

→ C++에 대한 설명도 충실합니다. C++ 프로그램의 생성부터 빌드 절차, 컴파일과 링커의 동작 방식, 헤더 파일과 인클루드 지시자까지 좋은 사례와 나쁜 사례로 구별하여 설명하여, 저자가 오랜 기간 동안 얻은 테크닉과 주의사항들을 배울 수 있었습니다.

 

 

 

순환하는 물리적 종속성을 피하기 위한 계층적 테크닉을 설명하는 부분은 이 책의 하이라이트라고 생각합니다. 각 테크닉에 대한 설명뿐만 아니라 현실 속에 있을 만한 예시를 직접 코드를 통해 구현해 보고 다이어그램으로 설명하여 계층적 테크닉을 이해하는 데 도움이 되었습니다.

 

책의 마지막 부분(3장 12절)에서는 여태까지 배운 내용을 토대로 컴포넌트 기반 설계를 처음부터 끝까지 따라가 보는데, 고객의 요구사항이 시간이 갈수록 늘어나는(!) 현장감이 넘치는 예시로 계층적 재사용이 가능한 소프트웨어 설계의 중요성을 느낄 수 있었습니다. 그리고 설계를 하며 단순히 코드만 설명하는 것이 아닌, 다이어그램을 제공하여 이해에 도움이 되었습니다.

 

 

책에서 아쉬웠던 점입니다.

→ 많은 내용을 다루려는 저자의 노력으로 인한 두꺼워진 책의 두께와 가격입니다. 의존성과 레벨에 대해 너무 상세하게 다루며, 지루하게 느껴질 수도 있습니다.
→ C++에 중점 한 설명입니다. 특정 개발 언어에 국한되지 않는 설계 방법을 알려주지만, 예시 코드가 C++으로만 이루어져 있어 다른 언어를 사용하는 독자는 불편하게 느껴질 거라 생각합니다.

 

현실과 동떨어진 원리와 원칙, 디자인 개념을 제공하는 것에서 벗어나 저자가 현업에서 얻은 경험을 토대로 완성된 책이라서 경험을 가진 숙련된 개발자에게도, 설계에 어려움을 겪고 있는 개발자, 개발에 대해서는 알지만 소프트웨어 디자인에 대해서는 잘 모르는 개발자까지 모두 추천할 수 있는 책이라 생각합니다.

 

『대규모 C++ I 편: 절차와 아키텍처』는 소프트웨어 개발 절차부터 시작하여 아키텍처, C++에 대한 설명까지 대규모 소프트웨어 개발에 필요한 물리적 설계의 모든 것을 다룬 책이었습니다. 한편으로는 책에서 CI(지속적 통합)/CD(지속적 배포)와 같은 DevOps 적인 부분을 다루지 않아서 아쉬웠습니다. 단순 자동화를 넘어 이제는 인공지능의 도움을 받아 자동화를 제공하는 도구들이 많은 데, 해당 도구에 대한 설명과 한계점이 있었다면 더 좋았을 것 같습니다. 교과서적인 물리적 설계를 다뤄 개발자들의 레퍼런스가 되고 있는 『대규모 C++ I 편: 절차와 아키텍처』에 이어서 2편에서는 대규모 논리적 설계, 최적화, 고성능 구현까지 다룬다고 하니 벌써부터 기대됩니다.

 

 

해당 서평은 길벗 출판사로부터 책을 제공받아 작성했습니다. 감사합니다.


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