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

한빛출판네트워크

진화적 아키텍처

피트니스 함수, 거버넌스 자동화를 활용해 생산성 높은 소프트웨어 구축하기

한빛미디어

번역서

판매중

  • 저자 : 닐 포드 , 레베카 파슨스 , 패트릭 쿠아
  • 번역 : 정병열
  • 출간 : 2023-08-31
  • 페이지 : 304 쪽
  • ISBN : 9791169211345
  • 물류코드 :11134
  • 초급 초중급 중급 중고급 고급
4.8점 (6명)
좋아요 : 2

새로운 시대, 애자일을 넘어선 진화적 소프트웨어 개발의 부상

소프트웨어 개발 생태계에 혁신을 가져올 진화적 아키텍처

 

◆ 소프트웨어의 거장이자 『리팩터링』 저자 ‘마틴 파울러’ 추천 도서

◆ 미래에 대응하는 소프트웨어 개발의 새로운 지평을 열게 될 진화적 아키텍처

◆ 전 세계적으로 인정받은 전문가들의 노하우가 담긴 책!

 

진화적 아키텍처란 끊임없는 변화에 유연하게 적응하기 위한 ‘가드레일이 내장된’ 아키텍처를 의미한다.  변화는 예측하기 어렵지만 변화 자체를 기정사실화하면 사전에 피트니스 함수를 도입해 감지하고 대응할 수 있다. 이러한 피드백을 통해 시스템은 점진적으로 발전하며 그 과정은 마치 소스코드 히스토리처럼 명확하게 파악할 수 있게 된다. 결국, 진화적 아키텍처를 구축하면 향후 대대적인 재구축의 필요성은 줄어들고 그에 따른 비용과 노력을 절감할 수 있다.

 

현대의 소프트웨어 개발에서 아키텍처 설계가 차지하는 비중과 중요도는 끝없이 높아지고 있다. 소프트웨어의 설계는 우리가 ‘소프트웨어 개발’이라 여기는 거의 모든 것에 코딩을 더하는 작업이나 다름없다. 그렇기에 아키텍처를 이해하는 능력은 아키텍트뿐만 아니라, 개발자에게도 핵심적인 역량이 되어야 한다. 게다가 빠르게 변화하는 환경에 적응하고 대처하기 위해서는 ‘진화적 아키텍처'에 대한 이해가 모든 소프트웨어 리더의 필수 역량이기도 하다.

  

이처럼 급변하는 비즈니스를 감당하는 소프트웨어 아키텍처의 유연성을 어떻게 확보할 수 있는지는 중요한 고민이다. 어떻게 하면 소프트웨어 아키텍처를 유연하게 만들어 비즈니스와 기술 변화의 속도에 민첩하게 대응할 수 있을까? 이 책은 이런 핵심 질문들에 대한 해답을 제시한다. 따라서 이 책을 통해 비즈니스와 기술 변화에 유연하게 대응할 수 있는 아키텍처를 구축하는 방법을 습득하길 바란다.

 

상세페이지_700px_진화적 아키텍처.jpg

닐 포드 저자

닐 포드

엔드투엔드 소프트웨어 개발과 인도를 전문으로 하는 글로벌 IT 컨설팅 회사, 쏘우트웍스(ThoughtWorks)의 이사이자 소프트웨어 아키텍트, 밈 랭글러(meme wrangler)이다. 쏘우트웍스에 입사하기 전에는 미국에서 유명한 교육/훈련 개발 회사인 DSW Group에서 최고 기술 책임자(CTO)를 역임했다.

 

 

레베카 파슨스 저자

레베카 파슨스

쏘우트웍스의 최고 기술 책임자(CTO)이다. 브래들리 대학교에서 컴퓨터 과학과 경제학 학사, 라이스 대학교에서 컴퓨터 과학 석사와 컴퓨터 과학 박사 학위를 받았다. 유전자 알고리즘 등의 도구를 비롯해 진화적 컴퓨팅 분야에서 오랫동안 연구했다.

패트릭 쿠아 저자

패트릭 쿠아

독일 네오 뱅크 N26의 전 최고 기술 책임자(CTO)이자 쏘우트웍스의 전 수석 기술 컨설턴트로 20년 이상 기술 업계에서 근무하고 있다. 그는 일대일 코칭, 온라인 및 대면 기술 리더십 워크숍, 기술 리더를 위한 인기 뉴스레터 Level UP을 통해 기술 리더의 성장을 돕고 있다.

정병열 역자

정병열

