Differences between revisions 38 and 39
Revision 38 as of 2025-12-30 07:13:38
Size: 21544
Editor: 정수
Comment:
Revision 39 as of 2025-12-30 07:21:30
Size: 21818
Editor: 정수
Comment:
Deletions are marked like this. Additions are marked like this.
Line 72: Line 72:
 * '''[[DirectPath]]''' ✓ - 입력에서 출력으로의 흐름을 가리는 불필요한 레이어와 간접성을 제거하라. 문제와 해결책 사이의 가장 짧은 경로가 보통 가장 명확하다.
   * ''연관: [[CleanIsolation]], [[SingleFocus]]''
Line 73: Line 76:
 * '''DirectPath''' - 입력에서 출력으로의 흐름을 가리는 불필요한 레이어와 간접성을 제거하라. 문제와 해결책 사이의 가장 짧은 경로가 보통 가장 명확하다.
   * ''연관: [[CleanIsolation]], [[SingleFocus]]''
Line 172: Line 172:
 * [[DirectPath]] ✓ - 불필요한 레이어와 간접성을 제거하여 명확한 흐름을 만듦, 단순함의 가치
Line 186: Line 187:
 * Candidates: SingleFocus, ShortLeash...  * Candidates: SingleFocus, ShortLeash, ComplexityTaming...
Line 212: Line 213:
 * [[DirectPath]] 패턴 완성 - 불필요한 추상화와 레이어를 제거하여 데이터 흐름을 명확히 함

AiGarden/ToJuniorsPatternLanguage

주니어 개발자들을 위한 프로그래밍 피드백을 Christopher Alexander의 패턴 언어로 변환하는 프로젝트.

Project Vision

기술문서모음/ToJuniors 문서의 패턴들을 Alexander의 패턴 언어 형식으로 변환하여 구조적이고 교육적인 자료로 발전시키는 것이 목표입니다.

Core Principles

  • Structure-Preserving Baby Steps - 기존 구조를 보존하며 점진적 발전

  • Story-First Approach - 스토리로 시작해서 패턴으로 추상화

  • Educational Focus - 학습자 중심의 명확한 설명

  • Pattern Language Structure - Alexander 방식의 체계적 연결

Pattern Inventory

Foundation Patterns

Core Programming Principles

TDD & Evolutionary Design Patterns

  • TinyExperiment ✓ - 문제에 대해 의미 있는 것을 가르쳐줄 수 있는 가장 작은 실험부터 시작하라. 각 실험은 실패 비용이 거의 없을 정도로 작아야 한다.

  • BabySteps ✓ - 시스템 무결성을 유지하면서 목표를 향해 나아가는 가장 작은 단계를 취하라. 큰 단계는 복잡성을 숨기고 디버깅을 기하급수적으로 어렵게 만든다.

  • GreenRefuge ✓ - 테스트가 실패하면 앞으로 고치려 하지 말고 즉시 마지막으로 알려진 작동 상태로 돌아가라. 초록 막대는 복잡성의 폭풍 속 안전한 피난처다.

  • DesignThroughTest ✓ - 테스트 주도 개발을 단순한 검증 도구가 아닌 설계 활동으로 사용하라. 테스트를 먼저 작성하는 행위는 더 나은 API 설계와 깔끔한 인터페이스를 드러낸다.

  • TightLoop ✓ - 변경을 만들고 그 효과를 보는 사이의 시간을 최소화하라. 긴 피드백 주기는 오류가 복합되고 근본 원인을 찾기 어렵게 만든다.

  • AtomicCommit ✓ - 각 커밋이 독립적으로 존재할 수 있는 하나의 완전하고 일관된 변경을 나타내도록 하라. 원자적 커밋은 변경 사항을 이해하고, 검토하고, 되돌리기 쉽게 만든다.

  • CleanIsolation ✓ - 테스트와 모듈을 숨겨진 의존성 없이 독립적으로 실행할 수 있도록 설계하라. 격리는 시스템을 이해하고, 테스트하고, 수정하기 쉽게 만든다.

  • DetectiveWork ✓ - 관찰된 행동의 원인에 대한 가설을 형성하기 위해 추론적 사고를 사용하라. 좋은 프로그래머는 결론을 내리기 전에 증거를 수집하는 탐정이다.

  • OrganicGrowth ✓ - 모든 부분을 동시에 구축하기보다는 작동하는 핵심에서 시스템을 점진적으로 성장시켜라. 생물학적 성장처럼, 소프트웨어는 각 단계에서 전체성을 유지할 때 가장 건강하게 성장한다.

  • StrongCenter ✓ - 가장 필수적인 핵심 기능부터 구축을 시작하고 바깥쪽으로 성장시켜라. 강한 중심은 시스템이 확장될 때 안정성과 일관성을 제공한다.

  • SafetyNet ✓ - 이전에 고쳐진 버그가 다시 발생하면 잡아내는 회귀 테스트를 구축하라. 좋은 안전망은 자신감을 가지고 리팩토링하고 개선할 수 있게 해준다.

  • DirectPath ✓ - 입력에서 출력으로의 흐름을 가리는 불필요한 레이어와 간접성을 제거하라. 문제와 해결책 사이의 가장 짧은 경로가 보통 가장 명확하다.

