Size: 6275
Comment:
|
Size: 5162
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 5: | Line 5: |
주니어 개발자들을 위한 프로그래밍 지혜를 Christopher Alexander의 패턴 언어로 변환하는 프로젝트. | 주니어 개발자들을 위한 프로그래밍 피드백을 Christopher Alexander의 패턴 언어로 변환하는 프로젝트. |
Line 11: | Line 11: |
[[기술문서모음/ToJuniors]] 페이지의 27개 핵심 격언들을 개별 패턴으로 확장하여, 반격자(semi-lattice) 구조의 상호 연결된 지식 네트워크를 구축한다. 각 패턴은 이솝우화 스타일의 스토리텔링으로 작성되어 초보자들이 쉽게 이해하고 기억할 수 있도록 한다. | [[기술문서모음/ToJuniors]] 문서의 패턴들을 Alexander의 패턴 언어 형식으로 변환하여 구조적이고 교육적인 자료로 발전시키는 것이 목표입니다. |
Line 13: | Line 13: |
== Pattern Language Structure == | === Core Principles === * '''Structure-Preserving Baby Steps''' - 기존 구조를 보존하며 점진적 발전 * '''Story-First Approach''' - 스토리로 시작해서 패턴으로 추상화 * '''Educational Focus''' - 학습자 중심의 명확한 설명 * '''Pattern Language Structure''' - Alexander 방식의 체계적 연결 |
Line 15: | Line 19: |
=== Foundation Patterns (가장 기본적) === '''[[TinyExperiment]]''' (완성) - 작은 실험 환경을 통한 점진적 학습과 개발 ↳ enables → BabyStep, UseAbduction, HereAndNowDebugging ↳ used by → TddIsDesignActivity, PiecemealGrowthCenterFirst |
== Pattern Inventory == |
Line 20: | Line 21: |
'''UseDataToMakeLogicSimple''' - 관심사 분리의 기본 원칙 ↳ supports → MakeDSL, DoNotMixLogicAndDataConstruction ↳ enables → FindCommonalityAndVariability |
=== Foundation Patterns === '''Core Programming Principles''' * UseDataToMakeLogicSimple - 로직과 데이터 구성 분리, DSL 활용 * ProblemSpaceSolutionSpace - 문제 영역과 해결 영역 구분 * MakeItWorkThenMakeBetter - 작동 우선, 개선은 나중에 * CraftNotScience - 프로그래밍은 과학이 아닌 기예 * Last5PercentAutomation - 마지막 5% 자동화의 함정 |
Line 24: | Line 29: |
'''ProblemSpaceSolutionSpace''' - 근본적 사고 체계 ↳ guides → NamingIsDesignPractice, MakeItWorkThenMakeBetter ↳ supports → TddIsDesignActivity |
=== TDD & Evolutionary Design Patterns === * '''[[TinyExperiment]]''' ✓ - 최소 실험을 통한 빠른 검증 * BabyStep - 작은 단계로 진행하기 * QuicklyStepBackToGreen - 빨간 막대 보면 가장 가까운 초록으로 * TDDIsDesignActivity - TDD는 설계 활동 * ShortFeedbackCycle - 짧은 피드백 루프 * MicroCommit - 한 번에 하나씩 마이크로 커밋 * Isolation - 격리 * UseAbduction - 추론 활용 * PiecemealGrowth - 점진적 성장, 중심부터 * CenterFirst - 핵심부터 시작 |
Line 28: | Line 41: |
=== Intermediate Patterns (기초 위에 구축) === '''BabyStep''' - 핵심적 진화적 접근법 ↳ connected to → MicroCommit, ShortFeedbackCycle ↳ enables → PiecemealGrowthCenterFirst ↳ requires → DoNotGuessValidateIt |
=== Testing & Debugging Patterns === * EliminateIntermediateLayers - 중간 레이어 제거/축소 * OneAtATime - 한 가지씩 차례로 * DoNotGuessFar - 멀리 추측하지 말고 검증하기 * RegressionTest - 회귀 테스트 * HereAndNow - 지금 여기서 상황 파악하고 근본 원인 찾기 * FindRootCause - 웹 페이지 뒤지지 말고 근본 원인 찾기 |
Line 34: | Line 49: |
'''NamingIsDesignPractice''' - 추상화 생성 ↳ uses → ProblemSpaceSolutionSpace ↳ supports → MakeDSL ↳ enables → FindCommonalityAndVariability |
=== Programming Fundamentals === * FindProgrammingPattern - 프로그래밍 패턴 찾기 * DealWithComplexity - 복잡성을 이해하고 처리할 수 있는 도구들 * NamingIsDesign - 네이밍 자체가 설계 실천 * BuildLanguageSystem - 프로그래밍은 언어 시스템 구축 * MakeVocabulary - 어휘 만들기 |
Line 39: | Line 56: |
'''TddIsDesignActivity''' - 피드백을 통한 설계 ↳ uses → ProblemSpaceSolutionSpace, BabyStep ↳ requires → ShortFeedbackCycle, UseAbduction ↳ produces → RegressionTest |
=== Collaboration Patterns === * ConsiderXP - 스크럼보다 익스트림 프로그래밍 고려 * PairProgramming - 다른 주니어들과 함께 뛰어난 성과 * PullRequestAntiPattern - PR 안티패턴 피하기 * YesButYesAnd - "네, 하지만" vs "네, 그리고" |
Line 44: | Line 62: |
=== Application Patterns (구체적 실천) === '''MicroCommit''' - 버전 제어 원칙 ↳ implements → BabyStep ↳ enables → PiecemealGrowthCenterFirst |
=== Learning & Expertise Patterns === * LearnFromExperts - 전문가로부터 잘 배우기 (CTA, CDE) * ApprenticeshipPattern - 견습 패턴 * ReflectivePractice - 성찰적 실천 * ReflectionInAction - 행동 중 성찰 * RecognitionPrimedDecision - 인식 우선 의사결정 |
Line 49: | Line 69: |
'''UseAbduction''' - 탐구 방법 ↳ supports → TddIsDesignActivity, HereAndNowDebugging ↳ opposite of → DoNotGuessValidateIt |
== Current Status == |
Line 53: | Line 71: |
'''HereAndNowDebugging''' - 디버깅 접근법 ↳ uses → UseAbduction, EliminateIntermediateLayers ↳ implements → DoNotGuessValidateIt |
=== Phase 1: Foundation Patterns (In Progress) === '''Completed:''' * [[TinyExperiment]] ✓ - 패턴 언어 형식으로 완성, 검증됨 |
Line 57: | Line 75: |
=== Meta-Patterns (과정 자체에 대한) === '''CraftNotScience''' - 개발 철학 ↳ manifests through → BabyStep, LastFivePercentAutomation ↳ guides → LearnFromExperts |
'''Next Priority:''' * UseDataToMakeLogicSimple - 로직 단순화의 핵심 * ProblemSpaceSolutionSpace - 사고 체계의 기본 |
Line 62: | Line 79: |
'''LastFivePercentAutomation''' - 자동화의 한계 ↳ reflects → CraftNotScience ↳ requires → PairProgrammingWithJuniors |
'''Remaining Foundation:''' * MakeItWorkThenMakeBetter, CraftNotScience, Last5PercentAutomation |
Line 66: | Line 82: |
=== 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:''' 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" '''Programming Fundamentals:''' 10. "공통점과 차이점 찾기" (Find commonality and variability) '''TDD & Evolutionary Design:''' 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" '''Testing & 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" '''Collaboration & Team:''' 24. "XP over Scrum for developers" 25. "pair programming with juniors" 26. "Yes, but / Yes, and" '''Learning & Expertise:''' 27. "Learn from experts (CTA, CDE)" |
=== Validation Results === 첫 번째 패턴 [[TinyExperiment]]의 스토리 구조가 검증되어 패턴 언어로서의 가능성을 확인했습니다. |
Line 153: | Line 87: |
'''Phase 1: Foundation (현재)''' - [x] [[TinyExperiment]] (완성) - [ ] UseDataToMakeLogicSimple - [ ] ProblemSpaceSolutionSpace |
=== Phase 1: Core Foundation (Current) === 가장 기본이 되는 5-6개 패턴을 완성하여 전체 구조의 기반을 마련 |
Line 158: | Line 90: |
'''Phase 2: Intermediate Layer''' - [ ] BabyStep - [ ] NamingIsDesignPractice - [ ] TddIsDesignActivity |
=== Phase 2: TDD & Design Patterns === TDD와 설계 관련 패턴들을 체계화 (10-12개 패턴) |
Line 163: | Line 93: |
'''Phase 3: Application Patterns''' - [ ] MicroCommit - [ ] UseAbduction - [ ] HereAndNowDebugging |
=== Phase 3: Collaboration & Learning === 협업과 학습 관련 패턴들을 완성 (8-10개 패턴) |
Line 168: | Line 96: |
'''Phase 4: Meta & Social''' - [ ] CraftNotScience - [ ] LastFivePercentAutomation - [ ] PairProgrammingWithJuniors |
== Next Actions == |
Line 173: | Line 98: |
'''Phase 5: Integration''' - [ ] Update [[기술문서모음/ToJuniors]] with all pattern links - [ ] Create pattern relationship visualization - [ ] Validate semi-lattice structure |
=== Immediate (This Week) === * UseDataToMakeLogicSimple 패턴 작성 시작 * ProblemSpaceSolutionSpace 구조 설계 * Foundation 패턴들 간의 연결 관계 정의 === Short Term (This Month) === * Foundation 레벨 5-6개 패턴 완성 * 패턴 언어로서의 일관성 검증 * Phase 2 패턴 우선순위 확정 == Pattern Structure Template == 각 패턴은 Alexander 방식을 따릅니다: * '''Context''' - 상황과 배경 * '''Problem''' - 구체적인 문제와 갈등 * '''Solution''' - 해결 방법과 원리 * '''Examples''' - 실제 적용 사례 * '''Related Patterns''' - 연결된 다른 패턴들 |
Line 180: | Line 119: |
'''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. | === Recent Achievements === * 원본 문서에서 27+개 패턴 목록 정리 완료 * TinyExperiment 패턴 완성 및 검증 * 3단계 구현 전략 수립 * Foundation 레벨 우선순위 확정 |
Line 182: | Line 125: |
== References == * Christopher Alexander - "A Pattern Language", "The Timeless Way of Building" * [[기술문서모음/ToJuniors]] - Original proverb collection * [[OrgPatterns]] - Pattern language inspiration and structure * [[가추법]] - Abduction methodology |
=== Lessons Learned === * 전체 패턴 목록을 먼저 정리하는 것이 중요 * 스토리 우선 접근법의 효과 확인 * 패턴 간 연결 관계의 복잡성 인식 |
Line 190: | Line 131: |
CategoryAiGardenProject CategoryPattern | CategoryAiGardenProject CategoryPatternLanguage |
AiGarden/ToJuniorsPatternLanguage
주니어 개발자들을 위한 프로그래밍 피드백을 Christopher Alexander의 패턴 언어로 변환하는 프로젝트.
Contents
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
UseDataToMakeLogicSimple - 로직과 데이터 구성 분리, DSL 활용
ProblemSpaceSolutionSpace - 문제 영역과 해결 영역 구분
MakeItWorkThenMakeBetter - 작동 우선, 개선은 나중에
CraftNotScience - 프로그래밍은 과학이 아닌 기예
Last5PercentAutomation - 마지막 5% 자동화의 함정
TDD & Evolutionary Design Patterns
TinyExperiment ✓ - 최소 실험을 통한 빠른 검증
BabyStep - 작은 단계로 진행하기
QuicklyStepBackToGreen - 빨간 막대 보면 가장 가까운 초록으로
- TDDIsDesignActivity - TDD는 설계 활동
ShortFeedbackCycle - 짧은 피드백 루프
MicroCommit - 한 번에 하나씩 마이크로 커밋
- Isolation - 격리
UseAbduction - 추론 활용
PiecemealGrowth - 점진적 성장, 중심부터
CenterFirst - 핵심부터 시작
Testing & Debugging Patterns
EliminateIntermediateLayers - 중간 레이어 제거/축소
- OneAtATime - 한 가지씩 차례로
DoNotGuessFar - 멀리 추측하지 말고 검증하기
RegressionTest - 회귀 테스트
HereAndNow - 지금 여기서 상황 파악하고 근본 원인 찾기
FindRootCause - 웹 페이지 뒤지지 말고 근본 원인 찾기
Programming Fundamentals
FindProgrammingPattern - 프로그래밍 패턴 찾기
DealWithComplexity - 복잡성을 이해하고 처리할 수 있는 도구들
NamingIsDesign - 네이밍 자체가 설계 실천
BuildLanguageSystem - 프로그래밍은 언어 시스템 구축
MakeVocabulary - 어휘 만들기
Collaboration Patterns
- ConsiderXP - 스크럼보다 익스트림 프로그래밍 고려
PairProgramming - 다른 주니어들과 함께 뛰어난 성과
PullRequestAntiPattern - PR 안티패턴 피하기
YesButYesAnd - "네, 하지만" vs "네, 그리고"
Learning & Expertise Patterns
LearnFromExperts - 전문가로부터 잘 배우기 (CTA, CDE)
ApprenticeshipPattern - 견습 패턴
ReflectivePractice - 성찰적 실천
ReflectionInAction - 행동 중 성찰
RecognitionPrimedDecision - 인식 우선 의사결정
Current Status
Phase 1: Foundation Patterns (In Progress)
Completed:
TinyExperiment ✓ - 패턴 언어 형식으로 완성, 검증됨
Next Priority:
UseDataToMakeLogicSimple - 로직 단순화의 핵심
ProblemSpaceSolutionSpace - 사고 체계의 기본
Remaining Foundation:
Validation Results
첫 번째 패턴 TinyExperiment의 스토리 구조가 검증되어 패턴 언어로서의 가능성을 확인했습니다.
Implementation Strategy
Phase 1: Core Foundation (Current)
가장 기본이 되는 5-6개 패턴을 완성하여 전체 구조의 기반을 마련
Phase 2: TDD & Design Patterns
TDD와 설계 관련 패턴들을 체계화 (10-12개 패턴)
Phase 3: Collaboration & Learning
협업과 학습 관련 패턴들을 완성 (8-10개 패턴)
Next Actions
Immediate (This Week)
UseDataToMakeLogicSimple 패턴 작성 시작
- Foundation 패턴들 간의 연결 관계 정의
Short Term (This Month)
- Foundation 레벨 5-6개 패턴 완성
- 패턴 언어로서의 일관성 검증
- Phase 2 패턴 우선순위 확정
Pattern Structure Template
각 패턴은 Alexander 방식을 따릅니다:
Context - 상황과 배경
Problem - 구체적인 문제와 갈등
Solution - 해결 방법과 원리
Examples - 실제 적용 사례
Related Patterns - 연결된 다른 패턴들
Progress Log
Recent Achievements
- 원본 문서에서 27+개 패턴 목록 정리 완료
TinyExperiment 패턴 완성 및 검증
- 3단계 구현 전략 수립
- Foundation 레벨 우선순위 확정
Lessons Learned
- 전체 패턴 목록을 먼저 정리하는 것이 중요
- 스토리 우선 접근법의 효과 확인
- 패턴 간 연결 관계의 복잡성 인식