|
?도서를 제공받아 작성한 리뷰입니다.
올바른 소프트웨어 설계 엔지니어링 원칙으로 배우는 아키텍처와 프로젝트 설계 큰아이가 컴퓨터 관련 전공을 희망하고 있고 그중에서도 소프트웨어쪽으로 관심있어하는터라 관련도서를 있으면 권해주고있는데요. 책장에 꽂아두면 아이가 필요할 때 찾아서 읽곤 하더라고요. 그동안은 코딩관련도서위주로 본터라 큰틀인 소프트웨어 쪽으로는 또 처음인듯해요.
엔지니어링 원칙을 적용한 현대 소프트웨어 개발의 시작 끊임없는 변화에 견고한 아키텍처와 검증된 프로젝트 설계 방법론 올바른 소프트웨어 설계는 먼저 실패하는 소프트웨어 아키텍처의 주요 원인을 분석하고 변동성에 기반하여 서비스와 구성요소로 분해하는 변동성 아키텍쳐를 설계하는 방법을 다룹니다. 변동성 아키텍처를 기반으로 다양한 엔지니어링 원리들을 적용해 프로젝트 설계를 도출하는 체계적인 방법을 논의하고 프로젝트의 기간, 비용 및 위험을 정확하게 계산합니다. 이를 통해 얻은 방법과 원칙은 프로젝트나 회사 규모, 기술, 플랫폼 또는 도메인과 관계없이 적용할 수 있으며 개발자, 팀장, 프로젝트 리더 또는 관리자에서 고품질의 소프트웨어를 개발하는 가장 현대적이고 체계적인 접근 방식을 제시합니다. 예전에 전공서적이 생각나는 이론서네요. 왠지 수업시간에 봐줘야할 법한 느낌인데요. 올바른 소프트웨어 설계에서 소개하는 기법과 개념은 모든 프로그래밍 언어나 플랫폼 프로젝트 규모에 관계없이 적용됩니다. 또한 거의 모든 분야의 모든 비즈니스 모델, 그리고 모든 규모의 회사에도 적용되요.
아이가 지금 읽기에는 무리가 있는 책이에요. 학생이 아니라 소프트웨어 전문가가 살펴보면 좋을 것 같아요. 나중을 위해 만나본다 생각하고 간단하게나며 읽어보면 좋겠어요.
|
![]() 엔지니어링 원칙으로 배우는 아키텍처와 프로젝트 설계, <올바른 소프트웨어 설계>. 올바른 소프트웨어 설계를 위한 시간과 비용을 절감해주는 IT 지침서라 부르고 싶은 책으로 소프트웨어 아키텍처 관련한 밀접 업무를 맡고 계신 분들께 적극 추천드리고 싶은 책을 만났습니다. 소프트웨어 설계만 해도 굉장히 복잡한 일인데 여러 단계를 거쳐 완성되는 하나의 프로세스가 완성되기까지 얼마나 많은 시행착오와 실패를 거듭했을지에 대해 생각해보았습니다. 이 책으로 시행착오를 줄이고 소중한 시간을 아껴 비용을 절감할 수 있다면 이보다 더 큰 소득은 없을 것이라 생각합니다. ![]() <올바른 소프트웨어 설계>에서 설명하고 있는 효율적인 프로세스와 여러 문제들에 대해 슬기롭게 해결할 수 있는 방안들은 실용적이고 현실적입니다. 이미 구축되어온 공학적 개념들을 소프트웨어에 적용해 난관을 극복하는 자세와 방법들을 다루고 있어서 읽는 것만으로도 그동안 생각해보지 못했던 새로운 것들을 생각하게 하고 아이디어뱅크로서의 역할을 톡톡히 해냅니다. 기존에 갈고 닦아온 길이 계속해서 완벽한 길은 아닐테니 변화되는 시대의 흐름에 맞춰 새로운 틀을 구상해보기도 하고 생각을 달리해 더 효율적인 프로세스로 가는 방법을 모색하는 것이죠. 무에서 유를 창조하는 것은 어려운 것이지만 이미 만들어진 것을 새롭게 적용해보고 바꿔보는 것은 그렇게 어렵고 힘든 일만은 아닐 것입니다. ![]() 이상적인 시간-비용 곡선을 통한 더 올바른 소프트웨어 설계에 대한 생각을 정리해보기도 하고 여러 생각들을 떠올려보며 해결방안을 연구해가는 책으로 탁월한 교재입니다. 소프트웨어 설계에 좀 더 도움이 되는 신박한 방법들로 가득한 <올바른 소프트웨어 설계> 많은 분들이 보고 아이디어를 얻어가셨으면 좋겠습니다. #IT #소프트웨어 #올바른소프트웨어설계 -출판사로부터 도서를 제공받아 솔직하게 작성한 리뷰입니다. |
|
![]() 다양한 형태에서 활용 가능한 프로그래밍 및 관련한 언어 체계 등에 대해 소개하는 책으로 주로 실무자를 위한 가이드북으로도 볼 수 있을 것이며 이는 개인 단위에서도 충분히 배우며 더 나은 기회나 가치를 창출해 나갈 수 있다는 점에서도 긍정적으로 다가오는 조언서일 것이다. <올바른 소프트웨어 설계> 이 책의 경우 기본적인 컴퓨터 및 모바일 능력과 관리법을 비롯해 프로그래밍 언어가 무엇인지, 혹은 소프트웨어 개발이나 공학 분야에 대해 어떤 형태로 배우며 이를 실무에서도 활용, 관리해 나가야 하는지를 표현하고 있는 책이다. 특히 해당 분야를 전공하는 분들이라면 더 쉽게 배울 수 있는 가이드라인이나 상대적으로 처음 접하는 분들도 최대한 실무 중심적으로 배우며 핵심가치를 위주로 한 학습이나 설계가 가능하다는 점에서도 그 의미나 방향성 등이 명확하게 드러나는 책일 것이다. <올바른 소프트웨어 설계> 물론 관련한 용어나 개념에서 오는 어려움이 있을 수 있다는 점과 컴퓨터 및 소프트웨어 공학의 경우 보는 관점이나 받아들이는 정도에 따라서 그 평가와 난이도가 달라질 수 있다는 점에서도 제대로 된 형태의 학습이나 설계가 필요한 분야일 것이다. ![]() 이 책도 이런 취지를 통해 구체적으로 무엇을 알아야 하는지, 또한 일이나 업무 처리 과정에서 요구되는 능력이나 통합적 가치나 과정을 통해 최대한의 효율과 실용성 등을 어떤 형태로 추구해 나가는지 등도 함께 접해 볼 수 있어서 새롭게 다가오는 부분과 방식도 많을 것이다. 다양한 정보나 지식, 관련한 자료 등을 수집, 관리해 나가는 의미를 통해 우리는 더 나은 일처리 방식을 고민하기도 하며 새로운 가치를 창출하거나 긍정의 의미 등을 함께 마주할 수 있는 법이다. 이는 프로그래밍 언어나 소프트웨어 공학이 갖는 특장점일 것이며 해당 영역의 경우 실무적인 역량 판단의 기준이 된다는 점에서도 괜찮게 다가오는 부분일 것이다. <올바른 소프트웨어 설계> 구체적으로 어떤 분야를 어떻게 배우며 이를 자신만의 형태로 활용하거나 적용해야 하는지, 또한 해당 분야의 기초와 기본기를 배우기 위해선 책에서 표현되는 가이드라인과 전략적 기법에 있어서도 어떤 선택적 가치 판단이 요구되는지도 함께 접하며 판단해 보자. 다소 어려울 수 있지만 그만큼 소프트웨어 관련 거의 모든 정보와 가이드라인을 함께 제공하고 있다는 점에서도 배울 점이 많을 것이며 주로 실무자를 위한 책으로 추천하고 싶다. 또한 온라인과 오프라인 분야 모두에서 활용 가능한 요소가 많다는 점도 참고했으면 한다. 함께 접하며 활용해 보자. ![]() |
우리는 1980년대이후 많은 소프트웨어를 사용해 왔습니다. MS오피스, 아래한글, 포토샵 등 이러한 소프트웨어이 대표적이고 유명하죠. 이러한 소프트웨어들이 업무를 편하게 해주고 발전시켜서 생산성을 크게 발전시켜왔습니다. 하지만 최근에는 소프트웨어개발과정에서 많은 문제가 발생하고 있다고 합니다. 과거에 비해 실패도 늘고 이로인해 시간과 비용에서 큰 대가를 치루게 된다고 합니다. <올바른 소프트웨어 설계>는 소프트웨어 공학의 원칙과 소프트웨어 시스템과 프로젝트에 적용하는 방대한 도구와 기법을 알려준다고 합니다. 이런 기법과 방법으로 비용, 일정, 요구사항, 인력충원, 유지보수, 품질 등에서 발생하는 문제를 해결하는 스포트웨어 아키텍트를 양성하는 내용을 담았습니다. 저자는 유발로이 IDesign설립자입니다. 마이크로소프트의 핵심개발자였습니다. 주요 개발자회의에서 주요강연자였으며 MS선정'Software Legend'로 선정될 정도로 세계적인 소프트웨어 아키텍트입니다. 저자는 '더 메서드'라는 소프트웨어 개발기법을 소개합니다. 이는 '시스템설계 + 프로젝트 설계'를 뜻합니다. 그리고 시스템설계를 작은 모듈단위 컴포넌트로 쪼개는 방식이고 이를 분해,구조,조합해서 시스템아키텍처를 만들고 프로젝트설계는 시스템설계보다 휠씬더 복잡해서 더 많은 도구와 아이디어 그리고 기법이 필요하다고 합니다. 그래서 시스템설계는 1부, 프로젝트설계는 2부에 둔모양입니다. 이렇게 두부분으로 나눠두었지만 실제는 두 설계가 결합된 방법이죠. 그래서 이를 '설계프로세스'라고 합니다. 벌써 이 정도 설명도 힘든게 사실입니다만 ㅠㅠ 하옇든 더 메서드는 시스템설계와 프로젝트 설계의 좋은 시작점이라고 합니다. 이 부분에 시간과 노력이 충분히 들어가야 한다고 강조합니다. 시스템설계는 분해, 구조,조합 순으로 원칙들을 설명합니다. 분해는 시스템구성요소를 구분하는 걸 이야기합니다. 이것을 시스템분해라고 합니다. 이부분이 매우 중요하다고 합니다. 그 예를 기존시스템의 기능분해를 통해 증명하고 변동성 기반 분해에 대해 알아봅니다. 물론 어렵지만 실무에서 확실히 무언가를 느낄 듯합니다. 그리고 구조는 시스템의 구조를 정의하고 기능 요구사항을 나열합니다. 이부분은 매우 힘든 부분이라 계층형접근법으로 편하게 분리해야 합니다. 누구, 무엇, 어떻게, 어디로 질문을 해서 검증을 합니다. 조합은 검증과 밀접한 관계가 있다고 합니다. 요구사항이 변경되었을때도 조합형 설계는 변형되면 안된다고 합니다. 이러한 분해,구조,조합을 확인할 수있는 시스템설계사례로 확인하는 작업을 합니다. 프로젝트 설게는 시스템을 구축하는 설계입니다. 그래서 시스템설계의 연장선이라고 합니다. 이 설계는 시스템설계와 프로젝트설계를 결합하는 과정이라는 겁니다. 결국 소프트웨어 아키텍처의 몫이라고 합니다. 흥미로운 점은 성공의 기준입니다. 저자는 성공의 기준을 약속을 지키는것이라고 합니다. 품질을 낮춰서 성공이라고 하면 안된다는 거죠. ㅠㅠ 팀이야기도 나오고, 네트워크 다이어그램도 그리고 비용, 역할 등 다양한 기법이 소개가 됩니다. 그리고 프로젝트설계에서 시간과 비용을 설정합니다. 서비스기획에서도 시간과 비용은 중요한 항목입니다. 저는 주니어개발자수준이라 내용이 쉽지는 않았습니다. 대규모 소프트웨어의 손톱수준의 기능 코딩을 맡고 입장에서 전체를 이해하는 것은 쉽지는 않습니다만 고품질 소프트웨어가 어떻게 만들어지는지에 관한 분명한 Righting 수준은 보았습니다.본 도서는 리뷰어스클럽으로부터 무상으로 제공받아 주관적인 리뷰를 했습니다. |
|
[똑똑한 도서소개] 영진닷컴, 올바른 소프트웨어 설계 글 / 사진 : 서원준 (news@toktoknews.com) ![]() 이 포스팅은 리뷰어스클럽를 통해서 영진닷컴에서 도서를 제공받아 직접 읽은 후 작성하였으며 도서소개 (구매가이드) 성격이 강한 글입니다. 2024년도 어느새 하반기로 접어들어 이제 8월도 막바지로 접어들고 있습니다. 냉방병과 코로나로 인해 올 여름 후반은 예측 불허의 시대가 되어 가는 모습입니다. 아무쪼록 건강관리 잘 하시기 바랍니다. 이번 8월까지 공부 그리고 독서에 힘을 쏟을 예정이었습니다만 신간에 대한 지나친 욕심 때문에 쉽지 않았음을 고백하고자 합니다. IT 소프트웨어 개발에 있어서 다른 무엇보다 중요하다고 할 수 있는 소프트웨어 설계에 대해서 제대로 학습할 수 있는 시간이 되셨으면 합니다. 일단 컴퓨터 프로그래머가 되고 나면, 가장 어려움에 빠지는 경우가 꼭 한 번씩은 찾아옵니다. 잊어버리지 않고 계속 찾아오는 소프트웨어 설계 관련 이야기입니다. 세상이 하도 험악하다 보니 누구를 의지할 곳도 없어지게 됩니다. 그럴 땐 나 자신과 마음 속으로 대화해야 합니다. 나의 꿈은 무엇이니 부터 시작하는 그 대화 말입니다. ![]() 그래서 찾게 된 것이 바로 컴퓨터 프로그래밍이건만 생각보다 코딩할 것은 많고 타이핑해야 할 것이 넘쳐나니 참으로 기가 막힐 노릇입니다. 그러나 여기서 포기하면 안 되기에 계속 프로그래밍을 해서 결국 컴퓨터 프로그램을 만듭니다. 여기서 필요한 것이 바로 "소프트웨어 설계" 입니다. 제가 언젠가는 "소프트웨어 설계" 부분을 제대로 배워보리라고 제 자신한테 수십년을 이야기해 봤습니다만 공회전만 할 뿐이었습니다. 그러던 차에 필자에게 좋은 기회가 찾아왔고 책을 읽을 수 있게 되었습니다. 필자는 프로그램 전문 개발자도 아니고 프로그램을 통해서 무언가를 하려던 사람이 아니다 보니 그렇게까지 큰 관심을 가지지 않았습니다만 책 제목에 "소프트웨어 설계" 라 하니 과거의 그 추억이 또다시 저의 온 몸을 휘감게 되었습니다. 무작정 코딩만이 능사가 아니고 IT 아키텍처와 IT 소프트웨어 설계를 잘 해야 한다는 것이었습니다. 필자 입장에서 이 책에 대한 관심은 실로 대단했습니다. 이번에 다루게 되는 "올바른 소프트웨어 설계" 는 전 세계 수 천 명의 아키텍트를 직접 멘토링했던 유발 로이가 집필한 책으로서 소프트웨어 설계에 있어서 고도로 엔지니어링이 된 접근 방법을 제시하고 있는 책으로 1회 이상 소프트웨어 프로젝트를 실패하고 시스템의 복잡함을 여러 차례 경험 해 본 개발자에게는 필독서라고 생각합니다. ![]() 마치면서 저로서는 호기심으로 이 책을 보기 시작했는데 무언가 큰 교훈으르 주는 책이 아닐까 싶었습니다. 이 책은 엔지니어링 원칙을 적용한 현대 소프트웨어 개발의 시작으로서 끊임없는 변화에 견고한 아키텍처와 검증된 프로젝트 설계 방법론을 제시하고 있는 도서라고 생각합니다. 프로그래밍 초짜에 가까운 필자가 보기에는 조금 그렇긴 하지만 소프트웨어 아키텍처를 이해하기에는 딱 적절한 책이라고 생각합니다. ![]() #협찬 #유료광고 #도서협찬 #책스타그램 #북스타그램 #독서 #독서스타그램 #도서 #도서스타그램 #책추천 #도서서평 #영진닷컴 #유발로이 #IT #소프트웨어 #올바른소프트웨어설계 #리뷰어스클럽 #리뷰어스클럽서평단 |
▶▶리뷰어스클럽의 소개로 출판사로부터 책을 제공받아 솔직하게 작성한 서평입니다.올바른 소프트웨어 설계
<올바른 소프트웨어 설계>는 소프트웨어 아키텍처와 프로젝트 설계의 중요성을 심도 있게 다루며, 현대 소프트웨어 개발의 핵심 원리를 탐구하는 책입니다. 저자는 소프트웨어 설계의 복잡성을 명확하게 해부하고,이를 통해 견고하고 유연한 시스템을 구축하는 방법을 제시합니다. 이 책을 접하면서 느낀 점은, 소프트웨어 개발이 단순한 코딩 작업이 아니라 철저한 설계와 계획이 필요하다는 것입니다. 4장 '조합'에서는 소프트웨어 설계의 핵심 원칙 중 하나인 요구사항 변경에 대한 대응 방법을 다룹니다. IT업계에서 일한 경험이 있기 때문에 요구사항이 빈번하게 변경되는 상황에서 시스템을 유지보수하는 것이 얼마나 도전적인 일인지 잘 알고 있습니다. 요구사항이 계속 바뀌기도 하고, 소통이 잘 안되기도 해서 답답했던 경험이 있었고 최종적으로 엎어졌던 기억이 있습니다. 이 장에서는 변경 사항을 효과적으로 관리하기 위한 조합형 설계의 접근법을 제시합니다. 코어 유스케이스를 중심으로 아키텍처를 구성하고, 변경 사항을 격리하는 방안을 통해 시스템의 유연성을 높이는 방법을 설명합니다. 이 부분은 특히 변화무쌍한 프로젝트 환경에서 아키텍처의 견고성을 유지하기 위해 반드시 숙지해야 할 내용입니다. 요구사항 변경에 대한 두려움을 줄이고, 변화에 능동적으로 대응할 수 있는 체계를 마련하는 것이 중요함을 느낄 수 있었습니다. 이 책의 가장 큰 장점 중 하나는 실제 사례를 통해 이론을 뒷받침한다는 점입니다.다양한 프로젝트와 아키텍처 예시는 이론적 내용을 실전에 적용하는 데 큰 도움을 줍니다. 5장 '시스템 설계 사례'에서는 실제 사례를 통해 시스템 설계의 이론과 실습을 연결합니다. TradeMe 시스템의 사례를 통해 레거시 시스템과 새로운 시스템 간의 차이점을 설명하며, 모놀리스와 과립형 구성 요소의 접근 방식을 비교합니다. 이 장은 실전에서 이론을 어떻게 적용하는지에 대한 실질적인 통찰을 제공합니다. 특히 비즈니스 목표와 아키텍처의 일치를 강조하며, 설계 검증의 중요성을 강조합니다. 다양한 아키텍처 패턴을 실무에 어떻게 적용할 수 있는지 이해하는 데 큰 도움이 되었습니다. 이 장을 통해 시스템 설계의 복잡성을 파악하고, 실전 경험을 쌓는 데 필요한 기초를 마련할 수 있었습니다. 초보자나 비전문가의 관점에서 이 책은 처음에는 다소 어려울 수 있습니다. 용어와 개념이 생소하고 복잡할 수 있지만, 천천히 접근한다면 소프트웨어 개발의 전체적인 맥락을 이해하는 데 큰 도움이 됩니다. 또한, 소프트웨어 설계의 기초부터 고급 기술까지 폭넓게 다루고 있어, 자신의 기술 수준에 맞게 선택적으로 내용을 습득할 수 있는 점도 이 책의 장점입니다. <올바른 소프트웨어 설계>는 아키텍처가 마주할 수 있는 다양한 문제를 체계적으로 해결할 수 있는 방법을 제시합니다. 아키텍처 설계와 프로젝트 관리의 이론과 실무를 통합하여, 복잡한 요구사항에 대응할 수 있는 능력을 기를 수 있습니다. 특히 4장, 5장, 9장에서 다루는 내용은 소프트웨어 설계와 프로젝트 관리의 핵심 요소를 잘 보여주며, 실무에 직접 적용할 수 있는 유용한 가이드를 제공합니다. 이 책은 아키텍처 설계의 기초부터 고급 개념까지 폭넓은 지식을 제공하여, 소프트웨어 설계의 품질을 높이는 데 큰 도움을 줄 것입니다. #올바른소프트웨어설계 #올바른_소프트웨어_설계 #유발로이 #유발_로이 #남기혁 #영진닷컴 #리뷰어스 #리뷰어스서평단 #소프트웨어설계 #IT서적 |
오랜 직장생활을 하면서 제가 가진 목표가 몇가지가 있습니다. 그것은 초고속 승진을 통한 입신양명도, 아니면 엄청난 직위를 가지는 것도 아닙니다. (현실적으로도 불가능해 보입니다) 해당 목표중에 하나는 수년안에 제가 원하는 소프트웨어를 만들고, 이를 현업에서도 적용하는 겁니다. 이러한 목표를 왜 하냐면 저는 늘 새로운 것을 도전하는게 즐겁고, 이를 통해 유무형의 결과물이 내는 것에 보람을 느끼며, 그 와중에서도 파생되는 효과로 역량이 향상되는데 행복을 느끼기 때문입니다. 그래서 개발언어와 데이터분석, 데이터시각화등을 진행하면서 이제는 어떻게 소프트웨어를 만들까를 고민하면서 <올바른 소프트웨어 설계>라는 책도 만나게 된 것이라고 생각합니다 .? 저는 소프트웨어 전문가가 아니라, 이제야 소프트웨어 업계에 다가간 사람이기에 본서를 저술한 Microsoft Software Legend라고 불리우는 저자의 발 끝만치도 따라가지 못할겁니다. 그래서 본서를 단시간에 완벽히 이해하는 것은 포기했고, 엄청난 두꺼운 내용들을 섬렵하는 것도 오랜시간이 걸릴 거라 생각했기에 본서는 정독이 아닌 인상적인 부분들을 읽고 그것을 통해 추후에 하나씩 내 것으로 만들자는 생각으로 속독을 진행했고, 해당 속독을 통해 제가 느낀 바는 다음과 같습니다. ?가장 중요한 것은 어떤 소프트웨어를 만들던 아키텍쳐와 프로젝트 설계를 염두에 두고 진행해야한다는 것입니다. 아키텍쳐는 서버등의 시스템 아키텍쳐와 더불어 개별 소프트웨어의 논리적 구조에 대한 아키텍쳐가 포함이 될 것이고 프로젝트 설계는 결국 프로젝트의 기간, 비용, 위험등을 계산하고 이에 대한 과업을 수행하는 내용이라 할 수 있습니다. 본서는 아키텍쳐를 적용하는데 들어가는 엔지니어링 기법과 소프트웨어 PM으로서 반드시 지켜야 할 것들을 방대한 내용으로 담고 있습니다. 이 두가지가 중요한 이유는, 소프트웨어를 개발하거나, 유통, 사후조치를 담당하는 사람이 아닌 분들은 돈과 개발인력만 있으면 소프트웨어가 도깨비 방망이 나오듯이 만들 수 있다는 거대한 착각에 빠져있기 때문입니다. 하지만 현실은 수요처가 바라는 소프트웨어가 100% 구현은 커면 절반이 원하는 기간에 되면 다행입니다. 이는 개발에 필요한 부대조건의 문제라기 보다는 시스템설계와 소프트웨어 프로젝트 설계 자체가 문제가 되거나 해당 부분에 대해 무지하기 때문일겁니다. 본서는 바로 이점을 극복할 수 있게 하는 참고도서라고 할 수 있습니다. *출판사를 통해 도서를 지원받아 작성한 리뷰입니다
|
|
엔지니어링 원칙을 적용하여 체계적인 소프트웨어 설계에 대한 내용을 소개하는 『올바른 소프트웨어 설계』 소프트웨어 설계를 직접 경험하거나 시도를 해본 것은 아니지만 업무를 수행하며 간접적으로 회사 내부에서 사용하는 프로그램이 완성되기까지의 과정을 처음부터 마지막 순간까지 지켜본 경험이 있어서인지 소프트웨어 설계에 대한 관심이 생겼고 그 관심으로 『올바른 소프트웨어 설계』 을 읽게 되었다. 전문 분야가 아니기에 소프트웨어와 프로그램은 동일시하게 생각되기 때문에 생각의 차이가 있을 수 있지만 프로그램을 만든다는 건 참으로 어려운 일인 거 같다. 심플한 요구 사항에서 출발한 프로그램은 진행되면서 점차 늘어가고 그와 동시에 구체화되는 모습들 그리고 처음에 계획했던 것과 다르게 하나의 프로그램이 여러 개의 프로그램으로 나뉘는 등 예상하지 못한 상황들까지. 완성도 있는 프로그램을 만들기는 과정은 참으로 녹록지 않았다. 회사 내부에서 사용하는 프로그램도 완성하기까지의 과정이 힘든데 하물며 다수의 회사 혹은 개인이 사용하는 소프트웨어를 개발한다는 건은 그보다 더 힘든 일이겠구나 하는 생각이 든다. 비전문가인 나도 이렇게 생각했던 만큼 전문가의 입장도 크게 다르지 않았던 거 같다. 『올바른 소프트웨어 설계』의 저자 유발 로이는 시스템 및 프로젝트 설계에 특화된 소프트웨어 아키텍트로서 수많은 프로젝트를 수행하며 많은 고민을 해왔고 그 고민의 끝에는 보다 많은 사람들이 실패하지 않고 완벽한 소프트웨어를 설계할 수 있도록 가이드하고 자 이 책을 집필한 게 아닐까 싶다.
『올바른 소프트웨어 설계』에서는 소프트웨어 설계 및 개발에서 발생할 수 있는 수많은 문제를 해결할 수 있도록 근본 원인을 파악하고 다차원적인 해결 방안을 제시하는 동시에 성공적인 프로젝트를 위해 반드시 필요한 두 가지 설계 즉, 시스템 설계와 프로젝트 설계를 각각 나누어 내용을 소개하고 있다. 이 책에서 흥미로운 점은 사람의 학습 과정을 흉내 내어 이전 장에서 설명한 내용을 반복하면서 점차 깊이 있는 내용을 다루어 개념을 발전시킬 수 있도록 나선형으로 진행되었다는 부분인데 책의 내용이 쉽지 않겠지만 소프트웨어 개발에 관심을 갖고 있는 다양한 독자층의 이해도를 높이기 위해 페이지 구성에 대해 고민하고 노력한 점이 마음에 든다.
소프트웨어 설계에 대한 전반적인 흐름과 세부 내용을 다룬 책인 만큼 책에는 이해하기 어려운 개념들도 있었지만 설계적인 측면에서 생각해 볼 만한 내용들은 꼭 전문가가 아니더라도 업무에 많은 도움이 될 거 같다는 생각이 든다. 혹은 개발자가 아니어도 업체에 의뢰를 맡길 때 책에 대한 내용들에 대해서 알고 있다면 시간과 비용을 효율적으로 활용하여 완성도 있는 시스템을 구축하는데 많은 도움이 될 거라고 본다. 전문가 입장에서 『올바른 소프트웨어 설계』을 읽었다면 좀 더 명쾌하고 멋지게 이 책을 읽어야만 하는 이유에 대해서 적을 수 있을 텐데 비전문가로서 마주하다 보니 간략한 소감으로만 전하게 되는 점이 아쉬움으로 남는다. [출판사로부터 책을 무상으로 제공받았습니다] |
![]() ![]() 개인적으로는 잘 모르지만, 소프트웨어계의 거물인 저자가 등장했다. 책의 내용도 내용이지만 저자 소개와 글에서 드러나는 자부심에서 이미 그의 권위는 대단하다고 느낀다. 유발 로이의 신간, 올바른 소프트웨어 설계다. #책추천 #책읽기 #책스타그램 #책리뷰 #서평 #서평단 #도서서평 #독서노트 #독서일기 #독서 #IT #소프트웨어 #올바른소프트웨어 #영진닷컴 #유발로이 Microsoft 'Software Legend' 유발 로이의 현대 소프트웨어 설계 방법론 저자인 유발 로이는 IDesign을 설립했으며 시스템 및 프로젝트 설계에 특화된 마스터 소프트웨어 아키텍트라며 주요 국제 소프트웨어 개발 회의에서 자주 연설하며 전 세계에서 마스터 클래스를 진행하고 수천 명의 전문가들에게 현대 소프트웨어 아키텍트에게 필요한 기술과 디자인, 프로세스 및 기술 리더로서의 능동적인 역할을 수행하는 방법을 가르친다고 소개한다. 책은 1장 더 메서드로 시작해 마지막 14장 결론까지 총 14개의 장과 부록 A, B, C까지 총 17개의 챕터 전체 약 500페이지에 달하는 분량과 내용으로 이루어져 있다. 저자의 설명에 따르면, 이 책이 소프트웨어 아키텍처를 다루긴 하나, 독자의 범위는 광범위하기에 이 책은 모든 이에게 열려 있으며 이 책을 읽을 때는 성공한 아키텍트가 아니더라도, 이 책의 방법론을 완전히 마스터길 바란다며 이 책에서 소개하는 기범과 개념은 모든 프로그래밍 언어나 플랫폼 프로젝트 규모에 관계없이 적용되고 거의 모든 분야와 모든 비즈니스 모델, 그리고 기업의 규모와 관계없이 적용할 수 있다고 자신 있게 이야기한다. *출판사로부터 책을 제공받았으나 최대한 솔직하게 작성했습니다. 초보 아키텍트는 소프트웨어 시스템을 설계하기 위한 패턴과 개념과 방법론이 너무나 다양하는 사실에 당혹하곤 한다면서, 아키텍트의 정도는 시스템 설계뿐만 아니라 그런 시스템을 구축하는 프로젝트를 설계하는 데도 적용된다고 설명한다. 또한, 어떤 분야든지 진정으로 마스터한다는 것은 기나긴 여정과 같다며 처음부터 전문가인 사람은 거의 없기에 올바른 공학적 원칙을 토대로 설계하면, 잘못된 관례 및 방법과 올바른 원칙이라고 잘못 알려진 원칙 등을 피해 갈 수 있다고 조언한다. 시스템 설계와 프로젝트 설계가 결합되면 프로젝트 성공 가능성이 비선형적으로 급격히 향상되고 프로젝트 설계는 프로젝트 관리에 속하지 않는다는 인식이 중요하다며 프로젝트 설계와 프로젝트 관리의 관계는 아키텍처와 프로그래밍의 관계에 가깝다는 것이다. 소프트웨어와 시스템 설계라는 정말 생소한 분야에서 30년간 업력을 쌓아온 저자의 설명은 쉽게 하지만 독자로서 받아들이기엔 어려운 게 사실이다. 그럼에도 노력해서 책을 읽으려고 시도한 이유는, 이렇게 설계하는 방식이 꼭 시스템에만 적용되는 것이 아니기 때문이라고 느꼈기 때문이다. 본인이 어떤 일을 하든 우리는 계획을 세워야 하고, 하물며 일이 아니라 어떠한 취미와 여가 또는 일상을 보냄에 있어서도 계획은 필요하기에 그렇다면 이렇게 전문적으로 계획하는 방법에 대해 체계적으로 학습해 볼 수 있다는 점에서 의미 있다고 느낀다. 요약 시스템 설계 적용 인생 설계 |
|
3년차 이상 개발자나 아키텍처에게 많은 도움을 준다고 생각. 저자 이력이 매우 좋아서 신뢰할 수 있는 내용이고 소프트웨어 설계와 하나의 프로젝트를 완벽하게 만드는 방법을 체계적으로 말해줌. 꼭 여기서 말하는 걸 다 적용하지 않아도 기존에 주먹 구구식으로 개발하던 관점에서 좀 더 엔지니어적으로 개발하는 법을 알 수 있음. 근데 600페이지도 안되는데 가격이 좀 낮았으면 좋겠다. |