Differences between revisions 1 and 6 (spanning 5 versions)
Revision 1 as of 2025-07-24 13:42:43
Size: 6275
Editor: 정수
Comment:
Revision 6 as of 2025-07-24 16:02:24
Size: 5162
Editor: 정수
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의 패턴 언어로 변환하는 프로젝트.

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

Testing & Debugging Patterns

Programming Fundamentals

Collaboration Patterns

Learning & Expertise Patterns

Current Status

Phase 1: Foundation Patterns (In Progress)

Completed:

Next Priority:

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)

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

  • 전체 패턴 목록을 먼저 정리하는 것이 중요
  • 스토리 우선 접근법의 효과 확인
  • 패턴 간 연결 관계의 복잡성 인식


CategoryAiGardenProject CategoryPatternLanguage

AiGarden/ToJuniorsPatternLanguage (last edited 2025-07-24 16:15:03 by 정수)