Testing & Debugging Patterns

  • SingleFocus - 한 번에 정확히 한 가지 일만 하고, 다음으로 넘어가기 전에 완전히 완료하라. 디버깅에서 멀티태스킹은 혼란과 놓친 연결로 이어진다.

  • ShortLeash - 버그나 행동에 대한 가설을 형성할 때, 너무 멀리 추론하지 말고 빠르게 테스트하라. 긴 추론 사슬은 불확실성을 곱하고 시간을 낭비한다.

  • PresentMoment ✓ - 일어나야 한다고 생각하는 일보다는 지금 실제로 일어나고 있는 일을 이해하는 데 집중하라. 현재 순간은 대부분의 문제를 해결하는 데 필요한 모든 정보를 담고 있다.

  • RootHunting ✓ - 표면적인 수정을 적용하거나 무작정 찾지 말고 체계적으로 파서 실제 원인을 찾아라. 진정한 근본 원인은 일단 발견되면 종종 간단한 해결책을 드러낸 다.

Programming Fundamentals & Language

Collaboration Patterns

  • TechnicalCommunity - 프로세스 준수보다는 기술적 우수성과 지속적 학습을 강조하는 개발 관행을 선택하라. 강한 기술적 관행은 경직된 프로세스보다 더 나은 협업을 만든다.

  • SharedMind - 지식을 결합하고 서로의 사각지대를 잡아내기 위해 다른 개발자들과 긴밀히 작업하라. 함께 일하는 두 마음은 종종 어느 한쪽도 혼자서는 도달할 수 없 는 통찰을 만들어낸다.

  • FlowingFeedback - 병목을 만들기보다는 개발 흐름을 유지하도록 코드 리뷰와 피드백을 구조화하라. 피드백은 진행을 느추는 것이 아니라 학습을 가속화해야 한다.

  • BuildingBridge - 다른 사람의 기여에 "네, 하지만..."보다는 "네, 그리고..."로 응답하라. 건설적인 대화는 방어적인 반응보다 더 나은 해결책을 만든다.

Learning & Expertise Patterns

Current Status

Phase 1: Foundation Patterns (Completed)

Completed:

  • TinyExperiment ✓ - 패턴 언어 형식으로 완성, 검증됨

  • CognitiveMicroscope ✓ - 인지 과정 관찰 패턴 완성

  • DataAsFoundation ✓ - 데이터 중심 사고와 LLM 시대의 표현 언어 완성

  • TwoWorlds ✓ - 문제 공간과 해결 공간 분리, Polya와 Weinberg의 지혜 통합

  • LanguageBuilding ✓ - Lisp 전통의 언어 구축과 Peter Naur의 theory building 통합

  • MetaphorThinking ✓ - 은유, 유추, 가추의 인지적 삼위일체로 문제 해결

  • WorkingFirst ✓ - Kent Beck의 "Work→Right→Fast", 주니어의 완벽주의 vs 시니어의 snowballing

  • NamesAsDesign ✓ - 이름은 문맥에 embedding, 관계 속에서 "잘 어울림", 개념화와 설계 활동

  • TinyResearch ✓ - 5분 연구의 습관, 셜록 홈즈의 잡학다식, 중용의 일일신(日日신), 지식의 복리 효과

  • ArtisanMind ✓ - 프로그래밍은 과학(Why)보다 기예(How), 유리 장인의 비유, 해커 마인드, 불완전한 지식으로 시작하는 베이지안 접근

  • The95PercentRule ✓ - 마지막 5%의 자동화 비용, 수동 개입의 가치, Unattended System과의 구분

