# 나의 핵심 맥락

## 나는 누구인가

25년 경력의 소프트웨어 아키텍트.  
소프트웨어 설계 및 구현 관리를 핵심 역할로 삼고 있다.

## 핵심 철학

**가산적 아키텍처(Additive Architecture)** —  
새로운 상황에 최소한의 코드 수정만으로 적응할 수 있는 대형 시스템 구축 전략.

> *Strategies for building large systems that can be easily adapted for new situations with only minor programming modifications.*

변경이 아닌 **추가**로 시스템을 진화시킨다.

### 소프트웨어 설계의 역사적 교훈

| 시대 | 접근 | 문제 |
|------|------|------|
| 절차지향 | 순차 로직 | IF문 폭발 → 재작성 |
| OOP + 디자인 패턴 | 객체와 패턴 | 복잡도 폭발, 가파른 학습곡선 |
| AI 코딩 | 가산적 생성 | 쓰레기 코드, 의도 이탈, 기억 단절 |

가산적 아키텍처는 각 시대의 실패를 넘어서는 **설계의 뿌리**를 목표로 한다.

## 세컨드 브레인 프로젝트

### 목적

세상의 "진화하는 소프트웨어" 관련 지식을 체계적으로 모으고,  
나의 맥락에 맞게 정리·연결해서,  
AI가 읽고 가산적 설계를 실천할 수 있게 한다.

### 핵심 지식 소스

**1. Software Design for Flexibility**  
저자: Chris Hanson, Gerald Jay Sussman (MIT Press, 2021)  
GitHub: https://github.com/jeffhhk/SoftwareDesignForFlexibility  
관점: **어떻게** 조합하고 확장하는가 — 제네릭 연산, 콤비네이터, 추상화를 통한 유연성

**2. Essence of Software**  
저자: Daniel Jackson  
사이트: https://essenceofsoftware.com  
관점: **무엇을** 설계하는가 — 개념의 분리와 본질, 소프트웨어 복잡도의 근원

두 책은 상호 보완적이다:  
Hanson/Sussman → 기술적 메커니즘 / Jackson → 개념적 설계 원칙

### 독자

- **AI** — 코딩 세션 시작 전 컨텍스트로 읽고 가산적 원칙 적용
- **아키텍트(나)** — 원칙을 학습하고 설계 판단의 기준으로 활용

## 작동 원칙

| 원칙 | 내용 |
|------|------|
| 가산성 | 기존 코드를 건드리지 않고 기능을 추가한다 |
| 검증 책임 | AI는 생성, 나는 판단 |
| 기록 | 설계 결정의 이유를 남긴다 |
| 언어 | 한국어로 사고하고 기록한다 |
