1장. 추상이란
0장에서 “추상화는 인지 비용을 낮추는 기술”이라고 했어요. 그렇다면 추상은 뭘까요?
What과 How를 분리하는 것이에요. What은 “뭘 하는가”, How는 “어떻게 하는가”예요. 이 둘이 분리되면 What만 보면 돼요. How까지 안 봐도 되니까 인지 비용이 줄어들어요.
이 장에서는 추상이 무엇인지 정의하고, What이 가진 성질(안정성, 분야 독립성)을 살펴봐요. 그리고 여러 추상이 모이면 어떤 구조가 생기는지도 다뤄요.
그림으로 보는 추상
코드 얘기 전에, 그림 하나 볼게요.
피카소가 소를 그린 연작이 있어요. 처음에는 사실적인 소예요. 근육, 털, 눈동자까지 다 있어요. 그런데 단계를 거칠수록 디테일이 사라져요. 마지막에는 선 몇 개만 남아요.
그런데 신기하게도, 마지막 그림을 봐도 “소”라는 걸 알아요.
이게 추상이에요. 디테일(How)은 다 사라졌는데, 본질(What)은 남아요.
피카소가 한 건 “어떤 선이 소를 소답게 만드는가”를 찾은 거예요. 나머지는 다 버려도 되는 것(How)이었고, 남은 선이 본질(What)이었어요.
(궁금하면 “피카소 소 연작”으로 검색해보세요.)
정의: What과 How의 분리
추상은 What과 How가 분리된 상태예요. 분리되기 전에는 뒤섞여 있어요. 추상화를 하면 이 둘이 분리돼요.
What은 의도, 목적, 역할이에요. How는 구현, 세부사항, 방법이에요. 예시로 살펴볼게요.
알람 시계
알람을 맞출 때 뭘 생각하나요? “7시에 깨워줘.” 이게 다예요.
어떻게 깨우는지는 바뀔 수 있어요. 소리로 깨우든, 진동으로 깨우든, 화면이 켜지든. 하지만 “특정 시간에 알려준다”는 건 그대로예요.
이게 What/How 분리예요.
•
What: 특정 시간에 알려준다
•
How: 소리, 진동, 화면 켜기…
How는 바뀔 수 있지만, What은 유지돼요.
에스컬레이터
에스컬레이터도 분해해볼게요. 에스컬레이터를 이루는 요소들을 나열해보면:
•
모터가 있다
•
계단이 움직인다
•
손잡이가 같이 움직인다
•
센서가 사람을 감지한다
•
비상 정지 버튼이 있다
이 중에서 What은 뭘까요? 다 필요해 보여요. 하지만 진짜 본질을 찾으려면, 한 가지 질문이 도움돼요.
“이게 없어도 에스컬레이터인가?”
모터가 없어도? 손으로 돌리는 에스컬레이터는 본 적 없지만, 이론상 가능해요. 센서가 없어도? 항상 돌아가는 에스컬레이터도 있어요. 손잡이가 없어도? 불편하지만 에스컬레이터긴 해요.
그러면 뭐가 있어야 에스컬레이터일까요?
구분 | 내용 |
What | 높이 차이를 이동시켜준다 |
How | 모터, 계단, 손잡이, 센서, 비상 정지… |
이게 없으면 에스컬레이터가 아니에요. 1층에서 2층으로 올려주거나, 2층에서 1층으로 내려주거나. 높이 차이를 이동시켜준다가 본질이에요.
여기서 재미있는 발견이 있어요. 엘리베이터도, 케이블카도 같은 What을 가진다는 거예요.
대상 | What | How |
에스컬레이터 | 높이 차이를 이동시켜준다 | 계단 위에 서서 |
엘리베이터 | 높이 차이를 이동시켜준다 | 상자에 갇혀서 |
케이블카 | 높이 차이를 이동시켜준다 | 좌석에 앉아서 |
What이 같고 How가 다른 사례예요. 표면은 전혀 달라 보이지만, 깊은 구조(What)는 같아요. 이걸 기억해두세요. 나중에 “분야 독립”에서 다시 나와요.
정리
이게 추상이에요. What과 How가 분리된 상태.
•
알람 시계에서: What만 알면 쓸 수 있어요. 어떻게 깨우는지 몰라도 알람을 맞출 수 있어요.
•
에스컬레이터에서: What이 본질이에요. 이게 없으면 에스컬레이터가 아니에요.
두 예시가 보여주는 건 같아요. What과 How를 분리하면, What만으로 이해하거나 사용할 수 있다는 것.
의자를 생각해봐요. 세상에는 수많은 의자가 있어요. 나무 의자, 플라스틱 의자, 사무용 의자, 흔들의자. 생긴 게 다 달라요. 그런데 우리는 이것들을 전부 “의자”라고 불러요. 어떻게 가능할까요?
플라톤은 이렇게 설명했어요. 개별 의자들 너머에 “의자임” 자체가 있다고. 이것을 이데아라고 불렀어요. 개별 의자들(How)에서 “의자임”(What)을 추출해낸 거예요.
2500년 전에도 사람들은 추상화를 하고 있었어요.
What의 성질
안정: How가 바뀌어도 What은 유지된다
What과 How가 분리되면 흥미로운 패턴이 보여요. What은 잘 안 바뀌고, How는 자주 바뀐다는 거예요.
알람으로 다시 생각해볼게요.
What: 특정 시간에 알려준다 (안정)
│
├─ How: 벨이 울린다 (1980년대)
├─ How: 소리 + 진동 (2000년대)
├─ How: 소리 + 진동 + 스누즈 + 반복 (2020년대)
└─ How: ??? (2040년대)
Plain Text
복사
알람의 What은 “특정 시간에 알려준다”예요. 1980년대 탁상시계 알람도, 2020년대 스마트폰 알람도, What은 같아요. 하지만 How는 완전히 달라졌어요.
앞으로도 How는 계속 바뀔 거예요. 뇌에 직접 신호를 보내는 알람이 나올 수도 있어요. 하지만 What은 그대로예요.
에스컬레이터도 마찬가지예요. “높이 차이를 이동시켜준다”는 What은 100년 전이나 지금이나 같아요. 하지만 How는 계속 바뀌었어요. 목재 계단에서 금속 계단으로, 수동 스위치에서 자동 센서로.
아이폰 홈 버튼
아이폰도 마찬가지예요.
•
초기 아이폰: 물리 버튼을 눌러서 홈으로
•
아이폰 X 이후: 스와이프 제스처로 홈으로
•
미래에는: 음성? 시선? 뇌파?
How는 계속 바뀌어요. 버튼 → 제스처 → ???. 하지만 “홈으로 이동한다”는 What은 그대로예요.
What: 홈으로 이동한다 (안정)
│
├─ How: 물리 버튼 (2007~2017)
├─ How: 스와이프 제스처 (2017~)
└─ How: ??? (미래)
Plain Text
복사
알람 시계와 같은 패턴이에요. What이 안정적이면, How가 바뀌어도 사용자는 헷갈리지 않아요. “홈 가는 법”만 새로 배우면 되니까요.
이게 What/How 분리의 첫 번째 이득이에요. 변경 비용이 줄어들어요. How가 바뀌어도 What을 쓰는 쪽은 영향을 안 받아요. 바뀐 부분만 보면 되니까, 전체를 다시 읽는 비용이 사라져요.
분야 독립: What은 다른 맥락에서도 적용된다
앞에서 에스컬레이터, 엘리베이터, 케이블카가 같은 What을 가진다고 했어요. “높이 차이를 이동시켜준다.”
이게 왜 가능할까요? What은 구체적인 구현(How)에서 벗어나 있기 때문이에요. 에스컬레이터의 계단, 엘리베이터의 상자, 케이블카의 좌석. How는 전부 다르지만, What은 같아요.
What이 추상적이기 때문에 특정 분야에 묶이지 않아요. 그래서 다른 맥락에서도 같은 What을 발견할 수 있어요.
[What] 높이 차이를 이동시켜준다
│
├─ [분야 A] 에스컬레이터
├─ [분야 B] 엘리베이터
└─ [분야 C] 케이블카
Plain Text
복사
이게 두 번째 성질이에요. What은 분야에 독립적이에요. 한 맥락에서 발견한 What이 다른 맥락에서도 적용될 수 있어요. 새로 배우는 비용이 줄어들어요. 이미 아는 What이니까요.
더 극단적인 예시를 볼게요. 위상수학에서 유명한 농담이 있어요. “위상수학자는 도넛과 커피 머그를 구분하지 못한다.”
왜일까요? 위상수학에서는 찢거나 붙이지 않고 늘이거나 줄여서 변형할 수 있으면 “같은 것”으로 봐요. 도넛에도 구멍이 하나, 머그 손잡이에도 구멍이 하나. 위상수학적으로 같아요. 심지어 인간의 몸도 (입에서 항문까지 연결된 관) 같은 구조예요.
[표면 - How]
도넛: 둥글고, 달고, 먹는 것
머그: 원통형, 마시는 데 쓰는 것
인간: 복잡한 신체 구조
[본질 - What]
"구멍이 하나인 연결된 면"
Plain Text
복사
표면(How)은 전혀 달라요. 하지만 깊은 구조(What)가 같으면, 전혀 다른 분야에서도 같은 패턴을 발견할 수 있어요. 이게 분야 독립의 힘이에요.
추상들의 구조
지금까지 개별 추상의 성질(안정성, 분야 독립성)을 살펴봤어요. 이제 시야를 넓혀서, 여러 추상이 모이면 어떤 구조가 생기는지 볼게요.
계층: 수직 관계 (상위 How = 하위 What)
레스토랑 예시를 더 확장해볼게요.
주방장 레벨
├── What: "파스타 만들기"
└── How: "면 삶기 + 소스 + 플레이팅"
↓ (주방장의 How가 요리사의 What이 됨)
요리사 레벨
├── What: "면 삶기"
└── How: "물 끓이기, 소금, 면 투입..."
Plain Text
복사
What과 How는 고정되지 않아요. 한 레벨에서 How인 것이, 그 아래 레벨에서는 What이 돼요.
마트료시카 인형처럼, 열면 또 열려요. How를 열면 그 안에 또 What이 있어요. 이걸 계층이라고 불러요. 추상의 수직적 관계예요.
협력: 수평 관계
계층은 수직 관계였어요. 하지만 추상들은 수평으로도 관계를 맺어요. 레스토랑을 다시 볼게요. 이번에는 수평으로.
[주방장] ←→ [서빙 담당] ←→ [계산 담당]
↓ ↓ ↓
요리 만들기 음식 전달하기 결제 처리하기
Plain Text
복사
주방장, 서빙 담당, 계산 담당. 각자 다른 What을 가져요.
•
주방장의 What: “요리를 만든다”
•
서빙의 What: “음식을 전달한다”
•
계산의 What: “결제를 처리한다”
이들은 서로의 How를 몰라요. 주방장은 서빙이 어떻게 음식을 나르는지 몰라도 돼요. 서빙은 주방장이 어떻게 요리하는지 몰라도 돼요. 각자의 What만 알면 협력할 수 있어요.
이게 협력이에요. 여러 What들이 각자의 역할을 갖고, 메시지로 소통해요.
주방장 → (요리 완성) → 서빙 → (음식 전달) → 손님
Plain Text
복사
주방장은 “요리 완성됨”이라는 메시지만 보내요. 서빙은 그 메시지를 받아서 자기 일을 해요. 서로의 How에 개입하지 않아요.
좋은 협력 vs 나쁜 협력
좋은 협력:
•
각 추상이 명확한 역할(What)을 가짐
•
서로의 How를 몰라도 됨
나쁜 협력:
•
한 추상이 너무 많은 일을 함 (주방장이 서빙도 하고 계산도 하고)
•
서로의 How를 알아야 협력 가능 (주방장이 서빙 동선을 알아야 요리 가능?)
인간의 인지 자원은 제한되어 있어요. 인간의 단기기억은 동시에 5±2개의 대상만을 동시에 기억할 수 있을 만큼 협소해요.
만약 주방장이 서빙 동선, 계산 방식, 재고 관리까지 다 알아야 요리할 수 있다면? 머릿속이 터져요. 이게 인지 부하예요.
•
What만 알면 됨 → 부하 낮음
•
How까지 알아야 함 → 부하 폭발
좋은 협력은 서로의 What만 알면 되는 구조예요. How는 각자 알아서.
계층이 수직적 관계라면, 협력은 수평적 관계예요.
축척: 보는 눈의 높이
계층과 협력은 추상들의 관계였어요. 이제 한 가지 더 — 어느 높이에서 볼 것인가예요.
같은 대상, 다른 계층
지도를 떠올려보세요.
•
1:50,000 지도에서는 서울이 하나의 점이에요.
•
1:10,000 지도에서는 구 단위가 보여요.
•
1:1,000 지도에서는 골목길도 보여요.
같은 서울인데, 축척에 따라 보이는 게 달라요.
레스토랑도 마찬가지예요.
[시스템 계층]
레스토랑 ─── 은행 ─── 마트
↓ 확대
[팀 계층]
주방팀 ─── 홀팀 ─── 경영팀
↓ 확대
[개인 계층]
주방장 ─── 보조 요리사 ─── 설거지 담당
Plain Text
복사
각 계층에서 보이는 것이 What이고, 그 안에 들어가면 보이는 것이 How예요. 앞서 수직 관계에서 본 것과 같아요 — 축척을 바꾸면 What과 How가 바뀌어요.
이 장의 정리
추상이 무엇인지 정의했어요.
개념 | 설명 |
정의 | 추상 = What과 How가 분리된 상태 |
What의 성질 | 안정적 + 분야 독립적 |
추상들의 구조 | 계층(수직) + 협력(수평) + 축척 |
[추상화 전] [추상화 후]
What과 How가 뒤섞임 What과 How가 분리됨
→ 전체를 읽어야 함 (비용 ↑) → What만 보면 됨 (비용 ↓)
→ 변경이 퍼짐 (비용 ↑) → 변경이 수렴함 (비용 ↓)
→ 새로 배워야 함 (비용 ↑) → 이미 아는 What 재사용 (비용 ↓)
Plain Text
복사
이제 “추상”이 뭔지는 알았어요. 다음 장에서는 이 상태를 어떻게 만드는지 — 즉, “추상화”가 무엇인지 다뤄요.
