Slide 18
Slide 18 text
Copyright ⓒ All Right Reserved by Buzzvil
Terminology
Software Architecture Premises
Architecture
> technical decisions
- 모든 기능 개발에 cross-cutting하는 기술적 결정
- 프레임워크, 코딩 표준, 문서화, 프로세스 등
- 프로젝트 후반에 바꾸기 어려운 기술적 결정
- 시스템의 큰 그림이며, 컴포넌트들과 그들의 관계
- 결정을 최대한 미루어 변화에 유연하게 만드는 것
- 컴포넌트와 모듈을 재사용 할 수 있게 만드는 것
- 코딩 표준, 개발 단계, CI/CD, 배포 등과 같은 표준을 만드는
것
- 한 사람이 결정하는 것이 아닌, 여러 팀의 숙련된 개발자
길드가 결정
** 길드 - Spotify Engineering Culture Video
Architect
- 아키텍처의 수호자 / 촉진자
- 가장 숙련된 개발자로 큰 그림 상의 문제를 분석하고
해결하는데 더 “많은 책임"
- 아키텍처와 관련된 사안을 결정할 때, 강력한 투표권
- 모든 개발자는 어느 시점이 되면 아키텍트가 되는데, 그때
아키텍처에 대해 제대로 이해 필요
- 숙련된 개발자는 어떤 방식으로든 아키텍처에 기여하기
때문에, 아키텍처 관리에 책임을 가짐
- 안티패턴 : 상아탑(Ivory Tower) 아키텍트
- 모든 것을 독단적으로 결정하는 아키텍트
Software Architecture […] is the set of structures needed to reason about the system, which comprises software elements,
relations among them, and properties of both.
Clements et al, 2010