Differences between revisions 3 and 4
Revision 3 as of 2025-07-24 13:48:34
Size: 6327
Editor: 정수
Comment:
Revision 4 as of 2025-07-24 13:49:28
Size: 6327
Editor: 정수
Comment:
Deletions are marked like this. Additions are marked like this.
Line 154: Line 154:
 - [x] [[TinyExperiment]] (완성)
 - [ ] UseDataToMakeLogicSimple
 - [ ] ProblemSpaceSolutionSpace
 * [x] [[TinyExperiment]] (완성)
 * [ ] UseDataToMakeLogicSimple
 * [ ] ProblemSpaceSolutionSpace
Line 159: Line 159:
 - [ ] BabyStep
 - [ ] NamingIsDesignPractice
 - [ ] TddIsDesignActivity
 * [ ] BabyStep
 * [ ] NamingIsDesignPractice
 * [ ] TddIsDesignActivity
Line 164: Line 164:
 - [ ] MicroCommit
 - [ ] UseAbduction
 - [ ] HereAndNowDebugging
 * [ ] MicroCommit
 * [ ] UseAbduction
 * [ ] HereAndNowDebugging
Line 169: Line 169:
 - [ ] CraftNotScience
 - [ ] LastFivePercentAutomation
 - [ ] PairProgrammingWithJuniors
 * [ ] CraftNotScience
 * [ ] LastFivePercentAutomation
 * [ ] PairProgrammingWithJuniors
Line 174: Line 174:
 - [ ] Update [[기술문서모음/ToJuniors]] with all pattern links
 - [ ] Create pattern relationship visualization
 - [ ] Validate semi-lattice structure
 * [ ] Update [[기술문서모음/ToJuniors]] with all pattern links
 * [ ] Create pattern relationship visualization
 * [ ] Validate semi-lattice structure

AiGarden/ToJuniorsPatternLanguage

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

Project Vision

기술문서모음/ToJuniors 페이지의 27개 핵심 격언들을 개별 패턴으로 확장하여, 반격자(semi-lattice) 구조의 상호 연결된 지식 네트워크를 구축한다. 각 패턴은 이솝우화 스타일의 스토리텔링으로 작성되어 초보자들이 쉽게 이해하고 기억할 수 있도록 한다.

Pattern Language Structure

Foundation Patterns (가장 기본적)

TinyExperiment (완성) - 작은 실험 환경을 통한 점진적 학습과 개발 ↳ enables → BabyStep, UseAbduction, HereAndNowDebugging ↳ used by → TddIsDesignActivity, PiecemealGrowthCenterFirst

UseDataToMakeLogicSimple - 관심사 분리의 기본 원칙 ↳ supports → MakeDSL, DoNotMixLogicAndDataConstruction ↳ enables → FindCommonalityAndVariability

ProblemSpaceSolutionSpace - 근본적 사고 체계 ↳ guides → NamingIsDesignPractice, MakeItWorkThenMakeBetter ↳ supports → TddIsDesignActivity

Intermediate Patterns (기초 위에 구축)

BabyStep - 핵심적 진화적 접근법 ↳ connected to → MicroCommit, ShortFeedbackCycle ↳ enables → PiecemealGrowthCenterFirst ↳ requires → DoNotGuessValidateIt

NamingIsDesignPractice - 추상화 생성 ↳ uses → ProblemSpaceSolutionSpace ↳ supports → MakeDSL ↳ enables → FindCommonalityAndVariability

TddIsDesignActivity - 피드백을 통한 설계 ↳ uses → ProblemSpaceSolutionSpace, BabyStep ↳ requires → ShortFeedbackCycle, UseAbduction ↳ produces → RegressionTest

Application Patterns (구체적 실천)

MicroCommit - 버전 제어 원칙 ↳ implements → BabyStep ↳ enables → PiecemealGrowthCenterFirst

UseAbduction - 탐구 방법 ↳ supports → TddIsDesignActivity, HereAndNowDebugging ↳ opposite of → DoNotGuessValidateIt

HereAndNowDebugging - 디버깅 접근법 ↳ uses → UseAbduction, EliminateIntermediateLayers ↳ implements → DoNotGuessValidateIt

=== Meta-Patterns (과정 자체에 대한) === CraftNotScience - 개발 철학 ↳ manifests through → BabyStep, LastFivePercentAutomation ↳ guides → LearnFromExperts

LastFivePercentAutomation - 자동화의 한계 ↳ reflects → CraftNotScience ↳ requires → PairProgrammingWithJuniors

Social Patterns (팀 역학)

PairProgrammingWithJuniors - 지식 전수 ↳ enables → LearnFromExperts ↳ uses → YesButYesAnd ↳ supports → LastFivePercentAutomation

Pattern Template

각 패턴은 Alexander의 형식을 따르되, 이솝우화 스타일로 작성된다:

#acl +All:read

= PatternName =

== Context ==
언제 이 패턴이 적용되는가

== Problem ==
스토리나 우화로 문제 상황 묘사

== Solution ==
구체적이고 실행 가능한 해결책
문단 형태로 자연스럽게 서술

== Examples ==
실제 개발 상황의 구체적 예시들
캐릭터와 스토리가 있는 경험담

== Resulting Context ==
이 패턴 적용 후의 상황

== Related Patterns ==
 * '''Uses:''' 이 패턴이 사용하는 다른 패턴들
 * '''Used by:''' 이 패턴을 사용하는 패턴들  
 * '''Enables:''' 이 패턴이 가능하게 하는 패턴들
 * '''Complements:''' 보완하는 패턴들

----
CategoryPattern

Complete Proverb List

Data & Logic Design:

  1. "use data to make logic simple"
  2. "make DSL"
  3. "do not mix logic and data construction"

Programming Philosophy:

  1. "last 5% automation"
  2. "craft, not science"
  3. "Make it work, then make it better"
  4. "problem space, solution space"
  5. "naming itself is a design practice"
  6. "programming is to make a language system"

Programming Fundamentals:

  1. "공통점과 차이점 찾기" (Find commonality and variability)

TDD & Evolutionary Design:

  1. "Baby Step"
  2. "quickly step back to closest green-bar"
  3. "TDD is a design activity"
  4. "short feedback cycle"
  5. "micro commit, one at a time"
  6. "isolation"
  7. "use abduction"
  8. "piecemeal growth, center first"

Testing & Debugging:

  1. "eliminate/reduce intermediate layers"
  2. "넘겨짚지 말고, 마술의 동작과 동작 사이를 잘 들여다보기"
  3. "do not guess far. when you guess, validate it"
  4. "regression test"
  5. "Here and now debugging"

Collaboration & Team:

  1. "XP over Scrum for developers"
  2. "pair programming with juniors"
  3. "Yes, but / Yes, and"

Learning & Expertise:

  1. "Learn from experts (CTA, CDE)"

Implementation Strategy

Phase 1: Foundation (현재)

Phase 2: Intermediate Layer

Phase 3: Application Patterns

Phase 4: Meta & Social

Phase 5: Integration

  • [ ] Update 기술문서모음/ToJuniors with all pattern links

  • [ ] Create pattern relationship visualization
  • [ ] Validate semi-lattice structure

Progress Log

2024-01: Project initiated. First pattern TinyExperiment created with story-driven approach. Enhanced from bullet-point structure to Aesop's fable style storytelling. Pattern successfully integrates assumption, validation, fail-safe, fast feedback loop, isolation, baby step, and abduction concepts.

References


CategoryAiGardenProject CategoryPattern

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