"이름은 boss drop. 매뉴얼 읽어서가 아니라 레벨 깨서 받는 거."
왜 이 track 이 처음 아니라 여기에?
교과서면 이게 1 장. "시작 전 용어 정의: Abstraction, Inheritance, Polymorphism, Encapsulation..."
정확히 잘못.
이 quest 따라왔으면 — 표의 모든 도구 이미 사용. Mob inheritance 트리 추적. 같은 동사가 다른 전치사로 다른 의미 만드는 거 봄. 아빠가 손자 한 글자 override 한 거 봄. 풍미 root class 이해해서 레시피 없이 요리.
그것들 하는 데 정의 필요 없었어. 정의가 지식 X — 채운 후 병에 붙이는 라벨.
이 track 은 정리. 깨끗한 인벤토리 화면. 도구 보고, 이름 붙이고, 각자 뭐 하는지 정확히 아는 순간 — 이미 다 휘둘러봤으니까.
전체 인벤토리
Abstraction (추상화)
뭐냐: 본질 구조만 남을 때까지 디테일 제거.
이미 한 것:
- 수백 영어 phrasal verb 를 "root verb + 방향 modifier" 로 축소
- 수천 레시피를 "salt + sweet + fat + umami + aroma" 로 축소
- 인내에 대한 모든 격언을 "계속 앞으로, 결과 따라옴" 으로 축소
One-liner: 거푸집 아닌 모든 걸 제거해서 거푸집 찾는 행위.
함정: 너무 추상화하면 신호 잃음. "모든 게 연결됨" 은 기술적으로 사실이고 실용적으로 무용. 좋은 추상화는 invariant — 인스턴스 가로질러 안 변하는 부분 — 보존하고 나머지 버림. 나쁜 추상화는 유용한 거 안 남을 때까지 다 버림.
Inheritance (상속)
뭐냐: 이미 아는 것 위에 새 이해 박음.
이미 한 것:
- 평지 mob 지식으로 비행 변형 즉시 읽음 (80% 상속)
- 새 영어 표현 root verb 에서 상속해서 이해
- 익숙치 않은 cuisine 을 3+2 풍미 모델에서 상속해서 접근
- 손자의 2,500 년 된 framework 을 현대 가족 투자에 적용
One-liner: 누군가 (또는 뭔가) 이 종류의 문제 이미 풀어서 무료로 받는 80%.
아빠 공식: 80% parent class 에서 상속 (이미 아는 것) + 10% 새 것의 polymorphism (다르게 만드는 것) + 10% 안전하게 encapsulate (지금 알 필요 없는 것).
함정: Wrong parent class 에서 상속. 이게 Track 9 의 lesson 전체. 지금은 기억: 살리는 비빌데가 가두는 우리 될 수도.
Polymorphism (다형성)
뭐냐: 같은 뿌리가 맥락에 따라 다른 행동 만듦.
이미 한 것:
- "break" 가 다른 전치사로 완전 다른 의미 만드는 걸 봄
- 같은 3+2 풍미 root 가 한식, 이탈리아, 일본 cuisine 만드는 걸 봄
- "계속 앞으로" 가 나이키, 공자, 노자, 한국 격언의 옷 입은 걸 봄
- 같은 공격 버튼을 단검 vs 대검으로 누름
One-liner: 다른 도메인에서 같은 진리가 알아볼 수 없을 만큼 다르게 보이는 이유 — 그리고 root 보면 그게 안 중요한 이유.
두 sub-도구 (Track 3 에서 잠금 해제):
Overriding — 상속된 구조 유지하면서 부모 구현을 자기 걸로 교체. "break a leg" — literal 의미 (부모) 가 연극 의미로 override, 근데 super() 메아리 희미. 國之大事 → 家族之大事 — 한 글자 override, 도메인 전체 이동. Malenia 의 lifesteal — 표준 "hit 교환" combat 경제가 heal-on-hit 으로 override. One-liner: "이거 상속받았는데, 내 버전은 여기서 다르게 작동".
Overloading — 같은 이름이나 행동이 받는 것에 따라 다른 행동. "break down" — 차, 사람, 문제, 화학 화합물에 적용. 같은 이름, context 별 다른 실행. 공격 버튼 — 같은 입력, 장착한 무기 class 따라 다른 실행. "사랑해" — 부모, 파트너, 친구, 마지막 작별. 같은 세 음절, 완전 다른 무게. One-liner: 같은 인터페이스가 다른 입력에 다르게 응답.
Encapsulation (캡슐화)
뭐냐: 지금 알 필요 없는 것의 뚜껑을 의도적으로 닫음.
이미 한 것:
- Maillard 반응 화학 모르고 요리
- 데미지 공식 모르고 게임
- 어원 역사 모르고 영어 표현 사용
- 수학 구현 안 열고 path integral 의 public interface ("모든 경로 합") 로 얘기
One-liner: Encapsulation 은 뭘 private 으로 둘지 아는 규율 — 존재 안 해서가 아니라, 모든 박스 한 번에 열면 익사하니까.
•
private = 존재함, 지금 안 열기 선택•
null = 존재 안 함Encapsulation 은
private, 절대 null X. "화학 알 필요 없어" 는 지혜. "화학이 안 중요해" 는 오만.함정: 진짜 중요한 걸 encapsulate. Malenia lifesteal 메커닉을 "그냥 어려운 보스" 로 encapsulate 하면 죽음. *뭐* encapsulate 할지 알려면 그 판단 가능할 만큼 충분히 알아야 함. Track 9 가 다시 다룸.
Multiple Inheritance (다중 상속)
뭐냐: 한 부모 class 이상에서 동시 상속.
이미 한 것:
- Warrior + mage + tank 특성 mix 해서 게임 캐릭터 빌드
- 주홍 부패를 늪 + 독 + 고유 부패 메커닉으로 봄
- 대기 원근법을 미술 + 물리 + 불확실성 + 게임 엔진 렌더링으로 이해
- 아빠가 한 대화에서 손자 + 버핏 + 요리 + 게임 끌어오는 걸 봄
One-liner: Multiple inheritance 가 "교차 도메인" 단어가 — 도메인이 한 번도 분리된 적 없었다는 걸 보면 — 불필요해지는 이유.
함정: Diamond Problem — 두 부모 class 가 충돌 instruction 줄 때. "공격적 매매" 와 "인내 투자" 둘 다 상속하면, 어느 게 실행? Multiple inheritance 가 강력한 정확히 그 이유로 위험. 선택적 추출 — 각 부모에서 invariant 만 가져옴, 전체 class X — 이 기술.
Singleton (싱글톤)
뭐냐: 정상 분류 깨는 만큼 고유한 인스턴스. "진짜 좋은 인스턴스" X — 정확히 한 번 존재하는 객체.
이미 한 것:
- Malenia 를 "어려운 보스" 가 아니라 combat 경제 자체를 override 한 보스로 인식
- 전설 고유 무기를 단순 희귀와 구분
- (Preview) Track 10 에서 역사적 인물과 자연 현상에 적용 봄
One-liner: Singleton 은 여러 종 분포의 꼬리를 곱했을 때 얻는 것 — 교차가 너무 좁아 한 인스턴스만 들어감.
함정: 특별해 보인다고 모든 걸 singleton 이라 부름. 대부분 "고유한" 것은 사실 정상 class 의 high-tier 인스턴스. 진짜 singleton 은 class 계층 자체를 깸. 부모 class + 약간 stat 부스트로 완전 묘사 가능하면 singleton X. 이 한 객체만을 위해 새 class 필요하면 — 그럴 수도.
No Final Class
뭐냐: 어떤 class 도 궁극, 불변 진리로 선언 거부.
이미 한 것:
- 모든 "명백한" 진리가 시대 가로질러 계속 재표현되는 걸 봄 (final 아님 — 계속 진화)
- 게임 메타가 어떻게 시프트하는지 봄 (오늘의 최적 빌드가 내일 패치)
- (Preview) Track 10 에서 과학, 원자, 우주 자체에 적용 봄
One-liner: final class 는 "이걸 override 할 게 영원히 없을 거" 라는 선언. 과학, 역사, 우주 자체가 그렇지 않다 함.
표
참조용. 인벤토리 화면에 핀.
| 도구 | One-liner | 처음 등장 |
|---|---|---|
| Abstraction | 거푸집 아닌 모든 걸 제거해서 거푸집 찾기 | Track 1 (The Straw) |
| Inheritance | 이미 풀린 거에서 무료로 받는 80% | Track 2 (Evolution) |
| Polymorphism | 같은 뿌리, context 별 다른 행동 | Track 2 (Evolution) |
| Overriding | 이거 상속받았는데, 내 버전은 여기서 다르게 작동 | Track 3 (Language) |
| Overloading | 같은 인터페이스, 입력별 다른 실행 | Track 3 (Language) |
| Encapsulation | 지금 필요 없는 것 뚜껑 닫기 (private, null 아님) | Track 2 (Evolution) |
| Multiple Inheritance | 한 번에 한 부모 class 이상에서 가져옴 | Track 5 (Game builds) |
| Singleton | 정상 분류 깰 만큼 고유 | Track 5 (Malenia) |
| No Final Class | 아무것도 마지막 말 X | Track 2 (Evolution) |
거푸집 사냥
이 track 자체가 메타. 위 도구 표 자체가 거푸집 — Tracks 0-6 에서 한 모든 것의 압축된 추상화. 각 행이 "개념 → one-liner → 처음 사용 위치" 패턴의 인스턴스.
그리고 이 quest 의 구조 — 경험 먼저, 이름 나중 — 자체가 root class 의 인스턴스:
이해는 정의 X, 실천에서 옴.
이게 學 vs 習 의 같은 root class. "레시피 따르는 사람 vs 풍미 이해하는 사람" 의 같은 root class. 매 Track 의 Mold Hunt 의 같은 root class.
보이지? 한 거푸집. 이 quest 전체가 그것에서 찍힘.
피파의 고백
Quest Prompt — 자기 AI 와 대화하기
통합 연습:
"시나리오 줄게. 모든 OO 도구 식별 — 근데 기술 이름 먼저 X. 일반 언어로 뭐 일어나는지 묘사, 그 후 내가 도구 이름 붙임.
시나리오: 방콕 길거리 음식 vendor 와 파리 미슐랭 셰프 둘 다 훌륭한 음식 만듦. 방콕 vendor 는 정식 훈련 X. 파리 셰프는 15 년 훈련. 음식 맛은 완전 다른데 둘 다 작동. 둘이 하는 거가 구조적으로 같은 게 뭐고, 다른 게 뭐고, 둘 다 자기 일하는 데 알 필요 없는 게 뭔지 설명."
AI 응답 후 직접 도구 매핑:
- 둘이 공유하는 root class 는? (Abstraction)
- 방콕 vendor 가 전통에서 상속받은 건 뭐, 파리 셰프가 정식 훈련에서 상속받은 건 뭐? (Inheritance — 다른 부모, 같은 목적지)
- 음식 맛 다르게 만드는 건? (Polymorphism)
- 각자 훈련에서 override 한 특정 기법은? (Overriding)
- 둘 다 알 필요 없는 건? (Encapsulation)
- 둘 중 누가 singleton 이거나 각자 class 의 인스턴스인지? (Singleton 체크)
너가 도구 이름 붙임. AI 가 X. 그게 연습. 이름은 자기 손에서 와야지, 정의 lookup 에서 X.