홈으로 돌아가기

IT 아키텍처: 모놀리스와 마이크로서비스

IT 아키텍트 Philip Delgado 인터뷰: 시스템 사고 개발, 모놀리스 또는 마이크로서비스 선택, 직업의 스킬과 도전 과제. 중/시니어 전문가를 위한 책 추천과 실전 인사이트.

소프트웨어 아키텍처: 개발자에서 아키텍트로 가는 길
Advertisement 728x90

IT 아키텍처: 모노리스에서 마이크로서비스, 그리고 시스템 사고로

아키텍처로의 전환은 종종 계획된 것이 아니라 프로젝트 성장의 산물이다. 한 팀이 부하를 감당하지 못하게 되고, 결정들이 수년에 걸쳐 지속되어야 할 때, 개발자는 자연스럽게 아키텍트로 진화한다. 핀테크 아키텍트인 피에르 데르가도는 90년대 시스템 유지보수로 시작했으며, 첫 직장에서 불과 6개월 만에 프로젝트 전체를 책임지게 되었다. 이 경험은 그에게 즉각적인 요청을 넘어서 장기적 발전을 고민하게 만들었다.

고등교육은 복잡성을 관리하는 기초를 제공한다. 수학은 추상화를 가르치며, 아이디어에서 구현으로 넘어가는 과정을 익힌다. 대학에서는 직접 아키텍처를 가르치지 않지만, 시스템 사고력을 기르는 데 기여한다. 맥컬런, GoF 디자인 패턴, 포우러의 리팩토링 및 코드 구조 관련 저서들은 이러한 기반을 마련한다.

2007년부터 열리는 하이로드++와 같은 컨퍼런스는 이론과 실무를 연결한다. 다양한 기술 스택을 사용하는 개발자들과의 대화를 통해 이상과 현실 사이의 격차를 확인할 수 있다.

Google AdInline article slot

팀 내 아키텍트의 역할

아키텍트는 단순한 직함이 아니라 조율자의 역할이다. 90년대에는 수석 아키텍트가 글로벌 일관성을 관리했다. 오늘날에는 주요 엔지니어나 스태프 엔지니어가 전체 시스템을 책임지는 경우가 많다.

카드 처리 시스템이나 초기 야후 머니 버전과 같은 복잡한 프로젝트에서는 아키텍트가 다양한 시나리오를 예측하고 성능과 도메인 제약을 균형 있게 조율한다. 실제 환경에서 시스템이 견뎌내는 모습을 보는 것에서 자부심을 느낀다. 스타트업은 유연성과 적응력을 가르치지만, 많은 경우 제품 출시 자체를 이루지 못한다.

핵심 과제:

Google AdInline article slot
  • 이론적 아키텍처와 실제 요구사항 간의 괴리.
  • 재구축 없이 변화에 대응하기.
  • 속도와 확장성의 균형 맞추기.

아키텍트는 반복적인 작업을 수행하며, 반드시 위임받는 것은 아니다. 집중력이 필수적이다: 상황 파악에 2시간, 반성에 3시간, 때로는 며칠이 소요될 수 있다.

모노리스 vs 마이크로서비스: 맥락이 선택을 결정한다

모노리스와 마이크로서비스 중 어느 쪽이 더 좋은지는 프로젝트 단계와 팀의 동작 방식에 따라 달라진다. 초기 단계에서는 하나의 밀접한 팀이 협업할 때 모노리스가 적합하다. 요구사항이 충돌하고 독립적인 배포가 필요해질 때 마이크로서비스가 유리하다. 최적의 답은 없다. 복잡성이 증가함에 따라 선택은 계속 진화한다.

아키텍트는 구현 방식을 이해해야 한다. '아름다운' 다이어그램도 기술 스택에 대한 이해 없이는 실패한다. 솔루션 아키텍트는 코드를 건너뛸 수 있지만, 소프트웨어 아키텍트는 프레임워크 경험을 직접 가져야 한다. 구현 비용과 리스크를 미리 예측할 수 있어야 한다.

Google AdInline article slot

아키텍트의 역량과 도구

시스템 사고는 연습을 통해 날카로워진다. 시스템을 위에서 바라보고 여러 각도에서 분석하는 능력이다. 책임감과 자율성을 즐기라. 수년간 영향을 미치는 결정을 내리는 것은 큰 의미가 있다.

직무 이동은 싫다. 코드는 줄어들고, 일상적인 작업이 늘어난다. 새로운 프로젝트로 전환하는 것은 어렵다. 도메인에 익숙해져야 하기 때문이다.

중급/상급 역할에 필요한 주요 역량:

  • 추상적 수준 간을 자유롭게 오갈 수 있는 능력.
  • 시스템의 장기적 진화를 예측하는 능력.
  • 구현 비용을 고려하는 능력.
  • 충돌하는 요구사항을 조율하는 능력.
  • 복잡한 문제에 집중하는 능력.

책을 영상보다 선호한다. 텍스트는 다시 읽고 논리적 흐름을 쌓기에 좋다. 영상은 코드 데모에는 훌륭하지만, 깊은 이해에는 부족하다.

아키텍처 사고를 위한 추천 독서

아키텍처 사고력을 기르기 위해:

  • 해리 포터와 합리적 방법론 (유드코프스키) — 합리성과 확률론.
  • 트리즈 서적, 예: 판타지의 별 아래 한 달.
  • 프로메테우스의 역설 (메스테르하지) — 비판적 사고.
  • 로트먼의 신호학 연구.
  • 콘래드의 해설을 붙인 손자병법.

이 책들은 기술에 얽매이지 않는 분석적 사고를 기르는 데 도움이 된다.

무엇이 가장 중요한가?

  • 아키텍처는 다이어그램을 그리는 것이 아니라 복잡성을 관리하는 것이다.
  • 코딩에서 아키텍처로의 전환은 책임이 커지면서 이루어진다.
  • 소프트웨어 아키텍처에는 기술 스택 경험은 필수다.
  • 시스템 사고는 연습과 독서를 통해 향상된다.
  • 모노리스일까, 마이크로서비스일까? 프로젝트 맥락에 따라 결정하라.

— Editorial Team

Advertisement 728x90

다음 읽기