-
Notifications
You must be signed in to change notification settings - Fork 0
Description
1.6 아키텍트의 자질
1.6.1 아키텍트가 갖춰야 할 능력과 사고방식
변화에 유연하게 대응하는 소프트웨어는 고객에게 가치를 지속적으로 제공하면서 기업에는 경쟁 우위를 가져다줍니다.
이를 실현하려면 아키텍트가 다양한 기술을 평가하고 적절한 선택을 통해 아키텍처를 구축해야 합니다.
설계 능력과 코딩 실력
아키텍처 설계와 하위 설계가 완전히 별개라고는 할 수 없습니다.
세부적인 설계 단계에서 적용된 원칙 중 아키텍처 수준에서도 충분히 활용할 수 있는 것들이 많기 때문입니다.
하위 설계 능력이나 코딩 실력이 부족한 개발자는 좋은 아키텍처를 설계하기 어렵습니다.
과거에 좋은 패턴으로 여겨졌던 것이 시간이 흐르면서 안티패턴으로 평가받는 경우도 드물지 않기 때문에 설계 능력과 코딩 실력은 꾸준히 키워야 합니다.
추상화 능력
문제 영역에서 중요한 본질적 요소, 그리고 그 외 대체 가능한 세부 사항을 구분함으로써, 소프트웨어에 유연성과 확장성을 부여할 수 있습니다.
이러한 설계 방식은 소프트웨어 구조 전반에 걸쳐 유효한 보편적인 원칙이며, 구조적 설계를 정의하는 아키텍처 단계에서도 그대로 적용됩니다.
비즈니스에 대한 이해
만약 아키텍트가 비즈니스에 대한 이해가 부족한 상태에서 아키텍처를 설계한다면, 우선순위를 잘못 설정하여 결국 유용하지 않은 아키텍처를 만들어질 수 있습니다.
중요한 것은 비즈니스 전문가와 대화를 통해 소프트웨어 및 아키텍처에 필요한 핵심 정보를 효과적으로 이끌어 내는 능력입니다.
요컨대 아키텍트는 ‘잘 듣고 이해하는 사람’이 되어야 합니다.
호기심
어제의 베스트 프랙티스(모범 사례)가 오늘은 지양해야 할 사례로 바뀌는 세상 속에서 그러한 변화에 무뎌지지 않고 늘열린 자세로 기술을 접하려는 태도는 지금 이 시대에 더욱 필요합니다.
아키텍트는 하나의 고정된 방식을 고집하기보다는 다양한 선택지를 비교·평가 하고, 그중에서 최적의 방법을 선택할 줄 알아야 합니다.
완벽주의보다 합리주의
소프트웨어에서 핵심적인 부분은 철저하게 코드 리뷰를 진행하되, 상대적으로 중요도가 낮은 부분은 때로는 과감히 생략할 줄 아는 결단력도 필요합니다.
해결해야 할 과제의 우선순위를 정하고, ‘적절히 우수한’ 아키텍처를 목표로 삼아야 합니다.
아키텍처는 목적이 아니라 수단이라는 점을 분명히 이해하고, 그러한 인식을 바탕으로 합리적인 판단을 내리는 것 역시 아키텍트의 중요한 역할 입니다.
Metadata
Metadata
Assignees
Labels
Projects
Status