Search

Why ‘Wishful Thinking?’

Why 'Wishful Thinking?'

Wishful Thinking은 이미 검증된 방법론입니다

Wishful Thinking은 우리가 새로 만든 개념이 아닙니다.
MIT의 전설적인 교과서 SICP(Structure and Interpretation of Computer Programs, 1985)에서 이미 40년 전부터 가르쳐온 추상화 사고법입니다.
"We can see that wishful thinking is a powerful tool for building abstractions. In fact, this is how large systems are designed. We name something and then explore its use, assuming that it exists, before we implement it."
(희망적 사고는 추상화를 구축하는 강력한 도구입니다. 실제로 대규모 시스템은 이렇게 설계됩니다. 무언가에 이름을 붙이고, 구현하기 전에 그것이 존재한다고 가정하고 사용법을 탐색하는 것입니다.)
SICP가 검증한 것:
MIT에서 수십 년간 컴퓨터 과학 입문 과정으로 사용
전 세계 수많은 프로그래머들이 이 방식으로 추상화를 배움
"구현 전에 이름을 짓고 사용법부터 탐색"이 대규모 시스템 설계의 핵심
우리는 이 검증된 방법론을 현대 프론트엔드 맥락으로 번역하고, 체계적인 학습 경로로 재구성했습니다.

원래 기획의 문제 인식

핵심 문제:
"학습자가 코드의 물리적 '분리/추출'을 '추상화'로 동일시"
왜 그랬나:
"시연을 보거나 피드백을 받더라도 학습자가 보는 건 뭔가 코드를 '분리'하는 행위이기 때문"
근본 원인:
추상화에 대한 올바른 멘탈 모델 부재
결과(분리된 코드)만 보고, 과정(왜 그렇게 분리했는지)을 못 봄

Wishful Thinking이 해결하는 것

원래 기획의 (4) "새로운 의미 수준 발견하기"가 바로 이것:
(1) 얽힘 인식 → "이 코드 문제네" (2) 일반해 학습 → "List, Form 같은 패턴 존재" (3) 조립 테크닉 → "IoC로 연결" (4) 새로운 의미 수준 발견 ← Wishful Thinking은 여기!
Plain Text
복사
Wishful Thinking은:
(1)에서 문제를 발견한 후
(2), (3)의 도구를 활용해
"어떻게 새로운 추상화를 만들까?"의 사고 과정을 제공하는 구체적 방법론

교과서 전체 흐름에서의 위치

[진단] 얽힘 인식 "이 코드는 얽혀있다" ↓ [방향] Wishful Thinking ← SICP의 검증된 방법론! "요구사항 보니 이렇게 되어야 하는데?" "이런 게 있으면 좋겠다" ↓ [도구] 일반해 학습 "List, Form으로 표현하자" ↓ [실행] 조립 테크닉 (IoC) "제어권을 외부로" ↓ [결과] 새로운 의미 수준 완성 "PermissionGuard라는 추상화"
Plain Text
복사

연결점: 왜 Wishful Thinking이 필요한가?

원래 기획의 문제:
학습자: "분리하면 추상화"
실제: "왜 이렇게 분리했는지 모름"
Wishful Thinking이 주는 것:
"왜"를 명시적으로 가르침
분리 전에 "이상적 형태"를 먼저 상상 (추상화에 대한 멘탈 모델 형성)
SICP가 증명한 "대규모 시스템 설계 방법"을 프론트엔드에 적용
기존 문제 해결:
Before (학습자): 얽힌 코드 → 바로 분리 → "추상화 했다!" → 틀림
After (Wishful Thinking): 얽힌 코드 → 요구사항 보기 → 이상적 형태 상상 → 일반해로 표현 → IoC로 조립 → 추상화 완성

교과서 설계와의 정합성

원래 기획의 목표:
"추상화를 단순 코드 이동이 아니라, '얽힘을 풀고' '단순함을 추구하며' '새로운 의미 수준을 발견'하는 과정으로 인식"
Wishful Thinking이 제공:
과정 중심 (린다 플라워)
멘탈 모델 (What/How 분리)
명시적 방법 (5단계 학습)
검증된 방법론 (SICP 40년 역사)
원래 기획의 성공 기준:
"코드의 구조적 문제와 개선 방향성을 명확한 개념어로 설명"
Wishful Thinking 후:
Before: "이 코드 복잡해요"
After: "데이터 페칭이 핵심인데 라우팅과 얽혀있어요. useProducts()로 추상화하고 Navigate를 분리하면 됩니다"

챕터 구성 제안

기존:
1.
얽힘 인식
2.
일반해 학습
3.
조립 테크닉
4.
새로운 의미 수준 발견
제안:
1.
얽힘 인식 (결합도)
2.
요구사항 분석과 이상적 형태 떠올리기 ← Wishful Thinking (SICP)
3.
일반해 학습 (Form, List...)
4.
조립 테크닉 (IoC...)

핵심 연결점

원래 기획의 핵심 문제:
"물리적 분리 = 추상화" 오해
Wishful Thinking이 해결:
"이상을 먼저 상상 → 일반해로 표현 → 조립" 과정 제시 (SICP가 증명한 "대규모 시스템 설계 방법")
결과:
학습자가 "왜"를 이해함
단순 분리가 아니라 방향성 있는 추상화
멘탈 모델 형성
40년 검증된 방법론으로 학습