hji7***
2021-11-21

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'개발자가 아키텍트\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'로 전향하는 데 실질적인 도움을 주는 실무 지침서다. 아키텍처 기초(패턴, 사고, 특성)와 아키텍처 스타일(레이어드, 파이프라인, 마이크로커널, 이벤트, 서비스, 오케스트레이션), 그
한빛미디어 "나는 리뷰어다" 도서 리뷰를 하면서, 이번엔 정말 마음에 드는 아키텍처 책을 만났습니다.
첫째, 아키텍처에 대한 책이기 때문입니다. (무슨 뚱단지 같은 소리냐고요 ^^) 소프트웨어 구조에 대해 항상 관심을 가져왔기 때문에, 아키텍처에 대한 책을 읽어보고는 싶은데, 손을 뻗치기는... 용기가 나지 않는 책이 아키텍처에 대한 책이거든요. 그런데 반강제적으로 읽게 되었으니 좋았습니다.
둘째, "닐 포드"가 저자라서 좋았습니다. 닐 포드의 책은 지금까지 두 권 읽었었는데요. 읽을 때마다 만족스럽게 읽을 수 있었습니다. 먼저 2010년에 읽었던 <능률적인 프로그래머>라는 책은 다양한 "통찰"을 제공한 책이었습니다. 특히 <능률적인 프로그래머>에서 나오는 "성난 원숭이 떼"이야기는 제가 상당히 자주 인용하게 되는 이야기 거든요.
두번째, 2016년에 읽은 <함수형사고>도 정말 재미있었습니다. 특히 "나무꾼과 전기톱"에 대한 비유는 정말 많은 것을 생각하게 해주는 비유였고요.
이 책 역시 아키텍처에 대한 책 답지 않게 술술 읽히는 책이었습니다. 특히 소프트웨어 기술이 발전하면서 요즘의 소프트웨어 아키텍처는 예전과 많은 차이가 나게 되었는데요. 그 부분까지도 반영하려고 노력한 점이 상당히 돋보이는 책이었습니다.
이제 애자일을 하는 조직이 많아지고 있고, 익스트림 프로그래밍에서 파생된 CI/CD와 이를 체계화한 DevOps가 소프트웨어 조직 전반에 퍼져가고 있는 상황에서 이런 기술들이 역으로 소프트웨어 아키텍처에 영향을 미치는 그런 상황이 되었는데요. 그러다보니 마이크로 서비스 아키텍처 같은 개념들이 나오면서, 예전에는 전혀 상상도 하지 못했던 복잡한 구조가 가능해지고, 어쩌면 소프트웨어 아키텍트가 따로 손을 댈 필요가 없이 다들 가는대로 가면 되는 상황이 되고 있는 것이죠.
하지만 소프트웨어 아키텍트는 "뭔가 결정 내리는 사람"입니다. 좀더 넓은 안목을 가지고 기술적인 것을 뛰어넘어서, 비즈니스 적인 지식도 섭렵하면서 다시 다양한 기술의 특징을 감안해서 트레이드 오프를 해내는 사람들입니다.
저는 아키텍트 부서가 따로 있는 회사를 다닌적이 없고, 대부분 시니어 개발자로서 소프트웨어 구조를 잡을 때 영향을 미치는 정도로 소프트웨어 구조에 의견을 냈던 경험을 가지고 있습니다. 10년도 전에 운 좋게 프로젝트 리더로 일할 기회가 있었었는데요. 당시 신규 프로젝트의 구조를 고민하면서, 함께 일할 개발자들과 이야기해서 이벤트 기반으로 프로세스를 관리하는 구조를 사용하기로 했었습니다. 당시에 아키텍처에 대한 지식이 전무하기는 했지만, 이벤트 기반으로 프로세스들을 관리하다보니, 꽤 튼튼한 구조를 가질 수 있었고, 경쟁사에 비해 좋은 결과를 만들 수 있었습니다. 그리고 사내에서 사용할 자바스크립트 프레임워크를 개발한 경우도 있습니다. 이때는 아직 이것이 정답이다라고 얘기할 만한 프레임워크가 없었던 시기이기 때문에, 자바스크립트 코드 구조를 규정하는 쪽에 주안점을 둔 프레임워크를 만들었었습니다. 계층구조를 가지고 프리젠테이션 레이어와 어플리케이션, 도메인 레이어를 강제로 분리하게 하여 복잡도를 낮추게 했습니다. 그 결과 여러 프로젝트에서 함께 사용할 수 있는 프레임워크가 되었고, 꽤 오랜 기간 회사에서 사용했었습니다.
"무엇을", "어떻게"에 대해 개발자들이 힘을 쏟을 때 누군가는 "왜"에 대해서도 고민해야 할 필요가 있습니다. 좀 외로울 수도 있지만, 소프트웨어 아키텍트는 "왜"를 고민하는 사람이 아닐까 싶습니다. 그리고 없어도 될것 같지만 상당히 중요한 일을 읽기 편하게 잘 설명해 준책이 바로 <소프트웨어 아키텍처 101>이 아닌가 싶습니다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."