개요 로버트 C 마틴의 Clean Architecture 를 보고 Software Architecture란 무엇인지, 왜 필요한지, 어떤 원칙들이 존재하는지 배우다가 번역체로 읽는게 쉽지 않고, 지식으로 정립이 잘 되지 않아서 정리하려고 시작했습니다. 로버트 마틴의 큰 틀에 개인적으로 이해한 견해와 예시코드를 만들어 붙였습니다. Software에 Architecture가 존재할 수 있는 이유는, 반세기 동안 하드웨어는 더 작아지고 빨라졌지만, 소프트웨어를 '구성' 하는 것들은 조금도 바뀌지 않았기 때문입니다.(컴포넌트, 클래스, 함수, 모듈, 계층, 서비스 등) (반박 시 당신이 앨런 튜링) 흔히 소프트웨어의 설계를 건축물과 비교를 많이 합니다. 건축물은 물리적 한계 때문에 선택지가 제한되어 더 명확한 ..