클린 아키텍처 1

Greenddoovie·2022년 3월 26일
0

클린아키텍처

목록 보기
1/1

소프트웨어 구조와 설계의 원칙

  • 옮긴이의 글, 추천사, 서문을 읽고 느낀 점

옮긴 이가 이 책을 읽으면서 생각했던 질문

  1. SW 시스템이란 무엇인가?
  2. SW 시스템을 통해 얻고자 하는 것은 무엇인가?
  3. SW 아키텍처는 SW 시스템을 만들 때 왜 중요할까?
  4. SW 아키텍처를 어떻게 좋게 만들 수 있을까?

SW 시스템, SW 아키텍처은 계속 반복해서 나온다

그러면 SW 시스템은 뭘까?

  1. 컴퓨터에게 동작 방법을 지시하는 명령어 집합의 모음
  2. 다른 소프트웨어에 입력을 제공

SW 아키텍처는 뭘까?

  1. 소프트웨어의 골격이 되는 기본 구조
  2. SW 컴포넌들과의 관계를 정의한 구조

옮긴이의 생각 추론

옮긴이는 스스로 잘하는 개발자가 아니라 생각한다지만, 이전에 실무 경험이 있었다. 그럼에도 책 이해, 번역, 다듬는데 2년이 걸렸다고 한다.
나는 옮긴이보다 경험이 더 적고 이제 실무에 들어가는 junior이므로 2년간 계속해서 읽어도 부족하겠지만, 2년간 이 책만 읽을 수 없으므로 읽고 다시 읽는 책이 되어야한다 생각했다.

경험에 따라 책은 다르게 읽히기 때문에

추천사

좋았던 글귀

1. 소프트웨어는 소프트웨어로 구성된다.

책 내용중에 소프트웨어의 가치는 행위와 부드러움이다라고 표현한다.
책 내용과 위의 글귀를 합치면,

  1. 한 행위를 만들기위해 다른 소프트웨어에게 행위를 요청 혹은 위임한다
  2. 부드러움 위에 부드러움이 쌓여야 부드러운 구조를 유지할 수 있다

위의문장에서 아래 사실을 추론할 수 있다.

2. 소프트웨어도 다양한 구조가 존재하지만, 물리적 구조의 다양성 앞에서는 무색하다.

소프트웨어의 다양한 구조로 내가 아는 건 mvc, mvp, mvvm 패턴이 존재한다.
개발자 입장에서 선택지가 3개가 존재한다는 게 다양한 구조라고 생각하지만, 물리적으로 다양한 건축구조가 있다는 걸 생각하면 무색하긴 하다.

그렇다면 위의 아키텍처 패턴으로 분류되는 저 3가지를 제외하고 글귀의 다양한 구조에 포함될만한 애들은 무엇이 있을까?

  • 디자인 패턴의 구조패턴?
  • 디자인 패턴의 생성패턴?
  • 디자인 패턴의 행동패턴?
    결국 어떠한 구조를 제공하므로 이것도 다양한 구조의 하나로 볼 수 있지 않을까?

3. 문학적 표현, 유명인의 말을 통한 인용

그대여, 사랑의 기괴함이란 일너 것이지요.
의지는 무한한데 실행은 제한적이죠
욕망은 한량없으나 행동은 한계에 굴복하겠죠.
by 윌리엄 셰익스피어

  • SW와 물리세계의 관계를 은유

아키텍처는 시스템을 구체화하는 중요한 설계 결정을 표현하며,
그 결정의 중요도는 변경에 드는 비용으로 측정된다.
by 그래디 부치

  • 물리 세게예 놓인 SW를 현실에서 좋은지, 안좋은지 판단하는 가늠자를 제시

좋은 아키텍처가 비싸다는 생각이 든다면,
나쁜 아키텍처를 시도해 보라.
by 브라이언 푸트와 조셉 요더

  • 왜 좋은 아키텍처를 고민해야하는가?

아키텍처란 프로젝트 초기에 재대로 정할 수 있기를 바라는 결정사항이지만,
제대로 정할 가능성이 그 외 사항들보다 반드시 더 높지는 않다.
by 랄프 존슨

  • 당장에 좋은 아키텍처를 설계하여 계속 유지할 수는 없다.
  • 소프트웨어의 부드러움을 큰 가치로 여기고, 유지보수성을 높혀야한다.

아키텍처는 구현과 측정을 통해 증명해야하는 가설이다.
by 톰 길브

  • 현재 SW에 좋은 아키턱체는 무엇인지에 대해 고민해라

빨리 가는 유일한 방법은 제대로 가는 것이다.
로버트 C 마틴

  • 계속해서 검증하고 고민하라

서문

이 책의 글쓴이는 아키텍처 규칙이 규모, 소프트웨어 성격에 관계없이 동일하다는 것을 그간의 개발 경험을 통해 느꼈다고 한다.

그래서 결과적으로 아키텍처 규칙은 다른 모든 변수에 독립적이다라는 말을 했다.

이렇게 말을 하는 이유는 HW의 변화로 인한 SW의 변화가 코드적으로 없기 때문이다.

HW 변화가 SW에 영향을 끼친 점
1) SW 크기
2) SW 성능

이 책의 앞부분을 읽고 든 나의 고민

1. 아키텍처는 왜 중요할까?

2. 좋은 아키텍처는 무엇일까?

3. 어떤 아키텍처 패턴이 존재할까?

4. 각 패턴은 어떤 점에서 SW에게 부드러움을 주었을까?

5. 가장 마지막에 나온 패턴이 좋은 패턴일까?

스스로 책을 읽으며 적어나갈 예정이다.

profile
기초를 이해하면 세상이 다르게 보인다

0개의 댓글