메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

소프트웨어 생명 주기와 설계 전반을 다룬 지침서, '소프트웨어 설계의 정석'

imjihye***

|

2024-09-28

소프트웨어 설계의 정석

기능 구현을 넘어 전체 시스템을 조망하며 설계 역량을 강화하는 방법

  • 저자 : 요시하라 쇼자부로
  • 번역 : 이해영
  • 출간 : 2024-09-02

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

 

 '소프트웨어 설계의 정석'은 소프트웨어 설계에 관한 전반적인 지식이 담겨있는 지침서이다. IT 종사자라면 설계에 대한 지식은 필수적이라고 볼 수 있다. 저자는 이 책의 대상 독자로 '시스템 개발에 종사하는 개발자'를 꼽았으나 책을 읽을수록 전 IT 직무가 읽으면 좋겠다는 생각이 든다. 설계에 대한 기본 지식과 전 영역을 이해할 수 있는 내용이 들어있다. 저자 자체가 컨설턴트이기 때문에 필자에게는 설계뿐만 아니라 직무적인 차원에서의 접근 방식을 살펴볼 수 있는 기회도 되었다.


 요구사항 정의와 설계에 대한 방법론은 오래전부터 이어져 왔다. 이러한 방법론을 터득하는 것은 소프트웨어 생명 주기의 기본을 다지는 것이라고 볼 수 있다. 저자는 설계를 하기 위해 세 가지가 필요하다고 언급했다. 첫째는 '설계의 목적을 정확히 파악하는 것', 둘째는 '설계에 필요한 최소한의 테크닉을 알아야 한다는 것', 셋째는 '제대로 된 의사소통을 하는 것'이다. 이러한 관점은 저자의 설명 군데군데 녹아 있다. 설계에 필요한 최소한의 지식으로는 유스케이스 모델, 개념 모델, 데이터베이스 설계, 아키텍처 설계를 꼽았다. 다양한 측면에서의 설계를 살펴보면서 전반적인 업무를 익힐 수 있다.


 초반부에서는 IT 프로젝트의 업무 프로세스와 구성에 대해 설명한다. 프로젝트 매니저와 PMO에게도 도움이 될만한 지식이 많았다. 책에는 PMBOK에 대해 간략하게 소개되어 있었다. PMBOK는 미국의 비영리 단체인 PMI(Project Management Institute)가 제정한 프로젝트 관리의 지식 체계이다. 8개의 프로젝트 성과 영역으로 프로젝트를 계획, 실행, 관리하고자 하여 완성도 높게 프로젝트를 관리할 수 있다. PMP(Project Management Professional) 자격증도 PMBOK에서 부여한다고 한다. 당장에 진행하고 있는 프로젝트를 파악하는 것도 빠듯하겠지만 이러한 방법론과 체계가 더 좋은 양분이 되어주리라 믿는다.


 최근 어떤 상무님이 갑작스레 내게 워터폴과 애자일 방법론에 대해 설명해 보라고 했다(면접 질문인 줄..). 추상적으로는 인지하고 있었지만 개념을 정리한 적은 없었던 터라 명확한 답변보다는 사례 위주로 장황하게 얘기했더랬다. 아쉬운 답변을 말한 이후였던지라 개발 방법론의 정의를 여느 때보다 주의 깊게 읽어보았다. 워터폴 개발 / 점진적 개발 / 애자일 개발이 표로도 명확하게 정의가 되어 있고, 그 뒤에 자세한 설명이 더해져 있어서 확실하게 정리가 되었다. 저자는 워터폴 방법론에는 한계가 있다고 보고 애자일 개발론에 우호적이라고 했다. 그렇기에 책에서 전제로 하는 개발 프로세스는 애자일 개발론을 전제로 한다. 업무 프로세스 > 유스케이스 추출 > 이터레이션(이터레이션 계획 - 유스케이스 분석 - 설계 - 개발) > 통합 테스트 > 릴리스 순의 프로세스를 생각하면 된다.


 설계는 크게 외부 설계와 내부 설계로 나누어진다. 외부 설계는 시스템의 구체적인 기능을 설계하는 것으로 사용자나 외부 시스템에 제공하는 기능, 인터페이스 등이 이에 해당한다. 외부 설계에서 입력과 출력이 결정되고, 내부 설계에서는 입력과 출력 사이에서 이루어지는 내부 처리를 설계한다. 데이터 처리 방법, 관리 방법, 병렬 처리 방법, 트랜잭션 방법, 물리 데이터베이스 등을 설계한다. 외부 / 내부 설계 방법은 각각의 작업과 결과물을 중심으로 상세히 설명된다. 가령, 외부 설계 중 데이터베이스 논리 설계 작업과 그 산출물인 논리 ER 다이어그램을 설명하거나 내부 설계 중 물리 데이터베이스 설계와 물리 ER 다이어그램에 대해 설명하는 식이다. 작성 방법 또한 소개되니 실제 업무를 수행함에 있어 용이할 것이다.


 


< 종합 평가 > 

1. IT 전 직무가 읽어야 할 필독서 - 저자는 다양한 프로젝트에서 개발 경력을 쌓고 아키텍트, 컨설턴트로 활약했다. 프로젝트에 관련한 다양한 직무 관점으로 프로젝트 사이클과 전반적인 업무를 이해할 수 있다.

2. 인사이트 - 저자의 인사이트가 책 중간중간 녹아있다. 이론 혹은 정설보다는 저자가 몸으로 체득하거나 가슴으로 느낀 것들을 담아내어 더욱 공감이 가고 흥미롭게 느껴졌다.

3. 전문 서적 추천 - 소프트웨어 설계의 정석에는 설계에 대한 전반적인 지식이 담겨있다. 그렇기에 소개되는 모든 기술과 방법론의 깊이가 깊지는 않다. 저자는 이에 대해 본인이 알고 있는 전문 서적 혹은 지식 커뮤니티를 추천하는 것으로 이를 보완한다. 책을 읽다 더 깊이 파고들고 싶어지는 부분이 있다면 저자의 추천을 따라 학습할 수 있어 완성도 높은 학습을 할 수 있다.

 

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?