본문 바로가기

SearchDeveloper/클린 아키텍처

[1] 1~2 장 설계와 아키텍처란?

설계와 아키텍처의 차이?

설계와 아키텍처의 차이는 없다.
고수준과 저수준의 차이라고도 말하지만 어차피 고수준의 결정사항과 저수준의 세부사항은 이어져 있는 전체 설계의 구성요소일 뿐이다.
 

좋은 소프트웨어 설계의 목표?

필요한 시스템을 만들고 유지보수에 투입되는 인력을 최소화한다.

목표를 이루기 위해선

"코드는 나중에 정리하면 돼. 당장 출시가 먼저야"라는 거짓말에 홀리지 않는다.    

왜?

개발 비용이 증가되는 주 요인이 변경 사항의 범위와 형태이기 때문이다.
아키텍처가 후순위가 되면 시스템 개발 비용이 더 많이 들고, 변경이  점점 어려워진다.
 
사례) 어떤 회사의 직원 수는 늘어나는데 생상선은 줄어듦. 결국 경영 관점에선 인건비는 늘어나고 사정이 악화되고 있었음. 왜? 코드 품질보다 시장 출시를 더 우선시 했기 때문
 
→ 그렇기 때문에 좋은 아키텍처를 구성하는 일은 개발자에게 중요하다! 투쟁하라!
 

소프트웨어의 가치 2가지

행위

기계가 수익을 창출하거나 비용을 절약하는 행위를 하도록 해야한다.

아키텍처

부드러워야한다. 즉, 변경하기 쉬워야 한다.
→ 둘 중 아키텍처가 더 중요하다. 행위만 우선시하다간 결국 나중엔 수정 불가한 프로그램이 될 것이다.
 
(elsboo) 기능 요구사항을 만족 해야 하고 코드 품질이 좋아야한다는 것으로 보인다.
클린코드도 그렇고 DDD 도 그렇고 클린 아키텍처도 그렇고 이런 걸 하는 목적은 수정을 쉽게 하기 위해서 라는 하나의 깔때기로 모여지는 것 같다

 

 

 

 

레퍼런스

 

클린 아키텍처