편(編)/책

Clean Architecture - 1장. 설계와 아키텍쳐

쪼랩전사 2021. 11. 2. 19:48
728x90

설계(Design)와 아키텍처(Architecture)는 아키텍트(architect) 관점에서 차이가 없다. 단, 아키텍처는 고수준, 설계는 저수준의 무언가를 가리킬 때 흔히 사용된다. 흔히 사용된다는 것이지 반드시 그렇다는 게 아니다.

하지만 설계와 아키텍처(이하 설아)는 개별로 존재할 수 없으며, 각각을 구분 짓는 경계도 명확하지 않다. 고수준에서 저수준으로 향하는 의사결정의 연속성만 있을 뿐이다.

설아의 목표와 품질 척도

설아의 목표는 다음과 같다.

"필요한 시스템을 만들고, 유지보수하는 비용을 최소화하는 것이다."

설아의 품질 척도는 다음과 같다.

"새로운 기능을 추가할 때마다 비용이 증가한다면, 나쁜 설계이다."

나쁜 설아를 하는 이유

  • 코드는 나중에 정리하면 돼, 당장은 시장에 출시하는 게 먼저야!

십중팔구는 코드를 정리하지 못한다. "시장에 출시하는 것이 먼저"라는 말 자체는 경쟁자가 있다는 것이다. 즉, 출시하더라도 계속해서 뭔가를 해야 한다는 뜻이다.

 

  • 지저분한 코드를 작성하면 단기간에는 빠르게 갈 수 있고, 장기적으로 볼 때만 생산성이 낮아진다.

장기적으로 가지도 않는다. 당장 내일 혹은 오늘부터 생산성이 낮아진다.

 

  • 소프트웨어를 처음부터 다시 만들면 좋아질 거야!

미안한데 그 소프트웨어를 만든 사람이 당신이다. 처음부터 다시 만들어도, 결국 끝은 정해져 있다.

 

위와 같이 자기 자신을 너무 과신하게 되면 점점 문제가 발생한다. 자신을 과신하지 말고, 소프트웨어 품질에 대해 심각하게 고민해야 좋은 소프트웨어를 만들 수 있다.

마치며...

Clean Architecture 책을 샀고, 이를 정리하고자 한다. 실제로 이 책을 읽은 사람들은 뭔가 이상한 걸 느끼겠지만, 포스팅마다 한장씩 열심히 요약해보겠다.

그런데 저 위의 3가지 격언 같은 저 말들 왠지 뼈아프다.