Phase 2: TDD & Evolutionary Design Patterns (In Progress)

Completed:

  • BabySteps ✓ - 시스템의 생명력(Wholeness)을 유지하며 복잡한 변경을 수행, Structure-Preserving Transformation

  • GreenRefuge ✓ - 테스트가 실패하면 앞으로 고치려 하지 말고 즉시 마지막으로 알려진 작동 상태로 돌아감, 5분 규칙과 되돌리기의 용기

  • DesignThroughTest ✓ - 테스트를 검증 도구가 아닌 설계 도구로 사용, Wishful Thinking과 의존성 드러내기

  • TightLoop ✓ - 변경과 피드백 사이의 간격을 최소화하여 몰입(Flow)을 유지하는 법

  • AtomicCommit ✓ - 각 커밋이 독립적으로 존재할 수 있는 하나의 완전하고 일관된 변경을 나타내도록 함

  • CleanIsolation ✓ - 의존성을 끊어내어 자유롭게 테스트하고 변경하는 법, Seam, Stub/Mock 활용

  • OrganicGrowth ✓ - 기계적 조립이 아닌 유기적 성장으로 시스템을 구축, Walking Skeleton

  • StrongCenter ✓ - 시스템의 핵심 가치를 담은 중심을 먼저 구축하여 통일성과 안정성 확보

  • SafetyNet ✓ - 두려움 없이 코드를 수정할 수 있는 용기를 주는 자동화된 회귀 테스트

  • DetectiveWork ✓ - 가설과 증거를 통해 버그의 실체에 다가가는 체계적 디버깅

  • RootHunting ✓ - 증상이 아닌 근본 원인을 찾아 제거, 5 Whys, 잡초 뽑기

  • PresentMoment ✓ - "그래야만 한다"는 생각에서 벗어나 "지금 실제로 일어나는 일"을 마주함, 지도는 영토가 아니다

  • DirectPath ✓ - 불필요한 레이어와 간접성을 제거하여 명확한 흐름을 만듦, 단순함의 가치

Remaining Foundation:

  • None (All 11 Patterns Completed)

Validation Results

첫 번째 패턴 TinyExperiment의 스토리 구조가 검증되어 패턴 언어로서의 가능성을 확인했습니다. Foundation 레벨의 11개 패턴이 모두 완성되어, 주니어 개발자의 마인드 셋과 기본 원칙을 포괄하는 체계가 갖췄습니다.

Implementation Strategy

Phase 1: Core Foundation (Completed)

가장 기본이 되는 11개 패턴을 완성하여 전체 구조의 기반을 마련함.

Phase 2: TDD & Design Patterns (In Progress)

TDD와 설계 관련 패턴들을 체계화 (10-12개 패턴)

Phase 3: Collaboration & Learning

협업과 학습 관련 패턴들을 완성 (8-10개 패턴)

Next Actions

Immediate (This Week)

  • Phase 1 완료 리뷰 및 패턴 간 연결성 강화
  • Phase 2 (TDD & Design) 패턴 계속 진행 (SingleFocus?)

Short Term (This Month)

Pattern Structure Template

각 패턴은 Alexander 방식을 따릅니다:

  • Context - 상황과 배경

  • Problem - 구체적인 문제와 갈등

  • Solution - 해결 방법과 원리

  • Examples - 실제 적용 사례

  • Related Patterns - 연결된 다른 패턴들

