변화에 대비하는 진화적 아키텍처

@진화적 아키텍처 (Building Evolutionary Architectures)

변화에 대비하는 진화적 아키텍처



소프트웨어 개발 생태계가 지속적으로 변화하고 발전하는데, 이러한 변화는 프로그래밍 플랫폼, 개발언어, 운영환경, 지속성 등 여러 측면에서 발생하고 있습니다. 이러한 변화는 예측할수 없지만, 변화가 불가피하다는 것은 분명합니다. 따라서 우리는 기술적인 변화가 발생할 것을 예상하고 시스템을 설계해야 하는데 노력하고 있습니다. 이를 위해 기업 아키텍트와 개발자들은 장기 적인 정직인 계획을 세웠습니다. 그러나 현재는 이전과 달리 DevOps도구가 머신 프로비저닝을 자동화 하여 운영적 비용도 완전히 사라졌으며, 장기 계획을 세우는 것이 더이 상 필요하지 않게 되었습니다.


이 책에서는 이러한 변화에 대응하기 위한 진화적 아키텍처가 무엇인지를 설명하고 현재의 아키텍처 상황과 어떻게 변화를 해야하는지를 안내해주고 있습니다. 그리고 시스템 품질을 측정하고 유지하기 위한 피트니스 함수를 도입하는 방법을 소개하고 있으며, 이러한 것은 시스템 변화에 유연하게 대응할 수 있는 진화적 아키텍처의 개념과 원칙에 대해서 이해를 하는데 도움을 주며, 후반부에서는 실제로 어떻게 적용을 했는지를 실제 사례를 중심으로 설명을 해주고 있습니다.




@진화적 아키텍처 (Building Evolutionary Architectures)


진화적 아키텍처란 끊임없는 변화에 유연하게 적응하기 위한 '가드레일이 내장된' 아키텍처를 의미합니다. 변화는 예측하기 어렵지만 변화 자체를 기정사실화하면 사전에 피트니스 함수를 도입해 감지하고 대응할수 있습니다. 피트니스 함수는 소프트웨어 시스템의 상태를 측정하고 평가하는 함수로 소프트웨어 시스템의 성능, 안정성, 보안 등의 요소를 모니터링하고, 시스템이 정상적인 동작을 하는지 여부를 판단할수 있도록 구현할수 있습니다.


이 책에서는 진화 가능한 소프트웨어를 구축하는 두가지 근본 원리로 애자일 소프트웨어 운동에서 확립된 효과적인 엔지니어링 관행과 변화와 거버넌스를 촉진하는 아키텍처 구조에 대해서 설명을 하고 있는데요, 이는 지속적인 통합, 자동화된 테스트, 소규모 개발, 지속적인 리팩터링, 단순성 추구, 사용자 중심 접근, 시각화와 커뮤니케이션 이며, 변화에 대응할수 있는 유연하고 협력적인 개발 조성에 기여하며, 시스템 요구사항이나 환경이 변화할 때 유연하게 대응하고, 시스템의 품질이나 성능을 관리하고 향상시키는 구조입니다.




@진화적 아키텍처 (Building Evolutionary Architectures)


이 책은 진화적 아키텍처에 대한 개념과 이를 구현하는 방법을 이해하고, 이를 실제 프로젝트에 적용할 수 있는 소프트웨어 개발자, 시스템 설계자, 소프트웨어 아키텍트, 소프트웨어 개발 관련 종사자에게 실질적으로 적용할수 있는 다양한 기술과 방법을 소개하고 있으며, 진화적 아키텍처를 구현하기 위한 다양한 사례연구를 통해서 소개하고 있어서 많은 도움이 되나, 책의 내용 어려운 내용들을 다루고 있기 때문에, 주니어 개발자분들에게는 다소 어려울수 있다.


참고로 이 책은 따로 언급이 되어 있지는 않으나 Building Evolutionary Architectures 2nd 에디션으로 기존의 첫번째 에디션에서와 큰 차이는 없어 보이며, 5장에 진화하는 아키텍처 토폴로지 부분만 추가된듯 합니다.




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



#진화적아키텍처 #애자일소프트웨어 #피트니스함수 #Building Evolutionary Architectures #마이크로서비스 #DevOps

댓글 쓰기

0 댓글