Search

1장_추상이란

1장. 추상이란

0장에서 [코드[[추상]화]]의 구조를 봤어요. 가장 안쪽에 추상이 있었어요. 이 장에서는 추상이 무엇인지 정의해요.

정의: 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는 계속 바뀌었어요. 목재 계단에서 금속 계단으로, 수동 스위치에서 자동 센서로.
이게 What/How 분리의 첫 번째 이득이에요. 변경이 퍼지지 않아요. How가 바뀌어도 What을 쓰는 쪽은 영향을 안 받아요.

분야 독립: What은 다른 맥락에서도 적용된다

앞에서 에스컬레이터, 엘리베이터, 케이블카가 같은 What을 가진다고 했어요. “높이 차이를 이동시켜준다.”
이게 왜 가능할까요? What은 구체적인 구현(How)에서 벗어나 있기 때문이에요. 에스컬레이터의 계단, 엘리베이터의 상자, 케이블카의 좌석. How는 전부 다르지만, What은 같아요.
What이 추상적이기 때문에 특정 분야에 묶이지 않아요. 그래서 다른 맥락에서도 같은 What을 발견할 수 있어요.
[What] 높이 차이를 이동시켜준다 │ ├─ [분야 A] 에스컬레이터 ├─ [분야 B] 엘리베이터 └─ [분야 C] 케이블카
Plain Text
복사
이게 두 번째 성질이에요. What은 분야에 독립적이에요. 한 맥락에서 발견한 What이 다른 맥락에서도 적용될 수 있어요.
더 극단적인 예시를 볼게요. 위상수학에서 유명한 농담이 있어요. “위상수학자는 도넛과 커피 머그를 구분하지 못한다.”
왜일까요? 위상수학에서는 찢거나 붙이지 않고 늘이거나 줄여서 변형할 수 있으면 “같은 것”으로 봐요. 도넛에도 구멍이 하나, 머그 손잡이에도 구멍이 하나. 위상수학적으로 같아요. 심지어 인간의 몸도 (입에서 항문까지 연결된 관) 같은 구조예요.
[표면 - How] 도넛: 둥글고, 달고, 먹는 것 머그: 원통형, 마시는 데 쓰는 것 인간: 복잡한 신체 구조 [본질 - What] "구멍이 하나인 연결된 면"
Plain Text
복사
표면(How)은 전혀 달라요. 하지만 깊은 구조(What)가 같으면, 전혀 다른 분야에서도 같은 패턴을 발견할 수 있어요. 이게 분야 독립의 힘이에요.

추상들의 구조

What/How 분리가 개별 추상에 주는 성질을 알았어요. 이제 여러 추상이 모이면 어떤 구조가 생기는지 볼게요.

계층: 수직 관계 (상위 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를 알아야 협력 가능 (주방장이 서빙 동선을 알아야 요리 가능?)
인지과학 박스: 인지 부하 (Cognitive Load)
인간의 인지 자원은 제한되어 있어요. 인간의 단기기억은 동시에 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만 보면 됨 → 변경이 퍼짐 → 변경이 수렴함 → 맥락 종속적 → 다른 맥락에서도 적용 가능
Plain Text
복사
이제 “추상”이 뭔지는 알았어요. 다음 장에서는 이 상태를 어떻게 만드는지 — 즉, “추상화”가 무엇인지 다뤄요.