Progress Log

Recent Achievements

  • DirectPath 패턴 완성 - 불필요한 추상화와 레이어를 제거하여 데이터 흐름을 명확히 함

  • PresentMoment 패턴 완성 - 지도(코드)가 아닌 영토(실행)를 보는 마인드셋

  • RootHunting 패턴 완성 - 5 Whys를 통한 근본 원인 해결 및 프로세스 개선

  • DetectiveWork 패턴 완성 - 가설과 증거 기반의 체계적 수사 기법

  • SafetyNet 패턴 완성 - 두려움 없이 리팩토링할 수 있는 심리적/기술적 안전망

  • StrongCenter 패턴 완성 - 시스템의 핵심 가치를 먼저 세워 주변부를 정렬

  • OrganicGrowth 패턴 완성 - 기계적 조립이 아닌 유기적 성장, Walking Skeleton, Gall's Law

  • CleanIsolation 패턴 완성 - 의존성을 격리하여 테스트 가능성과 유연성 확보

  • AtomicCommit 패턴 완성 - 변경의 역사를 원자적이고 일관된 단위로 기록

  • TightLoop 패턴 완성 - 변경과 피드백 사이의 시간을 최소화하여 몰입 유지

  • DesignThroughTest 패턴 완성 - 테스트를 통한 인터페이스 발견, 의존성 주입의 자연스러운 유도

  • GreenRefuge 패턴 완성 - 혼란 속에서 안전한 베이스캠프로 돌아가는 기술, 5분 규칙

  • BabySteps 패턴 완성 - 시스템의 생명력을 유지하며 이동하는 방법, Structure-Preserving Transformation

  • 원본 문서에서 27+개 패턴 목록 정리 완료
  • TinyExperiment 패턴 완성 및 검증

  • CognitiveMicroscope 패턴 완성 - SatirInteractionModel, CTA, 실제 멘토링 사례 통합

  • DataAsFoundation 패턴 완성 - 데이터 중심 사고, LLM 시대 표현 언어, XML/DSL 통합

  • TwoWorlds 패턴 완성 - Polya, Weinberg, Agile 원칙 통합, 문제/해결 공간 분리

  • LanguageBuilding 패턴 완성 - Lisp 전통(Paul Graham, Peter Seibel, Peter Norvig)과 Peter Naur의 Programming as Theory Building 통합

  • MetaphorThinking 패턴 완성 - Lakoff & Johnson의 은유, Hofstadter & Sander의 유추, Peirce의 가추를 통합한 인지적 삼위일체

  • WorkingFirst 패턴 완성 - Kent Beck, Fred Brooks, Chris Argyris, Michael Polanyi 통합, 주니어의 완벽주의 vs 시니어의 탐색적 접근, epistemology of making

  • NamesAsDesign 패턴 완성 - Phil Karlton, Martin Fowler, Ward Cunningham, Eric Evans의 Ubiquitous Language 통합, 문맥에 embedding된 이름의 관계적 품질

  • TinyResearch 패턴 완성 - 셜록 홈즈의 탐정적 지식 수집, 중용의 일일신, 호기심의 선순환, 지식의 복리 효과 통합

  • ArtisanMind 패턴 완성 - 과학(Why) vs 기예(How), 유리 장인의 비유, 베이지안 접근, 해커 마인드 통합

  • 3단계 구현 전략 수립
  • Foundation 레벨 우선순위 확정
  • Phase 1 Foundation 패턴 10개 완성 (목표: 5-6개)

Lessons Learned

  • 전체 패턴 목록을 먼저 정리하는 것이 중요
  • 스토리 우선 접근법의 효과 확인
  • 패턴 간 연결 관계의 복잡성 인식
  • 실제 경험과 일기의 통찰을 패턴에 통합하는 것의 가치
  • 인지과학과 철학의 통찰을 프로그래밍 패턴에 연결하는 것의 깊이


CategoryAiGardenProject CategoryPatternLanguage

AiGarden/ToJuniorsPatternLanguage (last edited 2025-12-31 03:35:40 by 정수)