1장. 설계와 아키텍처란?
아키텍처
아키텍처는 저수준의 세부사항과는 분리된 고수준의 무언가를 가리킬 때 흔히 사용된다.
설계
저수준의 구조 또는 결정사항 등을 의미한다.
- 저수준의 세부사항과 고수준의 구조는 모두 소프트웨어 전체 설계의 구성요소다.
- 소프트웨어 아키텍처의 목표는 필요한 시스템을 만들고, 유지보수 하는 데 투입되는 인력을 최소화하는 데 있다.
토끼와 거북이 우화
이 우화는 지나친 과신이 가진 어리석음을 말해준다.
개발자도 이와 비슷한 경주를 하며 과신을 드러낸다.
뼈 빠지게 일하지만, 뇌는 사실 잠 자고 있다.
- 훌륭하고 깔끔하게 잘 설계된 코드가 중요하다는 사실을 알고 있는 바로 그 뇌가 잠자고 있다.
- 지저분한 코드를 작성하면 단기간에는 빠르게 갈 수 있고, 장기적으로 볼 때만 생산성이 낮아진다.
- 나중에 기회가 되면 엉망이 된 코드를 정리하는 태세로 전환할 수 있다고 자신의 능력을 과신하게 된다.
빨리 가는 유일한 방법은 제대로 가는 것이다.
자신을 과신한다면 재설계하더라도 원래의 프로젝트와 똑같이 엉망으로 내몰린다.
결론