ybh***
2024-09-30

IT 프로젝트 설계 및 문서 작업을 많이 하게 되는데 소프트웨어 개발 문서 업무에 도움이 될 것 같은 주제인 "소프트웨어 설계의 정석" 책을 읽어 보게 되었습니다.
처음 책을 접하기 전에 책의 내용이 조금은 어렵지 않을까 걱정을 하였습니다. 정석이라는 용어와 책의 목차를 접했을때 조금 어려운 책이구나 하고 생각했는데 책을 읽으면서 이렇게 쉽게 소프트웨어 설계를 설명하는 책이 있을까 하고 책을 완독하게 되었습니다.
우선 "소프트웨어 설계의 정석" 책은 IT 업무에 종사하는 분이라면 꼭 읽어 보는 것을 추천합니다.
IT 업무에 종사하게 된다면 업무 및 개발 관련 문서를 보게 되는데 "소프트웨어 설계의 정석" 책을 통해 소프트웨어가 어떻게 설계가 되고 어떤 결과물이 만들어지고 어떻게 결과물이 연결되고 어떤 의미가 있는지 확인해 볼 수 있게 구성되어 있습니다.
"소프트웨어 설계의 정석" 은 3개의 PART, 7개의 CHAPTER로 구성되어 있습니다.
각 PART와 CHAPTER는 각 소프트웨어 개발의 핵심을 충분히 설명하고 있으며 CHAPTER 하위 부분을 목차에서 자세히 표시하고 있으니 필요할 때 마다 해당 부분을 찾아 읽어보면 좋을 것 같습니다.
PART 1 입문 편
CHAPTER1 첫 설계를 잘해내기 위해
설계시 필요한 3가지, 개발자의 가치, 개발자의 커리어, 시스템 개발의 흐름 및 개발자 커리어와 설계가 필요한 이유 등을 설명하고 있습니다.
"소프트웨어 설계의 정석" 책의 대략적인 주제 및 읽어야 하는 이유를 설명하고 있는 부분입니다.
PART 2 설계 편
CHAPTER2 설계의 목적
CHAPTER3 외부 설계 방법
CHAPTER4 내부 설계 방법
"소프트웨어 설계의 정석" 책의 핵심 주제를 설명하고 있는 PART 입니다.
설계 대상 , 개발 프로젝트를 진행하는 방법, 개발 프로세스 선택과 진행(워터플 개발, 애자일 개발 등)을 시작으로 설계 진행 방법 및 설계의 목적 등을 설명하고 있습니다. 해당 부분에서 소프트웨어 설계의 전반적인 작업 및 결과물을 확인할 수 있습니다.
CHAPTER3 외부 설계 방법에서는 유즈케이스 분석, 개념 모델링, 화면 설계, 외부 시스템 I/F 설계, 커맨드/ Batch설계, 장표 설계 에 관련된 설계 방법 등을 설명하고 있습니다.
해당 부분에서는 데이터베이스 논리 설계도 설명하고 있는데 정규화, 상속구현방법, ACID 등도 확인해 볼 수 있습니다.
CHAPTER4 내부 설계 방법에서도 화면 프로그램 설계, 비즈니스 로직 프로그램 설계, 데이터베이스 프로그램 설계, 데이터베이스 설계에 관련된 설계 방법 등을 설명하고 있습니다.
해당 부분에서는 트랜잭션 스크립트 패턴, 도메인 모델 패턴을 확인해 볼 수 있습니다. 업무에서는 트랜잭션 스크립트 패턴을 활용하는데 요즘 활용도가 높아지고 있는 도메인 모델 패턴도 확인해 볼 수 있습니다. 그리고 트랜잭션 제어 부분도 확인해 볼 수 있는데 해당 기술적 내용이 자세히 나오고 있습니다. 해당 부분은 소프트웨어 개발자라면 꼭 읽어 보기를 추천합니다. 트랜잭션은 업무에서 가장 중요하고 문제가 생겼을때 대상 범위를 정하는데 가장 중요한 기술입니다.
CHAPTER3, CHAPTER4 부분이 "소프트웨어 설계의 정석" 책에서 가장 많은 부분을 차지하고 있으며 소프트웨어 개발의 핵심을 설명하고 있습니다. "소프트웨어 설계의 정석" 책을 읽게 된다면 꼭 CHAPTER3, CHAPTER4 는 읽어 보기를 추천합니다.
PART3 아키텍처 편
CHAPTER5 아키텍처의 목적
CHAPTER6 아키텍처 설계 접근법
CHAPTER7 정말 설계가 필요한가?
CHAPTER5, CHAPTER6 은 아키텍처가 어떤 일을 하는지 확인할 수 있는 부분이었습니다. 유지보수성 향상, 적합성 향상, 견적에 활용 등을 확인할 수 있으며 레이어 구성, 마이크로서비스등 설계내용을 확인해 볼 수 있습니다.
CHAPTER7 에서는 "소프트웨어 설계의 정석" 설계의 의미 및 설계가 불필요하다는 주장과 애자일 개발과 설계의 미래의 부분을 설명하고 있습니다.
애자일 개발 방법론으로 개발방식의 변화로 인해 예전만큼 설계 결과물을 만들지 않은 경우가 많은데 "소프트웨어 설계의 정석" 책을 통해 기본적인 설계의 의미와 애자일 개발 방법론에서 어떤 결과물을 내야하는지 그리고 설계서의 중요성 및 어떻게 활용해야 하는지 고민해 볼 수 있었습니다.
미래에 계속 소프트웨어 개발 및 설계 방식이 진화할때 어떻게해야 할지 고민하고 기본의 중요성을 확인할 수 있었습니다.
"소프트웨어 설계의 정석" 책은 어렵지 않게 소프트웨어 설계가 어떻게 그리고 어떤 기술 및 결과물이 있는지 확인할 수 있는 좋은 책이라고 생각합니다. 추천할 수 밖에 없는 좋은 책입니다.
마지막으로 "소프트웨어 설계의 정석" 추천 대상은 다음과 같습니다.
1. IT 업무에 종사하는 모든 분
2. 소프트웨어 개발자
3. PM
4. 소프트웨어 아키텍처
5. IT 업무과 연계된 업무 담당자
5번은 욕심 같긴 하지만 소프트웨어 개발에 참여하는 모든분이 읽어보면 좋을 것 같습니다. 기본적인 소프트웨어 개발 개념 및 소프트웨어 개발 대화에 많은 도움이 될 것 같습니다.
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.