2022.01.11 - [Study/컴퓨터 공학] - 클린 아키텍처 #2
2022.01.18 - [Study/컴퓨터 공학] - 클린 아키텍처 #3
2022.02.15 - [Study/컴퓨터 공학] - 클린 아키텍처 #4
2022.03.02 - [Study/컴퓨터 공학] - 클린 아키텍처 #5
2022.05.16 - [Study/컴퓨터 공학] - 클린 아키텍처 #6
클린 아키텍처 : 2부 3장까지
저자 : 로버트 C. 마틴
출판 : 인사이트
출간 : 2019.08.20.
학습 방법 : 책을 읽고 소제목 단위로 핵심 내용을 1~3문장 정도로 요약
1부. 소개
1장. 설계와 아키텍처란?
⦿ 설계 = 아키텍처
✓ 아키텍처 : 저수준의 세부사항과 분리된 고수준의 어떤 것
✓ 설계 : 저수준의 구조 또는 결정사항
✓ 하지만 둘의 경계는 뚜렷하지 않다.
⦿ 목표는?
✓ 필요한 시스템을 만들고 유지보수하는 데 투입되는 인력을 최소화하는 것!
⦿ 사례 연구 생략
⦿ 결론
✓ 훌륭하고 깔끔한 아키텍처와 설계가 무엇인지 설명한다.
✓ 이를 통해 소프트웨어 개발자가 장기간에 걸쳐 수익을 창출하는 시스템을 만들 수 있게 한다.
2장. 두 가지 가치에 대한 이야기
⦿ 두 가지 가치
✓ 행위 : 프로그래머가 요구사항을 기계에 구현하고 버그를 수정함
✓ 아키텍처 : 소프트웨어는 변경하기 쉬워야 한다. 변경사항을 적용하는데 드는 어려움은 범위에 비례하고 형태와는 관련이 없어야 한다. 따라서 아키텍처는 형태에 독립적이어야 한다.
⦿ 더 높은 가치
✓ 당장의 동작 가능한 기능보다 변경이 쉬운 프로그램이 더 가치가 있다.
⦿ 아이젠하워 매트릭스
✓ 기능의 긴급함이 아닌 아키텍처의 중요성을 설득하는 것은 개발팀의 책임이다.
⦿ 아키텍처를 위해 투쟁하라
✓ 아키텍트는(일반 개발자도) 시스템이 제공하는 특성이나 기능보다는 시스템의 구조에 더 중점을 두며 이러한 특성과 기능을 개발하기 쉽고 간편하게 수정할 수 있으며 확장하기 쉬운 아키텍처를 만들기 위해 투쟁해야 한다.
2부. 벽돌부터 시작하기: 프로그래밍 패러다임
3장. 패러다임 개요
⦿ 구조적 프로그래밍
✓ 무분별한 점프(goto문) 지양
✓ 제어흐름의 직접적인 전환에 대해 규칙을 부과한다.
⦿ 객체 지향 프로그래밍
✓ 제어흐름의 간접적인 전환에 대해 규칙을 부과한다.
✓ 클래스 생성자, 인스턴스 변수, 메서드, 다형성 등의 개념
⦿ 함수형 프로그래밍
✓ 할당문에 대해 규칙을 부과한다.
✓ 불변성을 기초 개념으로 하는 람다 계산법
⦿ 생각할 거리
✓ 프로그래밍 패러다임은 개발자에게 무엇을 하지 말아야 할지를 말해준다.
✓ 구조적 프로그래밍에서는 goto문을, 객체 지향 프로그램에서는 포인터를 함수형 프로그래밍에서는 할당문을 앗아간다.
⦿ 결론
✓ 세가지 프로그래밍 패러다임은 아키텍처의 3가지 큰 관심사인 함수, 컴포넌트 분리, 데이터 관리와 연관된다.
'Study > 컴퓨터 공학' 카테고리의 다른 글
클린 아키텍처 #6 (0) | 2022.05.16 |
---|---|
클린 아키텍처 #5 (0) | 2022.03.02 |
클린 아키텍처 #4 (0) | 2022.02.15 |
클린 아키텍처 #3 (0) | 2022.01.18 |
클린 아키텍처 #2 (0) | 2022.01.11 |