학창 시절 접한 BASIC 언어를 계기로 프로그래밍에 입문했다. 일찍부터 직업 개발자로 다양한 프로젝트를 수행하며 스타트업과 대기업에 몸을 담았다. 시니어 개발자로 경력을 이어가는 한편 양질의 개발 서적 출간에 일조하고자 틈틈이 노력하는 중이다. 옮긴 책으로는 『Modern PHP』, 『자바 마이크로서비스를 활용한 SRE』 (이상 한빛미디어) 등이 있다.

[PART 1 역학]

CHAPTER 1 진화적 소프트웨어 아키텍처

1.1 진화적 소프트웨어의 과제

1.2 진화적 아키텍처

1.3 상시 변화하는 환경의 장기 계획 수립 가능성

1.4 시간에 따른 아키텍처의 성능 저하 방지

1.5 왜 진화인가?

요약

 

CHAPTER 2 피트니스 함수

2.1 정의

2.2 범주

2.3 피트니스 함수는 누가 작성하는가

2.4 피트니스 함수 테스트 프레임워크 선택

2.5 결과 vs 구현

요약

 

CHAPTER 3 점진적 변화 엔지니어링

3.1 점진적 변화

요약

 

CHAPTER 4 아키텍처 거버넌스 자동화

4.1 피트니스 함수와 아키텍처 거버넌스

4.2 코드 기반 피트니스 함수

4.3 턴키 도구

4.4 통합 아키텍처

4.5 데브옵스

4.6 엔터프라이즈 아키텍처

4.7 피트니스 함수는 무기가 아닌 체크리스트다

4.8 피트니스 함수 문서화

요약

 

[PART 2 구조]

CHAPTER 5 진화하는 아키텍처 토폴로지

5.1 진화 가능한 아키텍처 구조

5.2 아키텍처 퀀텀 및 세분성

5.3 계약

5.4 재사용 패턴

요약

 

CHAPTER 6 진화적 데이터

6.1 진화적 데이터베이스 설계

6.2 부적절한 데이터 얽힘

6.3 네이티브에서 피트니스 함수로

 

[PART 3 영향력]

CHAPTER 7 진화 가능한 아키텍처 구축

7.1 진화적 아키텍처의 원리

7.2 역학

7.3 그린필드 프로젝트

7.4 기존 아키텍처 개조

7.5 아키텍처 마이그레이션

7.6 진화적 아키텍처 구축 가이드라인

7.7 피트니스 함수 주도 아키텍처

요약

 

CHAPTER 8 진화적 아키텍처의 함정과 안티패턴

8.1 기술 아키텍처

8.2 증분 변경

8.3 비즈니스 관심사

요약

 

CHAPTER 9 아키텍처 실천

9.1 조직적 요인

9.2 비즈니스 사례

9.3 엔터프라이즈 피트니스 함수 구축

9.4 시작 지점

9.5 미래 전망

9.6 되는 이유와 안 되는 이유

요약

진화적 아키텍처로 기존 서비스를 유지한 채 점진적으로 서비스를 개선해보자

 

소프트웨어 개발에서 아키텍처 설계의 중요성은 점점 높아지고 있다. 특히 최근, 아키텍처 기술의 주된 흐름이 서비스 지향 아키텍처(SOA)에서 마이크로서비스 아키텍처(MSA)로 전환되면서 진화적 아키텍처는 가장 주목받는 아키텍처 기술 중 하나로 떠올랐다. 이제는, 클라우드 네이티브를 도입하려는 모든 소프트웨어 개발자나 아키텍트에게 진화적 아키텍처는 필수 기술이 되었다.

 

하지만 아직 진화적 아키텍처를 제대로 활용하지 못하는 아키텍트들도 있을 수 있다. 이 책은 그런 아키텍트들을 위해, 진화적 아키텍처를 활용하여 빠르게 변화하는 비즈니스에 대응하며 업무 효율성을 높일 수 있는 방법을 상세하게 안내한다. 그리고 피트니스 함수를 이용하여 아키텍처 특성을 유지하면서 진화하는 소프트웨어를 개발하는 방법도 함께 살펴본다. 전 세계적으로 인정받은 전문가들의 깊은 경험과 지식이 담겨 있는 이 책으로, 진화적 아키텍처뿐만 아니라 아키텍처 기술 전반을 이해하고 실전에 적용하는 데 활용하길 바란다.

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

개요

  • 일단, 어렵다. 어려운 책이다. 무작정 읽어내려간 책이지만, 아직 역량이 부족한 취업 준비생의 입장에서는 이해가 잘 되지 않는 부분도 많았다.
  • 일을 시작하고, 연차가 쌓이고 다시 한번 봐야될 책이라고 생각한다.

