Differences between revisions 2 and 4 (spanning 2 versions)
Revision 2 as of 2025-07-24 13:47:23
Size: 6298
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 111: Line 111:
1. "use data to make logic simple"
2. "make DSL"
3. "do not mix logic and data construction"
 1. "use data to make logic simple"
 2. "make DSL"
 3. "do not mix logic and data construction"
Line 116: Line 116:
4. "last 5% automation"
5. "craft, not science"
6. "Make it work, then make it better"
7. "problem space, solution space"
8. "naming itself is a design practice"
9. "programming is to make a language system"
 4. "last 5% automation"
 5. "craft, not science"
 6. "Make it work, then make it better"
 7. "problem space, solution space"
 8. "naming itself is a design practice"
 9. "programming is to make a language system"
Line 124: Line 124:
10. "공통점과 차이점 찾기" (Find commonality and variability)  10. "공통점과 차이점 찾기" (Find commonality and variability)
Line 127: Line 127:
11. "Baby Step"
12. "quickly step back to closest green-bar"
13. "TDD is a design activity"
14. "short feedback cycle"
15. "micro commit, one at a time"
16. "isolation"
17. "use abduction"
18. "piecemeal growth, center first"
 11. "Baby Step"
 12. "quickly step back to closest green-bar"
 13. "TDD is a design activity"
 14. "short feedback cycle"
 15. "micro commit, one at a time"
 16. "isolation"
 17. "use abduction"
 18. "piecemeal growth, center first"
Line 137: Line 137:
19. "eliminate/reduce intermediate layers"
20. "넘겨짚지 말고, 마술의 동작과 동작 사이를 잘 들여다보기"
21. "do not guess far. when you guess, validate it"
22. "regression test"
23. "Here and now debugging"
 19. "eliminate/reduce intermediate layers"
 20. "넘겨짚지 말고, 마술의 동작과 동작 사이를 잘 들여다보기"
 21. "do not guess far. when you guess, validate it"
 22. "regression test"
 23. "Here and now debugging"
Line 144: Line 144:
24. "XP over Scrum for developers"
25. "pair programming with juniors"
26. "Yes, but / Yes, and"
 24. "XP over Scrum for developers"
 25. "pair programming with juniors"
 26. "Yes, but / Yes, and"
Line 149: Line 149:
27. "Learn from experts (CTA, CDE)"  27. "Learn from experts (CTA, CDE)"
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-07-24 16:15:03 by 정수)