Featured image of post [Clean Architecture] 06. 서론: 설계와 아키텍처

[Clean Architecture] 06. 서론: 설계와 아키텍처

1부 소개에서는 소프트웨어를 단순히 '동작하게 만드는 것'과 올바르게 설계하여 '유지보수와 확장성까지 갖춘 제대로 된 시스템'을 만드는 것의 차이를 설명합니다. 경험이 부족한 개발자와 열정적인 전문가의 태도 차이, 그리고 훌륭한 아키텍처의 중요성을 다룹니다.

Featured image of post [Clean Architecture] 07. 설계와 아키텍처란?

[Clean Architecture] 07. 설계와 아키텍처란?

설계(Design)와 아키텍처(Architecture)의 개념적 차이와 공통점을 다룹니다. 둘 사이에는 차이가 없으며, 좋은 아키텍처의 목표는 인력 최소화라는 실무적 관점을 실제와 유사한 사례 연구, 그리고 '나중에 정리하면 된다'는 거짓말에 대한 반박과 함께 설명합니다.

Featured image of post [Clean Architecture] 08. 두 가지 가치: 행위와 구조

[Clean Architecture] 08. 두 가지 가치: 행위와 구조

소프트웨어가 제공하는 두 가지 핵심 가치인 행위(기능)와 구조(아키텍처)에 대해 설명합니다. 왜 두 가치가 모두 중요하며, 소프트웨어를 변경하기 쉽게 만드는 것이 장기적으로 얼마나 큰 가치를 가지는지 아이젠하워 매트릭스와 함께 다룹니다.

Featured image of post [Clean Architecture] 09. 프로그래밍 패러다임 서론

[Clean Architecture] 09. 프로그래밍 패러다임 서론

소프트웨어 아키텍처와 프로그래밍 패러다임의 기초를 다룹니다. 최초의 코드 작성부터 어셈블러, 컴파일러, 다양한 언어의 탄생과 세 가지 프로그래밍 패러다임의 변천사, 그리고 이들이 소프트웨어 설계에 끼친 영향을 체계적으로 설명합니다.

Featured image of post [Clean Architecture] 10. 패러다임 개요: 세 가지 패러다임

[Clean Architecture] 10. 패러다임 개요: 세 가지 패러다임

구조적 프로그래밍, 객체 지향 프로그래밍, 함수형 프로그래밍 등 세 가지 주요 프로그래밍 패러다임의 개요와 각 패러다임이 가진 부정적 규칙의 본질, 그리고 프로그래밍 방식과 아키텍처에 미치는 영향을 역사적 맥락과 함께 설명합니다.

Featured image of post [Clean Architecture] 11. 구조적 프로그래밍

[Clean Architecture] 11. 구조적 프로그래밍

1968년 데이크스트라가 발견한 구조적 프로그래밍의 핵심을 다룹니다. goto문 해로움 논쟁, 순차/선택/반복 구조, 기능적 분해와 증명 가능한 프로그램의 개념을 반증 가능성 이론, 그리고 goto에 대한 흔한 오해와 함께 상세히 설명합니다.

Featured image of post [Clean Architecture] 12. 객체 지향 프로그래밍

[Clean Architecture] 12. 객체 지향 프로그래밍

객체 지향 프로그래밍의 세 가지 핵심인 캡슐화, 상속, 다형성을 아키텍처 관점에서 재해석합니다. 특히 다형성이 의존성 역전을 가능하게 하여 아키텍처에 혁명을 가져온 원리를, 가상 디스패치 비용과 과잉 추상화 리스크까지 포함해 설명합니다.

Featured image of post [Clean Architecture] 13. 함수형 프로그래밍

[Clean Architecture] 13. 함수형 프로그래밍

함수형 프로그래밍의 핵심인 불변성(Immutability)을 아키텍처 관점에서 분석합니다. 람다 계산법부터 이벤트 소싱까지, 가변 상태가 없는 프로그래밍이 동시성 문제를 해결하는 원리를 가변성 분리 전략과 함께 설명합니다.

Featured image of post [Clean Architecture] 14. SOLID 원칙 서론

[Clean Architecture] 14. SOLID 원칙 서론

SOLID 원칙의 개요와 역사적 맥락을 다룹니다. Robert C. Martin이 어떻게 이 다섯 가지 설계 원칙을 체계화했는지, 그리고 이 원칙들이 Clean Architecture와 어떻게 연결되는지 설명합니다.