본문 바로가기
  • SDXL 1.0 + 한복 LoRA
  • SDXL 1.0 + 한복 LoRA
Study/컴퓨터 공학

클린 아키텍처 #6

by 마즈다 2022. 5. 16.
반응형

2022.01.07 - [Study/컴퓨터 공학] - 클린 아키텍처

2022.01.11 - [Study/컴퓨터 공학] - 클린 아키텍처 #2

2022.01.18 - [Study/컴퓨터 공학] - 클린 아키텍처 #3

2022.02.15 - [Study/컴퓨터 공학] - 클린 아키텍처 #4

2022.03.02 - [Study/컴퓨터 공학] - 클린 아키텍처 #5

 

클린 아키텍처 : 본문 정리 완료


저자 : 로버트 C. 마틴
출판 : 인사이트
출간 : 2019.08.20.

학습 방법 : 책을 읽고 소제목 단위로 핵심 내용을 1~3문장 정도로 요약


 

5부

17장 경계: 선 긋기

✓ 경계 : 소프트웨어 요소를 서로 분리하고, 경계 한편에 있는 요소가 반대편에 있는 요소를 알지 못하게 막는다.
✓ 좋은 아키텍처는 유스케이스와 아무런 관련이 없는 결정을 연기할 수 있는 아키텍처이다.

  • 연기 가능한 결정 : 프레임워크, 데이터베이스, 웹서버, 유틸리티 라이브러리, 의존성 주입 등

⦿ 두 가지 슬픈 이야기

✓ 망 구성 방식을 너무 일찍 결정한 경우 (실패 사례1)
✓ 서비스 지향 아키텍처의 도구들을 너무 일찍 선택한 경우(실패 사례2)

⦿ FitNesse

✓ 업무 규칙과 데이터베이스 사이에 경계선
✓ 결정이 지연된 메서드들은 stub으로 생성

⦿ 어떻게 선을 그을까? 그리고 언제 그을까?

✓ 관련이 있는 것과 없는 것 사이에 선을 긋는다.
✓ 데이터베이스에 대한 결정은 연기할 수 있으며, 업무 규칙을 먼저 작성하고 테스트하는데 집중할 수 있다.

⦿ 입력과 출력은?

✓ 입력과 출력은 중요하지 않다.
✓ 따라서 GUI에 대한 선택 또한 뒤로 미룰 수 있다.

⦿ 플러그인 아키텍처

✓ 소프트웨어 개발 기술의 역사는 플러그인을 손쉽게 생성하여, 확장 가능하며 유지보수가 쉬운 시스템 아키텍처를 확립할 수 있게 만드는 방법에 대한 이야기다.

⦿ 플러그인에 대한 논의

✓ 시스템을 플러그인 아키텍처로 배치함으로써 변경이 중요 부분에 영향을 미치지 않도록 함
✓ 경계는 변경의 축이 있는 지점에 그어짐(경계의 한쪽에 위치한 컴포넌트는 경계 반대편의 컴포넌트와는 다른 속도와 이유로 변경된다.
✓ 단일 책임의 원칙이 경계를 긋는 기준이 된다.

⦿ 결론

✓ 경계선을 그리려면 먼저 시스템을 컴포넌트 단위로 분할해야 한다.
✓ 경계선을 긋는 것은 의존성 역전의 원칙과 안정된 추상화 원칙을 응용한 것이다.

18장 경계 해부학

⦿ 경계 횡단하기

✓ ‘런타임에 경계를 횡단한다’ 함은 경계 한쪽에 있는 기능에서 반대편 기능을 호출하여 데이터를 전달하는 일
✓ 적절한 위치에서 경계를 횡단하게 하는 비결은 소스코드 의존성 관리에 있다.
✓ 경계는 변경이 전파되는 것을 막는 방화벽을 구축하고 관리하는 수단으로써 존재한다.

⦿ 두려운 단일체

✓ 배포 관점에서 볼 때 단일체는 경계가 드러나지 않는다.
✓ 하지만 규칙적인 방식으로 구조를 분리하면 프로젝트를 개발, 테스트, 배포하는데 큰 도움이 된다.
✓ 이러한 경우 컴포넌트는 소스 코드 형태로 전달된다.

⦿ 배포형 컴포넌트

✓ 아키텍처 경계가 물리적으로 드러나는 경우: 동적 링크 라이브러리(jar, dll, gem 등)
✓ 배포 수준의 컴포넌트는 단일체와 동일
✓ 경계를 가로지르는 통신은 단일체와 마찬가지로 함수 호출에 지나지 않아 비용이 싸다.

⦿ 스레드

✓ 스레드는 아키텍처 경계도 아니고 배포 단위도 아니다.
✓ 스레드는 실행 계획과 순서를 체계화 하는 방법에 가깝다.

반응형

'Study > 컴퓨터 공학' 카테고리의 다른 글

클린 아키텍처 #5  (0) 2022.03.02
클린 아키텍처 #4  (0) 2022.02.15
클린 아키텍처 #3  (0) 2022.01.18
클린 아키텍처 #2  (0) 2022.01.11
클린 아키텍처  (0) 2022.01.07