Skip to content

Files

Latest commit

Oct 31, 2021
3a31dc4 · Oct 31, 2021

History

History
This branch is 1 commit behind WBBookStudy/CleanArchitectureStudy:main.

01. 설계와 아키텍쳐란

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Oct 31, 2021

1장. 설계와 아키텍쳐란?

이 책의 목적 중 하나는 설계와 아키텍쳐가 무엇인지를 완전하게 정의하는 것이다.

소프트웨어 아키텍쳐의 목표는?

소프트웨어 아키텍쳐의 목표는 필요한 시스템을 만들고 유지보수하는 데 투입되는 인력을 최소화 하는데 있다.

사례연구

KakaoTalk_Photo_2021-10-31-17-00-23 001 KakaoTalk_Photo_2021-10-31-17-00-24 002 KakaoTalk_Photo_2021-10-31-17-00-25 003

엉망진창이 되어가는 신호

KakaoTalk_Photo_2021-10-31-17-03-49

개발자의 생산성은 거의 100%로 시작해서 0으로 수렴한다. 개발자 입장에서 보자면 이러한 현상은 지독한 절망감을 안겨주는데, 모두가 열심히 일하고 있기 때문이다. 개발자의 노력은 기능을 개발하기보다는 엉망이 된 상황에 대처하는 데 소모되기 시작한다.

경영자의 시각

KakaoTalk_Photo_2021-10-31-17-05-45

초기 출시에는 매월 수십만 달러의 비용으로 많은 기능을 탑재할 수 있었지만 마지막 출시에서는 2천만 달러를 들이고도 얻은게 거의 없다.

무엇이 잘못되었나?

거의 2600년 전에 이솝은 토끼와 거북이 우화를 지었다. 이 우화의 교훈 ->

  • 느려도 꾸준하면 이긴다.
  • 발 빠른자가 경주에 이기는 것도 아니며, 힘센 자가 싸움에서 이기는 것도 아니다.
  • 급할수록 돌아가라.
    ->
  • 코드는 나중에 정리하면 돼. 당장은 시장에 출시하는게 먼저야! -> 정리 안한다.
  • 지저분한 코드를 작성하면 단기간에는 빠르게 갈 수 있고, 장기적으로 볼 때만 생산성이 낮아진다 -> 엉망으로 만들면 깔끔하게 유지할 때보다 항상 더 느리다. KakaoTalk_Photo_2021-10-31-17-12-12

TDD를 하는날과 안하는날의 결과에 대한 그래프. 빨리가는 유일한 방법은 제대로 가는 것이다. 자신을 과신한다면 재설계하더라도 원래의 프로젝트와 똑같이 엉망으로 내몰린다.