hongsoohyuk
홈이력서방명록프로젝트인스타그램블로그

© 2026 hongsoohyuk. All rights reserved.

GitHubLinkedIn
블로그/아키텍처적 사고

아키텍처적 사고

BookSoftware Architecture

마지막 수정: 2026년 2월 16일

설계자의 눈으로 보는 것. 아키텍처의 관점에서 보는 것.

변경사항이 아키텍처의 확장성에 미칠 영향력을 고려해야 한다.


아키텍처(Architecture)와 설계(Design)의 차이

Architecture

집이 몇 층짜리인지? 침실은 몇 개인지 → 전체적인 구조를 정의한다.

마이크로서비스는 시스템의 구조와 형태를 결정한다.

Design

바닥이 카펫인지, 원목 바닥인지, 벽지, 조명이 어떤지 → 설계와 연관.

UI의 느낌과 모양은 시스템의 설계를 정의한다.


아키텍처 vs 설계, 판단 기준

아키텍처와 설계 스펙트럼 어딘가에 위치하게 된다.

이 둘 중 어디에 더 가까운지 판단하는 기준은 다음과 같다.

  • 전략적인지 전술적인지
    • 전략(Strategy)적일수록 아키텍처, 전술(Tactics)적일수록 설계에 가깝다.
    • 결정에 요구되는 사고와 계획, 관여하는 이해관계자의 정도가 가벼울수록 전술적.
  • 변경이나 구축에 얼마나 많은 노력이 필요한지
    • Monolithic → MSA (Architecture), UI input order (Design)
  • 트레이드오프의 중요도
    • MSA로 구축하는 것의 트레이드오프는 확장성과 탄력성 - 데이터의 일관성과 비용 간의 트레이드오프이다.
    • 코드 수준의 추상화와 일반화를 고도화하는 것은 유지보수성과 가독성 - 관리비용 간 트레이드오프이며, 위의 사안과 비교하면 중요도가 낮다.

기술적 너비와 깊이

지식 피라미드에 있어서 아키텍트에게는 개발자와 다른 접근이 필요하다.

기술적 너비를 넓혀 본인이 아는 지식에만 매몰되지 않도록 경계해야 하고, 그 기술과 같이 사장되지 않도록 해야 한다.

Technology Radar | Guide to technology landscape


트레이드오프 분석


비즈니스 동인(Business Driver)의 이해

시스템을 이해하는 것을 넘어, 비즈니스 동인을 확장성, 가용성, 성능 같은 아키텍처 특성들로 옮길 줄도 알아야 한다.

비즈니스 도메인 지식, 비즈니스의 이해관계자와의 원만하고 협력적인 관계가 필요하다.


아키텍처와 코딩 실무 균형

아키텍트는 코드 구현에 할애할 수 있는 시간이 많지 않다. 다이어그램을 작성하거나 아주 많은 회의에 참석해야 할 수도 있다. 이 경우 시스템의 핵심 개발을 맡으면, 병목으로 인해 개발 팀의 발목을 잡을 수도 있다.

대신 아키텍트는 소규모 비즈니스 기능성(예: UI 개발) 개발을 담당하고, 시스템의 핵심은 개발팀에 일임하는 것이 좋은 방법일 수 있다.

  1. 아키텍트가 프로덕션에 필요한 개발을 하면서, 팀에 병목을 발생시키지 않는다.
  2. 시스템 핵심과 프레임워크를 팀에 분산시켜, 개발자들이 시스템을 더 깊게 이해하게 할 수 있다.
  3. 아키텍트가 개발 팀과 동일한 비즈니스 관련 소스를 작성하게 된다. 이는 개발 과정, 프로세스, 개발 환경에서 겪는 개발자들의 고충을 더 이해하고 개선할 수 있도록 돕는다.

개발 팀과 동일 코드를 작업할 수 없는 경우

  1. PoC를 자주 진행한다. PoC에 필요한 소스는 아키텍트가 담당하며, 구현상의 세부사항과 전체 솔루션 개발에 필요한 비용의 양을 가늠할 수 있다. 버려도 되는 코드라 해도 프로덕션 품질을 유지해야 할 것이다.
  2. 기술 부채 해결. 기술 부채를 해결하는 작업은 한 Iteration 안에서 우선순위가 낮기 때문에, 달성하지 못하더라도 악영향이 없다.
  3. 버그 수정.
  4. 자동화. 개발팀의 일상 업무를 자동화할 수 있는 것들. 아키텍처 준수, 리팩토링 등 코드 검증.
  5. 코드 검토. 개발 팀의 기술 준수 여부 확인 등 아키텍트가 소스 코드에 직접 관여하게 되고, 개발 팀에 대한 코칭과 멘토링의 기회를 얻게 된다.