[리뷰]적정 소프트웨어 아키텍처:리스크 주도 접근법
[도서 소개]
소프트웨어 개발자를 위한 실용 가이드
이 책은 소프트웨어 개발을 시작할 때 필요한 실용 가이드북이다. 소프트웨어 아키텍처의 리스크는 무엇인지, 아키텍처 설계 원칙은 어떻게 적용하고 해결하는지, 유관 부서의 실무자를 어떻게 도울 수 있는지 등의 주제를 개발자가 흔히 겪는 경험을 기반으로 풀어냈다. 개발하면서 너무 많은 문서를 작성했거나, 코딩을 시작하기 전에 너무 적게 고민한 적도 있을 것이다. 어느 쪽이든 소프트웨어 개발이 왜 잘못되는지 알 수 있고, 이 책에서 제공하는 해결책이 많은 도움이 될 것이다.
[대상 독자]
- 숙련된 개발자
- 학계 관련 인사
- 미숙한 개발자 또는 학생
- 소프트웨어 아키텍트
[주요 내용]
- 리스크 주도 아키텍처링: 직면한 리스크에 따라 적정한 아키텍처 설계를 수행하는 방법
- 참여하는 아키텍처: 아키텍트뿐 아니라 모든 소프트웨어 개발자를 위한 아키텍처
- 선언적 지식: 기법을 적재적소에 사용하기 위한 개념과 용어
- 엔지니어링 강조: 소프트웨어 개발의 기술적인 부분과 시스템 작동을 위한 엔지니어링
- 실용적인 활용 방법: 상위 아키텍처부터 하위 자료 구조 설계까지 다양한 수준의 모델을 활용하는 접근 방법
[서평]
이 책을 좀더 빨리 알았더라면 소프트웨어 설계에 좀더 도움이 되지 않았을까 생각한다. 예전에는 언어와 객체지향 프로그래밍 책은 많이 있었지만 아키텍처 설계에 관련된 책은 많지 않았다. 단순히 프로그래밍 언어나 UML을 알고 있다고 좋은 시스템 아키텍처를 설계할 수 없다.
이 책은 다른 소프트웨어 아키텍처 책과 차별점은 다음과 같다.
1.리스크 주도 아키텍처링을 가르친다. 리스크가 작을때는 세심한 설계가 필요하지 않지만, 리스크가 많아 성공이 불확실할 때는 엉성한 설계가 용납되지 않는다. 유명 애자일 소프트웨어 지지자들은 일부 선행 설계가 도움이 될 수 있다고 제안한다. 이 책은 적정하게 아키텍처 설계를 수행하는 방법을 설명한다.
2.참여하는 아키텍처를 지향한다. 소프트웨어 아키텍트이거나 조직에 소프트웨어 아키텍트가 있을 수 있다. 아키텍트는 개발자가 ‘아키텍처와 관련된 제약 조건이 존재하는 이유ㅜ’ㅏ와 ‘작아 보이는 변경이 시스템 속성에 큰 영향을 미칠 수 있다는 점’을 이해하지 못한다고 불평한다.
3.선언적 지식을 키운다. 심리학자가 말하는 절차적 지식과 선언적 지식 사이에도 이와 같은 차이가 있다. 시스템 설계 및 구축 전문가라면 이 책의 많은 기법을 이미 사용해봤을 것이다. 하지만 여기서는 무엇을 사용했는지 더 잘 알 수 있도록 용어와 개념을 사용해 설명하고 있다. 선언적 지식은 다른 개발자를 가르치는데 도움이 된다.
4.엔지니어링을 강조한다. 소프트웨어 시스템을 설계하고 구축하는 사람들은 일정, 자원 할당, 이해관계자 요구를 처리하는 등 많은 일을 해야 한다. 소프트웨어 아키텍처에 관한 많은 책에서 이미 소프트웨어 개발 프로세스와 조직 구조를 다뤘다.
5.실용적인 조언을 제공한다. 이책은 아키텍처의 실용적인 활용 방법을 제공한다. 소프트웨어 아키텍처는 일종의 소프트웨어 설계다. 하지만 설계 결정은 아키텍처에 영향을 미치며 그 반대도 마찬가지다. 이책은 상위 아키텍처에서 하위 자료 구조 설계에 이르기까지 추상화를 위한 다양한 수준의 모델을 활용하는 접근 방법을 알려준다.
이 책에서 이야기하는 기본적인 내용은 대부분 개발자가 흔히 실무에서 겪는 경험을 기반으로 하기 때문에 개발을 하기전에 설계 문서를 너무 많이 작성 했거나 반대로 너무 적게 해서 고민 한적이 있을것이다. 어느 쪽이든 소프트웨어 개발이 왜 잘못되는지 않 수 있고, 이책에서 제공하는 해결책이 많은 도움이 될것이라 생각합니다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."