총평

  • 물론 어려운 책이어서 100% 이해하지는 못했지만, 얻어갈 것이 없던 것도 아니었다.
  • 지속적으로 발전하고 있는 현 상황에서 아키텍처의 중요성을 강조하며, 확장성을 고려한 아키텍처를 설계하는 방안에 대해 설명하고 있다.
  • 예제에서 그치는 것이 아닌, 진화적 아키텍처에 대한 개념과 구현, 어떠한 방향으로 나아가야 하는지에 대해 자세하게 설명하고 있다. 따라서, 아키텍트, 개발자, 데브옵스 엔지니어 등 소프트웨어에 관련된 분야 종사자에게 다양한 기술과 방법에 대해 설명하며, 도움이 될 것이라고 생각한다.
 

진화적 아키텍처

진화란 무엇인가?

환경의 끊임없는 변화에 유연하게 적응한다는 것이다.

시스템적 진화란 무엇일까?

시스템을 사용하는 사람들의 문화 관습 사용 습관이 변화하는 것을 유기적으로 손쉽게 반영할 수 있는 프로세스나 아키텍처를 준용하는 것이다.

서비스의 진화란 무엇인가?

사용자의 Needs에 맞추어 사용자 편의성을 극대화하고 사용자 맞춤형 UI/UX개선을 통하여 고객의 접점을 늘리고 Trigger Point를 확대하는 것이다.

이 책에서 바라보고자 하는 진화적 아키텍처 의 정의는 기존의 설계의 패러다임을 피트니스 함수와 아키텍처 거버넌스 자동화 그리고 진화적 데이터 파이프라인과 프로세스 체계를 통하여 유연하게 변화시켜보고자 하는 것이다.

변화에 대해 선대응 하여 대대적인 재구축 필요성을 줄이고 불필요한 비용의 낭비를 최소화하고자 함이다.

비용을 절감하여 비즈니스와 기술 변화의 속도에 민첩하게 대응하려면 어떻게 해야할지에 대하 아키텍처 관점으로 서술한 책이다.

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

 

저는 한빛미디어의 나는 리뷰어다라는 프로그램덕분에 본책을 본의아니게 리뷰하게 되어 너무나 감사하게 생각합니다. 진화적 아키텍쳐라는 책의 제목만 들었을때에는 뭔가 아키텍쳐에 대한 고민을 정리해서 내놓은 것이라는 생각이 가볍게 들었지만 본 책을 본격적으로 읽기 시작하면서 제가 생각하던 것 이상의 고민과 원인 그리고 그에 대한 해결방안에 대한 의견을 잘 정리해 놓은 책이라는 생각이 들었습니다.
본 책을 리뷰하는 기간이 마침 케냐 출장 기간과 겹치면서 상당히 긴 시간동안의 비행기안에서 본책을 일독을 할 정도로 책이 너무 재미있고 흥미로웠습니다.

진화적 아키텍쳐의 목표는 오늘날의 역동적인 소프트웨어 환경에 맞는 진화 가능한 시스템 구축의 가치와 구현 방법을 보여주는 것입니다. 본 서적은 -성(-ilities)라고 하는 특성을 식별한 다음 기술 구현이나 데이터 스토리지와 같은 차원에서 -성(-ilities)라고 식별하고 해당 특성들간의 균형을 맞추어서 개별 서비스들이 가지는 특성을 최대한 살리면서도 추후 변화 대응에 충분한 유연성을 가진 진화적인 아키텍쳐로 나아가는 방법들에 관하여 상세하게 설명합니다. 특히 진화적인 아키텍쳐로 나아가기 위한 실천방법으로 피트니스 함수를 소개하며 해당 함수와 배포 파이프라인의 통합을 통하여 유연하면서도 미래의 변화에 적응가능한 서비스 아키텍쳐 구현에 관하여 다양한 예를 통하여 설명하고 있습니다.
 
여기서 피트니스함수는 개발자가 특정 알고리즘을 설계하여 의도하는 결과를 얻으려면 결과물의 품질을 객관적으로 측정가능하면서 동시에 통제할 수 있는 방법이 필요합니다. 이처럼 특정 결과물이 목표에 얼마나 근접한지를 나타내는 함수를 피트니스 함수(fitness function)이라고 합니다. 특히 아키텍쳐 피트니스 함수는 어떤 아키텍처 특성(또는 그런 특성들의 조합)의 객관적인 무결성을 평가하는 모든 메커니즘을 의미합니다.

또한 거버넌스 자동화를 통한 클라우드 전반의 공통된 경험을 설정하고 모든 지리적 위치와 가상위치에서 시행 일정을 수립하고 리소스 관리 자동화를 통하여 사용자의 작업 방식을 규제하고 시스템의 일관된 성능을 촉진하는 방안에 관하여 살펴보고 있습니다.

