소프트웨어 시스템을 설계하는 일은 문제 해경을 하는 동시에 아직 발견하지 못한 문제를 찾아가는 일 입니다.
이처럼 어려운 일을 할 때 도움이 되는 방법을 디자인 씽킹이라고 합니다. 디자인 씽킹은 문제 해결의 모든 기준을 인간에 두고, 창의적이고 분석적으로 문제를 풀어가는 접근법 입니다.

2.1 디자인 싱킹의 4가지 원칙
해당 원칭은 소프트웨어 아키텍처 뿐 아니라 세부적인 프로그램 설계, UI 디자인, 기타 디자인이 중심이 되는 어떤 분야에도 적용 될 수 있습니다.
- 인간 중심 원칙 : 모든 디자인은 사회적이다.
- 모호함의 원칙 : 모호함을 유지하라
- 재디자인의 원칙 : 모든 디자인은 다시 디자인한 것이다.
- 촉각의 원칙 : 손에 잡히는 디자인이 대화를 이끌어 낸다.
2.1.1 모든 디자인은 사회적이다.
소프트웨어를 만드는 일은 다분히 사회적인 활동 입니다. 팀을 고려하지 않고 학문적으로 접근한 설계는 허구 입니다.
사회적인 아키텍트를 위한 방법은 아래와 같습니다.
- 아키텍트는 모든 이해관계자들과 공감대를 형성
- 사람을 존중하는 마음가짐으로 의견을 경청하고 인간중심적인 설계 방법을 활용하여 일을 진행
- 아키텍트는 팀원들과 직접 소통하며 함께 설계
- 아키텍트와 팀을 분리하면 사람들과 관계도 끊김
2.1.2 모호함을 유지하라.
설계를 확정하기 전까지는 당분간 모호함을 유지 해야 합니다.
- 최소한의 아키텍처를 만들어 여러 구조를 정리 할 수 있는 방향 제시
- 최소한의 아키텍처를 만들고 나머지 설계 과정은 하위 설계자가 알아서 결정 할 수 있도록 해야 함
- 모호함을 유지하면 주변 상황이 바뀌더라도 소프트웨어를 제때 공급 할 수 있습니다.
2.1.3 모든 디장인은 다시 디자인한 것이다.
'다시 디자인 한다' 는 의미는 과거의 디자인에서 패튼을 찾고 고찰해 보는 것 입니다.
- 현재의 문제는 과거에도 고민 했을 수 있다. 과거의 문제를 고민한 문서를 기반으로 설계함.
- 재설계는 소트프웨어 아키텍처를 설계할 때 바닥부터 새롭게 만드는 것보다 현재의 설계를 갈고닦는 데에 많은 시간을 쓸수 있음.
- 가장 비효율적인 일은 과거에 존재한 시스템을 완전히 무시하는 일
2.1.4 손에 잡히는 디자인이 대화를 이끌어 낸다.
코드는 읽기 어렵고 또한 토론하기도 어렵습니다. 다른 사람들과 아키텍처를 공유하려면 코드만으로 표현 할 수 없는 방식으로 공유를 해야 합니다.
- 그림으로 코드를 구현
- 프로토타입을 만들어서 사람들과 공유
- 단순한 모델을 만들어서 아키텍처의 한 부분을 공유
이런 방법은 '모든 디자인은 사회적이다'와 맥을 같이 합니다. 아키텍처는 손으로 느낄 수 있게 해야만 다른 사람과 공유 할 수 있습니다.
반응형
'IT > 소프트웨어 아키텍처' 카테고리의 다른 글
개발자에서 아키텍트로 - 2.3 생각-실행-확인하기 (0) | 2024.12.27 |
---|---|
개발자에서 아키텍트로 - 2.2 디자인 마인드셋 장착하기(4가지) (0) | 2024.12.26 |
3. 팀에서 소프트웨어 아키텍트가 되려면? (2) | 2024.12.25 |
2. 소프트웨어 아키텍처란 무엇인가? (1) | 2024.12.25 |
1. Software 아키텍처 - 소프트웨어 아키텍트가 되다. (1) | 2024.12.25 |