소프트웨어 아키텍트란 프로그래머이며 앞으로도 계속 프로그래머로 남는다. 소프트웨어 아키텍트라면 코드에서 탈피하여 고수준의 문제에 집중해야 한다는 거짓말에 속아 넘어가서는 안된다. 소프트웨어 아키텍트는 최고의 프로그래머이며, 앞으로도 계속 프로그래밍 작업을 맡을 뿐만 아니라 동시에 나머지 팀원들이 생산성을 극대화할 수 있는 설계를 하도록 방향을 이끌어 준다.
소프트웨어 아키텍트는 다른 프로그래머만큼 코드를 많이 작성하지 않을 수도 있지만 프로그래밍 작업에서는 지속적으로 참여한다. 프로그램밍 작업을 계속하는 이유는 발생하는 문제를 경험해보지 않는다면 다른 프로그래머를 지원하는 작업을 제대로 수행할 수 없기 때문 이다.
소프트웨어 시스템의 아키텍처란 시스템을 구축했던 사람들이 만들어낸 시스템의 형태이다. 그 모양은 시스템을 컴포넌트 단위로 분할하는 방법, 분할된 컴포넌트를 배치하는 방법, 컴포넌트가 서로 의사소통하는 방식에 따라 정해진다. 그리고 그 형태는 아키텍처 안에 담긴 소프트웨어 시스템이 쉽게 개발, 배포, 운영, 유지보수 되도록 만들어진다.
이런한 일을 용이하게 만들기 위해서는 가능한 많은 선택지를 가능한 한 오래 남겨두는 전략을 따라야 한다.
시스템 아키텍처는 시스템의 동작 여부와는 거의 관련이 없다. 형편없는 아키텍처를 갖춘 시스템도 수없이 많지만 그런대로 잘 동작한다. 이러한 시스템을 대체로 운영에는 문제를 겪지 않는다. 운영보다는 배포, 유지보수, 계속되는 개발 과정에서 어려움을 겪는다.
아키텍처의 주된 목적은 시스템의 생명주기를 지원하는 것이다. 좋은 아키텍처는 시스템을 쉽게 이해하고, 쉽게 개발하며, 쉽게 유지보수 하고 , 또 쉽게 배포하게 해준다. 아키텍처의 궁극적인 목표는 시스템의 수명과 관련된 비용은 최소화 하고, 프로그래머의 생산성은 최대화 하는데 있다.

![[소프트웨어 아키텍처] 마이크로커널 아키텍처란 무엇인가?](https://codecampai.com/wp-content/uploads/2026/01/image-11-768x557.jpg)
![[소프트웨어 아키텍처] 중복된 데이터를 해결하는 단일 책임 원칙(SRP)](https://codecampai.com/wp-content/uploads/2026/01/image-39-768x419.jpg)

![[소프트웨어 아키텍처] 효율적인 프로젝트 팀 만들기](https://codecampai.com/wp-content/uploads/2026/01/image-24-768x512.jpg)

![[소프트웨어 아키텍처] 정적 타입 코드 설계 방식이란?](https://codecampai.com/wp-content/uploads/2026/01/image-44-768x419.jpg)