상기의 짧은 리뷰에서 알 수 있듯이 본 도서는 숙련된 IT엔지니어가 개발자가 새로이 출시되거나 혹은 기존 서비스에 대한 유지보수및 관리에 있어서 클라우드 환경을 최대한 활용하기 위한 방법론을 피트니스 함수와 거버넌스 자동화라는 주요 키워드를 통하여 상세하게 잘 설명하고 있습니다.

변화가 빠른 IT환경에서 특히 클라우드 기반의 서비스 관리에 있어서 더 나은 방법론을 고민해 오던 분들에게 강력하게 추천드립니다.

 

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

 

[이 책은...]
아키텍처라는 것은 그 단어가 가진 '설계'라는 뜻만큼이나 굉장히 여러면에서 접근이 가능한 개념임에는 틀림이 없습니다.
이 책은 완전히 기술적인 면에서 접근하기보단 기술은 보조적인 도구로서의 개념이고, 아키텍트의 측량가능한 목표로서 재시할 수 있는 피트니스 함수라는 개념을 중심으로 현실세계에서 부딪힐 수 있는 문제에 대하여 시작부터 끝까지 풀어냅니다.
다르게 말하면 온전히 기술중심이 아니기 때문에 어떻게 보면 실무와 동떨어져있는 것이 아니냐 라고 할 수 있겠지만 읽다보면 아키텍트의 위치 혹은 그에 해당하는 레벨에서 생각하는 방법, 혹은 그 관점 자체에 수정을 가할만한 내용으로 저에겐 받아들여 졌습니다.
예를 들어 많은 개발자들이 그러하듯 저도 'TDD가 분명 좋아보이지만 현실에서 적용하기엔 너무 어려운데..'라는 말에 대하여 '당신은 아직 소프트웨어 개발을 제조업 관점에서 바라보고 그렇게 하고 있다'라는 것은 꽤나 큰 충격이었습니다. 생각해보니 워터폴 방식의 업무방식은 멀리하면서 결국 코드레벨에서는 제조업에서 하듯 워터폴과 다름없는 방법으로 하고 있다라는 것을 세삼스레 깨달았기 때문이죠.
그렇다고 해서 기술적 솔루션이 전혀 없는 것은 아닙니다. 다만 그 깊이가 아주 깊지는 않고 가볍게 소개하고 넘어가는 수준이죠. 그렇지만 키워드를 얻는 정도로는 충분히 가치 있는 내용들이고 무엇보다도 기술적 설명보다도 훨씬 가치가 있는 다른 관점에서의 설명이 이 책의 좋은 점이라고 생각합니다.
(기술적인 솔루션 관점에서의 접근은 [소프트웨어 아키텍처: The Hard Parts]라는 책을 추천드립니다.)


[이런 분에게 추천해요]
단순히 코드적인 관점에서의 설계에 포커스가 있는 책이 아니고 넓은 관점에서 아키텍처를 기술하고 있기 때문에
관련 업무의 팀장 혹은 CTO를 하고 계신분들에게 강력하게 추천드립니다.

[마치며...]
개인적으로 가장 큰 충격을 받은 문구를 인용하며 후기를 마칩니다.
"소프트웨어 아키텍처 패턴에 모범 사례는 존재하지 않는다. 모범 사례가 존재한다는 것은 특정상황에서 아키텍트가 자기 두뇌로 사고하는 것을 포기해버렸다는 뜻이다."

소프트웨어 아키텍처 101, 소프트웨어 아키텍처 The Hard Parts 책에 이어서 아키텍터라면 반드시 읽어봐야될 재미있는 내용들로 가득하다

 

현대에는 진화적 아키텍처를 왜 설계 해야되는지 

진화적 아키텍처는 현대에는 왜 가능한건지 

진화적 아키텍처를 설계할때 고려해야될 부분은 어떤것들이 있는지 

진화적 아키텍처로 설계하면 어떤 부분들이 좋은지 

상세한 사례를 들어 구체적으로 설명하고 있으므로 쉽고 빠르게 이해할 수 있고 아키텍터로써 한층 더 성장할 수있는 발판을 마련할 수 있을 것이다

진화적 아키텍처_02.png

 

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

 

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

 

 

 

진화적 아키텍처_04.png

 

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

 

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

 

 

 

진화적 아키텍처_06.png

 

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

 

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

 

 

 

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

 

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
진화적 아키텍처
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
진화적 아키텍처
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
진화적 아키텍처
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

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

자료실