Software Architecture
[Programming Paradigm](https://texonom.com/programming-paradigm-a46c0d5f72624da9a89bd0d4ef2129a9) [Meta Programming](https://texonom.com/meta-programming-68f331a5bd80487590c9420c5768a3de) [awesome-design-patterns](https://github.com/DovAmir/awesome-design-patterns)


### 레이어를 계층화하며 모듈 의존성(결합도)은 낮추고 코드 응집도는 높여야 된다
Spaghetti Code: No code layer & consistency, complex dependency
그때그때 요청따라 개발하며 선형적 진행을 가지는 것보다 구조설계로 당장 개발이 늦춰지더라도 가속도 붙는 개발을 하는게 장기적으로 훨씬 빠른 길이다. 점점 새로운 구조를 제시하는 계단식 진행 그래프가 이상적
- 응집도 - 유사한 역할을 하는 코드들은 같이 모아둬야 한다는 것
- 결합도 - 하나의 기능을 수정하면 하나의 코드만 수정하게
### Software Architectures
|Title|
|:-:|
|[Hierarchical Architecture](https://texonom.com/hierarchical-architecture-1d9475b9c59a4205bdd253263dc483d1)|
|[Functional Architecture](https://texonom.com/functional-architecture-3ddaa2a406254b9d918ecc4aefb5bf6e)|
|[Hexagonal Architecture](https://texonom.com/hexagonal-architecture-abed0d9fc7bb44d7b460d3767e445711)|
|[Programming model](https://texonom.com/programming-model-891966d04756492ca740a7bbd2063bf4)|
|[Anti pattern](https://texonom.com/anti-pattern-3250fbc3083e4006856cf3a2c9a4024d)|
|[Clean Architecture](https://texonom.com/clean-architecture-6ccfdffa7913435a8ea92d6a19f0be4d)|
|[Onion Architecture](https://texonom.com/onion-architecture-29a01d4e664f4ad7a725c969a12c01c6)|
|[Server Architecture](https://texonom.com/server-architecture-2b4ea68f46da4e3eaa74c6408691785e)|


### Software Architecture Notion
|Title|
|:-:|
|[Hollywood principle](https://texonom.com/hollywood-principle-83ff4b560e214ad89cafdcfcc19f5989)|
|[ALM](https://texonom.com/alm-0d2ae61ff3c343f4bebd217eaabd4475)|
|[Software Stack](https://texonom.com/software-stack-8799750b4ed649d58b34a00196163ad4)|
|[Software Layered Architecture](https://texonom.com/software-layered-architecture-e6b08bb4a5a34668a7b5bf1c07cb366a)|
|[Uncle Bob](https://texonom.com/uncle-bob-4a781ddfaa424a919b53aa1a76a7b782)|
|[Component Rule](https://texonom.com/component-rule-3e10c85d47804c46a72d658027db513d)|
|[Software Control Structure](https://texonom.com/software-control-structure-011be5ec49a643a38cff7e52af648694)|
|[Software Architecture Trend](https://texonom.com/software-architecture-trend-f13a4d1cb50f462c98c0ed900ee10494)|
|[Software Architect](https://texonom.com/software-architect-eec1d15fdcec40abaf0aaf54e955f6d0)|



> 쓰라린 교훈에서 배워야 할 한 가지는 사용 가능한 컴퓨터의 성능이 증가함에 따라 계속 확장되는 범용 방법의 강력한 힘입니다. - 리차드 서튼



> [Hexagonal Architecture](https://blog.imqa.io/hexagonal-architecture/)






