tkxkd0***
2021-11-22

프로젝트 시작과 기준은 소프트웨어 스펙(SRS)이다. 제대로 작성된 스펙은 프로젝트를 성공으로 이끌 가능성을 높인다. 누구나 알고 싶어 하지만 쉽게 알 수 없는 소프트웨어 스펙 작성의 거의 모든 것을 정리했다.
이제 곧 현업에 나가는 학생 개발자이다 보니 정해진 스펙대로 개발하기보다는 하나의 아이디어를 내고 그 프로덕트를 만들기 위한 기능을 대략 나누어 각자 개발해서 합치는 경우가 일반적이었다. 실제 대규모로 서비스하는 것이 아니다보니 이러한 방식으로도 큰 문제는 없었지만 소프트웨어의 규모가 커질수록 이러한 방법은 한계가 있을거라는 것을 은연중에 느끼고 있었고 마침 11월 리뷰 서적에 이러한 갈증을 해소시켜줄 것 같은 제목의 책이 있어 신청을 하게 되었다. 소프트웨어 요구사항을 분석하고 작성하는 것은 수십가지의 방법이 존재하지만 이 책은 IEEE830과 DoD에 정의된 Sofware Requirements Specification을 중심으로 스펙 문서 작성을 설명한다.
소프트웨어 개발은 1층부터 차례대로 짓는 건물과 달리 동시다발적으로 컴포넌트와 인터페이스를 정의하고 이를 기반으로 병렬적으로 작업이 진행되는 것이 일반적이다. 따라서 초기에 정한 이러한 스펙이 차후 많이 변경된다면 이를 동기화하기 위한 공수도 상당히 많이 들어가게 된다. 실제 대학교 2학년 때 처음 동기들과 프로젝트를 하면서 처음 예상했던 인터페이스에서 너무 많이 달라져서 이후 코드를 머지하는데 큰 어려움을 겪었던 기억이 있다. 이 책에서는 이러한 문제의 솔루션으로 지속적인 통합을 강조하는데 이를 위해서는 유닛 테스트 및 테스트 자동화가 필수불가결하다. 또한, 하나의 컴포넌트를 전부 완성시키고 커밋하는 것이 아닌 컴포넌트 안의 특정 기능을 완성할 때마다 커밋 후 빌드 테스트를 하는 것을 추천한다. 빌드의 경우 환경에 따라 데일리 빌드, 나이틀리 빌드 등으로 변경할 수 있다.
이 책의 좋았던 점은 내가 처한 개발 환경에 따라 다양한 스펙 문서의 유형을 알려주고 이것이 실제 어떻게 사례로 연결되는지 보여준다는 점이다. 또한, 2부에서 실제 SRS의 구성을 따라가며 상세히 작성하는 방법을 알려주는 부분은 실제 현업에 들어가서 바로 적용할 수 있겠다는 생각을 했다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."