/
https://42jerrykim.github.io/ _index.md
단일 책임 원칙(SRP)의 진정한 의미를 다룹니다. '하나의 일만 해야 한다'는 오해를 바로잡고, 액터(Actor) 개념과 Conway's Law와의 연결을 통해 SRP의 아키텍처적 의미를, 과도한 분리라는 반대쪽 함정과 함께 설명합니다.
개방-폐쇄 원칙(OCP)이 소프트웨어 아키텍처의 근본 원칙인 이유를 설명합니다. Bertrand Meyer의 1988년 원래 정의부터 Martin의 현대적 인터페이스 기반 해석, 그리고 Strategy·Template Method·Plugin 패턴 적용까지 다룹니다.
리스코프 치환 원칙(LSP)이 상속을 넘어 인터페이스와 아키텍처 수준에서 어떤 의미를 가지는지 설명합니다. 정사각형/직사각형 문제, 계약에 의한 설계, 택시 배차 REST API 설계까지 실제 사례를 다루며 위반 징후를 식별하는 방법을 제시합니다.
인터페이스 분리 원칙(ISP)이 불필요한 의존성을 제거하여 시스템을 어떻게 유연하게 만드는지 설명합니다. 뚱뚱한 인터페이스의 문제점, 역할 기반 분리 전략, ISP와 SRP의 관점 차이, 아키텍처 수준에서의 적용을 실제 예시와 함께 다룹니다.
의존성 역전 원칙(DIP)이 Clean Architecture의 핵심인 이유를 설명합니다. 안정된 추상화에 의존하는 방법, 변동성 있는 구체 클래스 피하기, 팩토리 패턴과 의존성 주입, Main 컴포넌트의 예외적 역할까지 다룹니다.
컴포넌트의 정의와 역사, 그리고 컴포넌트 수준의 설계 원칙 개요를 다룹니다. jar, dll, gem 등 배포 단위가 어떻게 발전해왔는지, SOLID가 응집도·결합도 원칙으로 컴포넌트 수준에서 어떻게 확장되는지 설명합니다.
컴포넌트의 정의와 역사를 상세히 다룹니다. 초기 프로그래밍의 메모리 배치 문제부터 재배치 가능한 바이너리, 링커의 등장, 정적/동적 링킹의 트레이드오프, 현대의 패키지 관리자와 모듈 시스템까지 발전 과정을 다룹니다.
컴포넌트 응집도의 세 가지 원칙(REP, CCP, CRP)을 상세히 다룹니다. 어떤 클래스들을 하나의 컴포넌트에 묶어야 하는지, 세 원칙이 서로 어떻게 긴장 관계에 놓이는지, 균형점을 찾는 방법을 실제 사례와 함께 설명합니다.
컴포넌트 결합의 세 가지 원칙(ADP, SDP, SAP)을 상세히 다룹니다. 순환 의존성 제거, 안정성 방향의 의존, 추상화와 안정성의 관계를 불안정성·추상화 메트릭과 주계열 개념, 실제 리팩토링 예제와 함께 설명합니다.
아키텍처란 무엇이며, 좋은 아키텍처의 목표는 무엇인지 소개합니다. SOLID·컴포넌트 원칙만으로는 시스템 구조가 왜 부족한지 짚고, Clean Architecture의 동심원 구조와 이후 15개 장의 로드맵을 제시합니다.