diff --git a/docs/foundations/1-construction.mdx b/docs/foundations/1-construction.mdx index c969672..ba51dd7 100644 --- a/docs/foundations/1-construction.mdx +++ b/docs/foundations/1-construction.mdx @@ -39,9 +39,9 @@ import DevilsAdvocate from '@site/src/components/DevilsAdvocate'; ## πŸ“ 묢음 μš”μ•½ -1~4μž₯은 "코딩을 μ‹œμž‘ν•˜κΈ° 전에 무엇을 κ²°μ •ν•΄μ•Ό ν•˜λŠ”κ°€"λ₯Ό λ„€ κ°λ„λ‘œ μ‘°λͺ…ν•˜λŠ” λ¬ΆμŒμ΄μ—μš”. κ΅¬ν˜„μ˜ μ •μ˜λΆ€ν„° λΉ„μœ , 사전 μ€€λΉ„, 핡심 κ²°μ •κΉŒμ§€ 따라가면, 2026λ…„ FE ν™˜κ²½μ—μ„œ 무엇이 살아남고 무엇이 λ³€ν˜•λλŠ”μ§€κ°€ μžμ—°μŠ€λŸ½κ²Œ λ“œλŸ¬λ‚˜μš”. +1~4μž₯은 "코딩을 μ‹œμž‘ν•˜κΈ° 전에 무엇을 κ²°μ •ν•΄μ•Ό ν•˜λŠ”κ°€"λ₯Ό λ„€ κ΄€μ μ—μ„œ λ°”λΌλ³΄λŠ” λ¬ΆμŒμ΄μ—μš”. κ΅¬ν˜„μ˜ μ •μ˜λΆ€ν„° λΉ„μœ , 사전 μ€€λΉ„, 핡심 κ²°μ •κΉŒμ§€ 따라가면, 2026λ…„ FE ν™˜κ²½μ—μ„œ 무엇이 살아남고 무엇이 λ³€ν˜•λλŠ”μ§€ μžμ—°μŠ€λŸ½κ²Œ λ“œλŸ¬λ‚˜μš”. -- 1μž₯ β€” "construction(κ΅¬ν˜„)"은 AIκ°€ μ½”λ“œλ₯Ό λŒ€μ‹  μ“°λŠ” μ‹œλŒ€μ—λ„ λ°˜λ“œμ‹œ μΌμ–΄λ‚˜λŠ” ν™œλ™μ΄λΌ μ •μ˜ μžμ²΄λŠ” μœ νš¨ν•΄μš”. +- 1μž₯ β€” "κ΅¬ν˜„(Construction)"은 AIκ°€ μ½”λ“œλ₯Ό λŒ€μ‹  μ“°λŠ” μ‹œλŒ€μ—λ„ λ°˜λ“œμ‹œ μΌμ–΄λ‚˜λŠ” ν™œλ™μ΄λΌ μ •μ˜ μžμ²΄λŠ” μœ νš¨ν•΄μš”. - 2μž₯ β€” μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λ‹€λ₯Έ ν™œλ™μ— λΉ—λŒ€λŠ” 사고법은 μ‚΄μ•„ μžˆμ§€λ§Œ, McConnell의 건좕·농사 λΉ„μœ λŠ” FE의 반볡 배포 ν™˜κ²½κ³Ό 잘 λ§žμ§€ μ•Šμ•„ μƒˆ λΉ„μœ κ°€ ν•„μš”ν•΄μš”. - 3μž₯ β€” "μ½”λ”© μ „ μš”κ΅¬μ‚¬ν•­Β·μ•„ν‚€ν…μ²˜ 점검"은 μ—¬μ „νžˆ μ€‘μš”ν•˜μ§€λ§Œ, "100% ν™•μ • ν›„ μ‹œμž‘"이 μ•„λ‹ˆλΌ "λΆˆν™•μ‹€μ„± 큰 λΆ€λΆ„λΆ€ν„° 검증"으둜 λ³€ν˜•λμ–΄μš”. - 4μž₯ β€” μ–Έμ–΄Β·μ»¨λ²€μ…˜Β·ν”„λ ˆμž„μ›Œν¬λ₯Ό μ˜μ‹μ μœΌλ‘œ κ³ λ₯΄λΌλŠ” 원칙은 TypeScript strict, λ¦°ν„° λ£°, ν”„λ ˆμž„μ›Œν¬ 선택이 ν”„λ‘œμ νŠΈ 운λͺ…을 κ°€λ₯΄λŠ” FEμ—μ„œ 더 μ ˆμ‹€ν•΄μš”. @@ -64,13 +64,13 @@ import DevilsAdvocate from '@site/src/components/DevilsAdvocate'; ### βœ… 체크리슀트 -- [ ] "construction"에 ν¬ν•¨λ˜λŠ” ν™œλ™(상세 섀계, μ½”λ”©, 디버깅, λ‹¨μœ„ ν…ŒμŠ€νŠΈ, 톡합)이 νŒ€ μ•ˆμ—μ„œ λͺ…ν™•νžˆ μΈμ‹λ˜κ³  μžˆλ‚˜μš”? "μ½”λ”©λ§Œ construction"이라고 μ—¬κΈ°κ³  μžˆμ§€λŠ” μ•Šλ‚˜μš”? -- [ ] construction μ™Έ ν™œλ™(μš”κ΅¬μ‚¬ν•­, μ•„ν‚€ν…μ²˜, ν”„λ‘œμ νŠΈ 관리)과의 경계λ₯Ό νŒ€μ›μ΄ μ΄ν•΄ν•˜κ³  μžˆλ‚˜μš”? +- [ ] "κ΅¬ν˜„(Construction)"에 ν¬ν•¨λ˜λŠ” ν™œλ™(상세 섀계, μ½”λ”©, 디버깅, λ‹¨μœ„ ν…ŒμŠ€νŠΈ, 톡합)이 νŒ€ μ•ˆμ—μ„œ λͺ…ν™•νžˆ μΈμ‹λ˜κ³  μžˆλ‚˜μš”? "μ½”λ”©λ§Œ construction"이라고 μ—¬κΈ°κ³  μžˆμ§€λŠ” μ•Šλ‚˜μš”? +- [ ] κ΅¬ν˜„(Construction) μ™Έ ν™œλ™(μš”κ΅¬μ‚¬ν•­, μ•„ν‚€ν…μ²˜, ν”„λ‘œμ νŠΈ 관리)과의 경계λ₯Ό νŒ€μ›μ΄ μ΄ν•΄ν•˜κ³  μžˆλ‚˜μš”? νŒμ •κ³Ό μ²΄ν¬λ¦¬μŠ€νŠΈκ°€ 정닡은 μ•„λ‹ˆμ—μš”. 같은 원칙을 λ’€μ§‘μ–΄ λ³΄λŠ” 관점도 ν•¨κ»˜ λ‹΄μ•„λ‘¬μš”. @@ -78,7 +78,7 @@ import DevilsAdvocate from '@site/src/components/DevilsAdvocate'; ## Chapter 2. Metaphors for a Richer Understanding of Software Development @@ -87,13 +87,13 @@ import DevilsAdvocate from '@site/src/components/DevilsAdvocate'; **λ©”νƒ€ν¬λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄ μ•„λ‹ˆλΌ νœ΄λ¦¬μŠ€ν‹±μ΄μ—μš”**: λ©”νƒ€ν¬λŠ” 닡을 μ°ΎλŠ” 방법을 μ•Œλ €μ£ΌλŠ” 도ꡬ이지, λ‹΅ 자체λ₯Ό μ•Œλ €μ£ΌλŠ” 지도가 μ•„λ‹ˆμ—μš”. μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ—μ„œ 메타포λ₯Ό μ“΄λ‹€λŠ” 건 νƒμ‘°λ“±μ²˜λŸΌ 문제λ₯Ό λΉ„μΆ°λ³΄λŠ” 것이지, μ •ν•΄μ§„ 경둜λ₯Ό λ”°λ₯΄λŠ” 게 μ•„λ‹ˆμ—μš”. -**"μ½”λ“œ μ“°κΈ°(Writing)" λ©”νƒ€ν¬μ˜ ν•œκ³„**: μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ„ νŽΈμ§€ μ“°κΈ°μ²˜λŸΌ λ³΄λŠ” 관점은 κ³„νš 없이 μ•‰μ•„μ„œ μ“°κ³  μˆ˜μ •ν•˜λ©΄ λœλ‹€κ³  μ•”μ‹œν•˜λŠ”λ°, 이 λΉ„μœ λŠ” μ†Œν”„νŠΈμ›¨μ–΄μ˜ ν˜‘μ—…μ  성격과 μΆœμ‹œ 이후 μ§€μ†λ˜λŠ” μœ μ§€λ³΄μˆ˜ λΉ„μš©μ„ μ„€λͺ…ν•˜μ§€ λͺ»ν•΄μš”. +**"μ½”λ“œ μž‘μ„±" λ©”νƒ€ν¬μ˜ ν•œκ³„**: μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ„ νŽΈμ§€ μ“°κΈ°μ²˜λŸΌ λ³΄λŠ” 관점은 κ³„νš 없이 μ•‰μ•„μ„œ μ“°κ³  μˆ˜μ •ν•˜λ©΄ λœλ‹€κ³  μ•”μ‹œν•˜λŠ”λ°, 이 λΉ„μœ λŠ” μ†Œν”„νŠΈμ›¨μ–΄μ˜ ν˜‘μ—…μ  성격과 μΆœμ‹œ 이후 μ§€μ†λ˜λŠ” μœ μ§€λ³΄μˆ˜ λΉ„μš©μ„ μ„€λͺ…ν•˜μ§€ λͺ»ν•΄μš”. -**μ‹œμŠ€ν…œ μ„±μž₯(Accretion) 메타포**: μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ΅΄μ‘°κ°œκ°€ μ§„μ£Όλ₯Ό λ§Œλ“€λ“― μž‘μ€ λ‹¨μœ„λ‘œ μ‘°κΈˆμ”© μŒ“μ•„κ°€λŠ” λ°©μ‹μœΌλ‘œ λ³΄λŠ” κ΄€μ μ΄μ—μš”. McConnell은 이 메타포가 증뢄 개발의 λ³Έμ§ˆμ„ κ°€μž₯ μ •ν™•ν•˜κ²Œ ν¬μ°©ν•œλ‹€κ³  λ΄€μ–΄μš”. +**μ‹œμŠ€ν…œ μ„±μž₯ 메타포**: μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ΅΄μ‘°κ°œκ°€ μ§„μ£Όλ₯Ό λ§Œλ“€λ“― μž‘μ€ λ‹¨μœ„λ‘œ μ‘°κΈˆμ”© μŒ“μ•„κ°€λŠ” λ°©μ‹μœΌλ‘œ λ³΄λŠ” κ΄€μ μ΄μ—μš”. McConnell은 이 메타포가 증뢄 개발의 λ³Έμ§ˆμ„ κ°€μž₯ μ •ν™•ν•˜κ²Œ ν¬μ°©ν•œλ‹€κ³  λ΄€μ–΄μš”. -**μ†Œν”„νŠΈμ›¨μ–΄ 건좕(Building Construction) 메타포**: 규λͺ¨κ°€ 컀질수둝 κ³„νšκ³Ό μ„€κ³„μ˜ μ€‘μš”μ„±μ΄ λ‹¬λΌμ§„λ‹€λŠ” 점을 건좕 λΉ„μœ λ‘œ μ„€λͺ…ν•΄μš”. κ°œμ§‘μ„ μ§“λŠ” 것과 마천루λ₯Ό μ§“λŠ” 것은 μ ‘κ·Ό 방식 μžμ²΄κ°€ 달라지듯이, μ†Œκ·œλͺ¨μ™€ λŒ€κ·œλͺ¨ μ†Œν”„νŠΈμ›¨μ–΄ ν”„λ‘œμ νŠΈλ„ ν•„μš”ν•œ μ€€λΉ„μ˜ μˆ˜μ€€μ΄ 근본적으둜 λ‹€λ₯΄λ‹€κ³  ν–ˆμ–΄μš”. +**μ†Œν”„νŠΈμ›¨μ–΄ 건좕 메타포**: 규λͺ¨κ°€ 컀질수둝 κ³„νšκ³Ό μ„€κ³„μ˜ μ€‘μš”μ„±μ΄ λ‹¬λΌμ§„λ‹€λŠ” 점을 건좕 λΉ„μœ λ‘œ μ„€λͺ…ν•΄μš”. κ°œμ§‘μ„ μ§“λŠ” 것과 마천루λ₯Ό μ§“λŠ” 것은 μ ‘κ·Ό 방식 μžμ²΄κ°€ 달라지듯이, μ†Œκ·œλͺ¨μ™€ λŒ€κ·œλͺ¨ μ†Œν”„νŠΈμ›¨μ–΄ ν”„λ‘œμ νŠΈλ„ ν•„μš”ν•œ μ€€λΉ„μ˜ μˆ˜μ€€μ΄ 근본적으둜 λ‹€λ₯΄λ‹€κ³  ν–ˆμ–΄μš”. -**지적 λ„κ΅¬μƒμž(Intellectual Toolbox) 메타포**: μˆ™λ ¨λœ κ°œλ°œμžλŠ” 단일 방법둠에 μ’…μ†λ˜μ§€ μ•Šκ³  상황에 λ§žλŠ” 기법을 선택할 쀄 μ•Œμ•„μ•Ό ν•œλ‹€κ³  ν–ˆμ–΄μš”. μ–΄λ–€ 방법둠을 100% λ”°λ₯΄λ©΄ κ·Έ λ°©λ²•λ‘ μ˜ 렌즈둜만 세상을 보게 λ˜μ–΄ 더 λ‚˜μ€ 선택지λ₯Ό 놓칠 수 μžˆμ–΄μš”. +**지적 λ„κ΅¬μƒμž 메타포**: μˆ™λ ¨λœ κ°œλ°œμžλŠ” 단일 방법둠에 μ’…μ†λ˜μ§€ μ•Šκ³  상황에 λ§žλŠ” 기법을 선택할 쀄 μ•Œμ•„μ•Ό ν•œλ‹€κ³  ν–ˆμ–΄μš”. μ–΄λ–€ 방법둠을 100% λ”°λ₯΄λ©΄ κ·Έ λ°©λ²•λ‘ μ˜ 렌즈둜만 세상을 보게 λ˜μ–΄ 더 λ‚˜μ€ 선택지λ₯Ό 놓칠 수 μžˆμ–΄μš”.