개인적으로는 모르는 용어가 많이 나와서, 책의 모든 내용을 이해하기는 어려웠다. 이런 부분은 대부분 스킵하고, 전체적인 맥락을 파악하고 다음에 회독을 하며 보완하기로 했다.(회독했을 때는 지금보다 더 경험이 쌓였을 테니, 지금 이해 못하는 부분이 그때는 이해갈 수도 있으니...)
때문에, 전공을 하지 않았거나, 최소한 정처기를 공부하지 않았던 사람에게는 조금 생소한 단어가 많아 어렵게 느껴질 수 있다.
다만, 어려운 부분을 스킵하고 맥락을 보려고 해도 많은 것을 배울 수 있는 책이다.
처음 개발을 시작했을 때, 그때 당시의 팀장님이 옆에서 설계를 하는것을 보았던 적이 있었다. 당시에 재직하던 회사는 정말 규모가 작디 작아서, 갓 입사하고 + 갓 사회생활했으며 + 원래는 기획(이라하고 개발 외 모든 일....을 했지만...종국엔 개발도 하게된...)으로 들어온 나도 '아키텍트'란 말을 많이 들었다.
뭔가 의미론상으로 들었을 때는 전체적인 구조를 설계하는 사람을 뜻하는 것 같았는데, 구글링을 해보면 그 직무에 대한 내용이 뜬구름 같이 느껴졌었다. 그래서 정확히 하는 일이 무엇일까? 하고.
그랬던 기억이 문득 떠오르게된 이 책은, 아키텍처의 범위와 하는 일에 대해서 전반적으로 훑어주고 있다.
어떻게 보면, 요즘 스타트업 기준, 리더들이 소프트웨어 아키텍트를 같이 진행하는게 아닐까 라는 생각이 들었다. 전반적인 그림을 비지니스 로직을 녹여서 컴포넌트들을 설계하고, 팀 내부 구성원인 개발자들이 해당 설계에 따라 개발할 수 있도록 가이드 하는.
때문에, 소프트웨어 아키텍트또한 코딩에서 손을 놓아서는 안되며, 그러한 방법에 대한 조언 또한 제시해 주고 있다.
주니어의 끝자락에 있는 나는 요즘들어 어떤 시니어가 될 것인지 고민이 많았다. 빠른 기술의 변화와 쌓여가는 연차 사이에서 내가 앞으로 어떤 것을 해야하는지 고민이 많았는데 그러한 고민에 명확한 해답은 주진 않아도 방향성을 제시해주어서 좋았던 것 같다.
뿐만 아니라, 같은 고민을 하면서 서비스의 전체적인 그림을 보고 그 그림에 맞춰서 공통 컴포넌트를 만들거나 새 기능을 만들 때, 구현하려는 것의 확장성에 대해서 고민한 적이 많은데 이 책은 그러한 부분에 대해서도 방향성을 제시해주었다.
소프트웨어 아키텍트는 알수 없는 미지에 대한 대비를 위해 끊임없이 분석하고, 어떠한 명확한 답을 내리기보다 모든 기술과 패러다임에는 트레이드오프가 있다는 것을 명심하고, 비지니스에 맞는 것을 선택하고 이것을 구성원들의 공감을 얻을 수 있게 가이드를 할 수 있는 사람인데, 비단 소프트웨어 아키텍트 뿐만 아니라 개발자에게도 있다면 좋은 시각인 것 같다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."