
나무를 보는 서양인과 숲을 보는 동양인: 객체 지향 설계에 숨겨진 「인지」와 「철학」의 경계선
요약
객체 지향 설계(OOAD)의 근간이 되는 사고방식을 인지심리학과 철학적 관점에서 분석합니다. 서양의 분류 중심 사고와 동양의 관계 중심 사고의 차이를 통해 캡슐화와 클래스 설계의 원리를 재해석합니다.
핵심 포인트
- 객체 지향 설계는 서양의 분류 중심 인지 프로세스와 유사함
- 클래스 설계는 아리스토텔레스의 '형상(Eidos)' 개념과 맥을 같이 함
- 서양적 사고는 개별 객체의 속성과 분류에, 동양적 사고는 관계와 맥락에 주목함
- 캡슐화와 책임 분리는 대상을 독립된 실체로 보는 서양 철학의 영향이 반영됨
엔지니어로서 설계 업무에 종사하다 보면, 「객체 지향 (Object-Oriented)」이라는 개념이 놀라울 정도로 매끄럽게 이해되는 때가 있는가 하면, 반대로 「왜 이렇게 빙빙 돌아서 생각하는가」라며 위화감을 느끼는 순간을 마주하곤 합니다.
이 위화감의 정체를 찾는 힌트가 인지심리학자 리처드 니스벳(Richard Nisbett) 씨의 저서 『나무를 보는 서양인, 숲을 보는 동양인』(ISBN 978-4478910184)에 있습니다. 이 책에서는 서양과 동양의 「세상을 바라보는 방식」의 근본적인 차이가 논의되고 있습니다.
본고에서는 객체 지향 분석 설계 개발(Object-Oriented Analysis and Design and Development)을 단순한 기술론으로서가 아니라, 인문학·철학의 맥락에서 재정의하여 우리가 모델링을 할 때 행하고 있는 「사고의 정체」를 밝혀내고자 합니다.
결론부터 말하자면, 객체 지향 분석 설계 개발이라는 사상은 서양의 역사적·문화적 배경이 영향을 미쳤을 가능성이 있습니다.
실제로, 『객체 지향 방법론의 세계: 비교와 해설』(ISBN 49313356184)(P.129)이라는 서적에는 OMT, OOSA, OOSE, booch를 비롯한 설계 기법들이 등장하는데, 그 계보를 따라가 보면 (조사한 범위 내에서는) 모두 서양에서 태어났으며 동양에서는 태어나지 않았음을 알 수 있습니다.
| 기법 | 국가 |
|---|---|
| OMT | 미국 |
| ... | |
| 그 근거는 앞서 언급한 『나무를 보는 서양인, 숲을 보는 동양인』(P.159)에 기록된 인지 프로세스의 차이에 있습니다. |
「분류」의 서양, 「관계」의 동양
책에서는 아이에게 「소·닭·풀」을 보여주고, 「동그라미로 소와 둘 중 하나를 둘러싼다면 어느 쪽인가?」라고 질문하는 실험이 소개되어 있습니다.
| 지역 | 해답 | 의미 | 해설 |
|---|---|---|---|
| 서양적인 해답 | 닭 | 걸어, 자, 먹어 | 공통된 동작에 주목하여 카테고리 (클래스 (Class))로 분류합니다 |
| 동양적인 해답 | 풀 | 소는 풀을 먹으니까 | 대상 간의 관계성 (메시징 (Messaging))에 주목합니다 |
또한, 상공에서 방향을 바꾸는 풍선에 대해,
| 지역 | 해답 | 해설 |
|---|---|---|
| 서양적인 해답 | 그(풍선)가 저쪽으로 가고 싶어 했다 | 대상에 의지나 문맥을 투영합니다 |
| 동양적인 해답 | 상공에서 바람이 바뀌었다 | 대상 간의 관계성 (메시징 (Messaging))에 주목합니다 |
주변이 불쾌한 분위기 속에서 혼자만 웃고 있는 인물에 대해서도,
| 지역 | 해답 | 해설 |
|---|---|---|
| 서양적인 해답 | 본인이 웃고 있으니까 행복하다 | 개체의 표현만을 평가합니다 |
| 동양적인 해답 | 행복해 보이지만, 뭔가 상태가 이상하다 | 전체적인 장 (컨텍스트 (Context))으로부터 판단합니다 |
대상을 주변으로부터 분리하여 그것 자체를 「독립된 실체」로서 분석하고, 내부에 속성을 가두는――. 이러한 캡슐화 (Encapsulation)나 책임의 분리 (Separation of Concerns)라는 사상은 서양 철학과의 유사성이 보이는 듯합니다.
UML의 클래스 다이어그램 (Class Diagram)을 작성할 때, 우리는 무의식적으로 「눈앞의 구체적인 대상」으로부터 「공통되는 본질」을 뽑아내는 작업을 수행합니다. 이 프로세스는 고대 그리스의 철학자 아리스토텔레스가 제창한 **「형상 (에이도스 (Eidos))」**의 개념과 놀라울 정도로 흡사합니다.
실체와 형상의 유사성
아리스토텔레스는 개별적인 물체에는 그것을 그것답게 만드는 「형상 (본질·설계도)」이 깃들어 있다고 생각했습니다.
아리스토텔레스의 관점: 눈앞에 있는 「개별적인 책상」은 그 배후에 있는 「책상이라는 형상 (타입 (Type))」을 구현한 것이다.
객체 지향의 관점: 메모리 상의 「개별적인 인스턴스 (Instance)」는 설계 시에 정의한 「클래스 (타입 (Type))」를 구체화한 것이다.
속성이나 조작을 정의하는 행위는 아리스토텔레스가 『범주론 (Categories)』에서 시도했던 분류학의 현대판이라고 할 수 있습니다. 우리는 모델링을 통해 의도치 않게 수천 년 전의 철학자와 같은 시각으로 세계를 해체하고 있는 것입니다.
| 범주 | 내용 |
|---|---|
| 실체 | 사물 그 자체 |
| ... | |
| Coad | 의미 |
| --- | --- |
| 유형물 | 현실의 사물 |
| ... | |
| 서양적인 분류 (상속 (Inheritance))에 기반한 개발이 실제 생물 (객체 (Object))의 다양성에 어떻게 대응하는지 구체적인 사례로 살펴보겠습니다. |
「동물」이라는 기저 클래스 (Base Class)로부터 「사람」, 「소」, 「새」를 파생시키고, 공통 메서드 (Method)를 정의합니다.
「먹다」 메서드의 오버라이드 (Override)
| 대상 | 동작 |
|---|---|
| 사람 | 일반적인 저작·소화 처리를 작성합니다 |
| ... | |
| 「배설」 메서드의 다형성 (폴리모피즘 (Polymorphism)) |
환경이나 제약에 따라 내부 구현 (로직 (Logic))은 극적으로 변화합니다.
| 대상 | 동작 |
|---|---|
| 포유류 | 암모니아를 요소로 바꾸어 액체로서 배설합니다 |
| 조류 | 비행을 위해 극한까지 경량화를 도모했습니다. 수분을 유지하여 무거워지는 것을 방지하기 위해, 요를 고체(요산 (Uric acid))로 만들어 분변과 함께 배설합니다 |
「번식」 메서드의 특수해
| 대상 | 동작 |
|---|---|
| 일반 | 해야 할 일을 한다 |
| ... |
흰동가리(Clownfish)의 생태는 오랫동안 논의되어 온 "'장(場, Field)'은 객체인가?"라는 질문에 하나의 해답을 제시했다고 생각합니다.
「자는」 메서드의 특수해
| 대상 | 동작 |
|---|---|
| 인간이나 소나 새 | "정지하여 잔다"라는 공통 처리를 부모 클래스 (Parent class)로부터 상속 (Inheritance)받을 수 있습니다 |
| 참치 | 헤엄침으로써 아가미로 산소를 보내는 "충돌 강제 환기 (Ram ventilation)"라는 호흡법을 취하기 때문에, 정지하면 질식합니다. 따라서 아래의 가설 중 하나에 기반한 특수한 동작을 기술해야 합니다 |
참치의 수면 가설
| 가설 | 동작 |
|---|---|
| 반구 수면설 | 한쪽 뇌를 휴식시키면서, 다른 쪽 뇌로 계속 헤엄침 (비동기 병렬 처리 (Asynchronous parallel processing)와 같은 동작) |
| ... |
이와 같이, 공통된 인터페이스 (Interface)를 유지하면서, 생존 전략상 특수화 (Specialization)가 필요한 부분만을 변경한다. 이것이야말로 OOP의 묘미입니다.
우리가 평소 당연하게 사용하고 있는 UML (Unified Modeling Language). 하지만 1990년대 초반의 객체 지향계는 각자의 사상을 내건 방법론 (Methodology)이 난립하던, 그야말로 "대항해 시대"였습니다.
이번에 UML 탄생 직전의 귀중한 비교 자료(객체 지향 시스템 개발)를 바탕으로, 당시 4대 기법 (Shlaer & Mellor / OMT / Coad & Yourdon / Booch)의 사상, 용어, 기반, 그리고 개발 프로세스 (Development process)의 차이를 철저히 분석했습니다.
코드 (구현 (Implementation))의 제약에 얽매이기 쉬운 현대이기에 더욱, 그들이 "현실 세계를 어떻게 잘라내려 했는가"라는 광기 어린 모델링 (Modeling) 사상은 도메인 주도 설계 (DDD (Domain-Driven Design))나 클린 아키텍처 (Clean Architecture)로 통하는 강렬한 깨달음을 줍니다.
같은 "객체 지향"이라 하더라도, 기법에 따라 사용하는 용어 (메타 모델 (Meta-model))에는 명확한 차이가 있었습니다. 이는 기법별로 "시스템을 파악하는 무게중심"을 나타냅니다.
그림: 각 기법의 용어 (용법)의 차이
| 개념 | Shlaer & Mellor | OMT | Coad & Yourdon | Booch |
|---|---|---|---|---|
| 클래스 (Class) | ||||
| 객체 (Object) | 클래스 | 클래스 | 클래스 | |
| 속성 (Attribute) | ||||
| 속성 (Attribute) | 속성 | 속성 | 필드 (Field) | |
| 메서드 (Method) | ||||
| 프로세스 모델 | 조작 (Operation) | 서비스 (Service) | 조작 (Operation) | |
| 메시지 (Message) | ||||
| 이벤트 (Event) | 사상 (Event) | 메시지 연결 | 메시지 | |
| 인스턴스 (Instance) | ||||
| 인스턴스 (Instance) | 인스턴스 | 객체 (Object) | 객체 (Object) | |
| 계층 (Hierarchy) | ||||
| 상위 타입-하위 타입 | 슈퍼 클래스-서브 클래스 | Gen-Spec | 상위 클래스-하위 클래스 | |
| 전체-부분 (Whole-Part) | ||||
| 연관 객체 | 집약 (Aggregation) | Whole-Part | using 관계 | |
| 상속 (Inheritance) | ||||
| 연관 객체 | 슈퍼 클래스/서브 클래스 | Gen-Spec | 상위 클래스/하위 클래스 |
Shlaer & Mellor (데이터 모델링 지향):
클래스라는 추상 개념보다 "현실 세계의 객체 (실체 (Entity))"를 중시하는 경향이 있습니다. "상속"이나 "전체-부분"과 같은 구조도 관계형 데이터 모델 (Relational data model)처럼 "연관 객체"라는 균질한 관계성으로 표현하려는 특징이 있습니다. -
Booch (풍부한 모델 표현·설계 지향):
"필드 (Field)"나 "using 관계"와 같이, 프로그래밍 언어 (특히 C++나 Ada)의 구현이나 메모리 배치 (Memory layout)를 의식하기 쉬운 용어들이 보입니다. 단순히 설계 특화라기보다는, 시스템을 정밀하게 표현하기 위한 매우 풍부한 어휘를 가졌던 기법입니다.
객체를 검출한 후에 어떤 순서로 모델링을 진행할 것인가 (사양화 프로세스 (Specification process))에도 각 기법의 개성이 보입니다.
그림: 3대 기법의 사양화 프로세스
| 기법 | 첫 단계 (구조의 정의) | 다음 단계의 경향 |
|---|---|---|
| Shlaer & Mellor | 1. 오브젝트 탐지 2. [속성]의 정의 | 우선 오브젝트의 내용(속성)을 정의하고, 오브젝트 사양서(Object Specification)를 확정한 뒤 계층이나 관련을 정의해 나가는 견고한 바텀업 (Bottom-up) 방식의 접근법. |
| OMT | 1. 오브젝트 탐지 2. [관련]의 정의 | 오브젝트를 발견하면, 우선 명사 간의 「연결(관련)」을 우선적으로 맺어 전체적인 컨텍스트 (Context)를 정의하는 접근법. |
| Coad & Yourdon | 1. 오브젝트 탐지 2. [구조]의 정의 | 발견 즉시 Gen-Spec (상속)이나 Whole-Part (집약)와 같은 구조로 구체화한다. 오브젝트 지향 언어와의 매핑이 직관적인 접근법. |
시스템을 「구조 (정적)」「관련 (동적)」「메서드 (기능)」의 세 가지 관점에서 어떻게 문서화할 것인가. 당시의 비교표를 통해 각각의 강점과 과제가 드러납니다.
그림: 4대 기법의 특징과 과제 (요약)
| 기법 | 강점 및 높게 평가된 점 | 당시의 주요 과제 |
|---|---|---|
| Shlaer & Mellor | 오브젝트의 관계 표현이 풍부함. 문서 체계 (정보 구조도 등)가 매우 탄탄함. | 메서드 표현이 약하여, 오브젝트 지향 설계 (OOD)로의 연결이 명확해지기 어려움. |
| OMT | 동적 모델 (Statechart 채택 등)의 구축 절차가 확립되어 있어, 분석~설계의 통합성이 높음. | 기법의 습득 비용이 높고, 분석 단계의 충실함에 비해 설계 단계의 기술이 상대적으로 약함. |
| Coad & Yourdon | 언어 기반의 의미 모델이며, OOD로의 연결이 매끄러움. 프로세스가 경량이며 자유도가 높음. | 동적 모델의 표현이 단순하기 때문에, 복잡한 시스템의 사양화에 있어서는 구체성이 결여되는 면이 있음. |
| Booch | 주요 언어를 커버하며, 설계 및 구현에 필요한 대부분의 도표 (클래스 다이어그램, 타이밍 다이어그램 등)를 그릴 수 있는 표현력. | 사양화 (분석) 프로세스가 명확하게 규정되어 있지 않아, 분석 단계에 대한 지원이 부족한 경향이 있음. |
※주석: OMT의 동적 모델이 높게 평가받은 배경에는, 데이비드 해럴 (David Harel)이 제창한 「Statechart (상태 천이도)」를 발 빠르게 도입했다는 사실이 크게 기여하고 있습니다.
이러한 기법들은 최종적으로 **UML (Unified Modeling Language)**이라는 하나의 규격으로 수렴되어 갑니다.
하지만 이것은 단순히 「우수한 것이 자연스럽게 남았다 (진화론)」는 식의 단순한 이야기가 아닙니다. 1990년대 후반, 오브젝트 지향 기술의 보급에 따라 툴 벤더와 개발 현장에서 「표기법 (모델링 언어)의 통일」을 요구하는 강력한 산업적·시장적 필요성이 높아졌습니다.
그 결과, OMG (Object Management Group)에 의한 표준화 프로세스 아래, 주요 기법의 제창자들 (Three Amigos라고 불리는 James Rumbaugh, Grady Booch, Ivar Jacobson)이 Rational 사로 결집합니다.
- OMT 기법으로부터는 「오브젝트 다이어그램」이나 「Statechart」와 같은 통합적인 뷰 (View)를.
- Booch 기법으로부터는 설계 단계에 견딜 수 있는 표현력이 풍부한 「클래스 다이어그램」 등의 기법을. (본 기사에는 등장하지 않음)
- OOSE 기법으로부터는 「유스케이스 (Use Case)」의 개념을. (본 기사에는 등장하지 않음)
- CRC 카드 기법은 예전부터 의인화법이라고 불려 왔습니다. 하지만 이 기법은 디자인 패턴이나 상속에는 매우 취약합니다.
UML은 각 기법이 가지고 있던 「강점」을 산업적인 합의 하에 통합하여 표준 언어로 책정되었다는 역사적 배경을 가지고 있습니다.
「오브젝트 지향 분석·설계」란 결코 단일한 정답이 있는 것이 아니라, 「분석 (현실 세계를 어떻게 파악할 것인가)」「설계 (구조를 어떻게 정리할 것인가)」「구현 (언어로 어떻게 옮길 것인가)」 중 어디에 비중을 두느냐에 따라 모습을 바꾸는 접근법들의 집합입니다.
당시의 기법들이 안고 있던 「현실 세계의 복잡한 관련을 어떻게 표현할 것인가」, 「동적인 동작을 어떻게 가시화할 것인가」라는 고민은, 현대의 도메인 주도 설계 (DDD)나 클린 아키텍처 (Clean Architecture)의 실천에 있어서도 여전히 우리 엔지니어들에게 질문을 던지는 본질적인 테마라고 할 수 있습니다.
하지만 서양적인 「나무를 보는 (개체를 보는)」 시점만으로는 뛰어난 시스템을 구축할 수 없습니다. 여기서 중요해지는 것이 동양적인 「숲을 보는 (관계성을 보는)」 시점입니다.
엔지니어가 종종 빠지는 함정 중 하나는, 클래스 단일 설계(나무)의 완벽함에만 집착한 나머지 시스템 전체의 「상호작용(숲)」을 놓치는 것입니다.
나무를 보는 설계: 클래스 다이어그램(Class Diagram)은 아름답지만, 각 객체가 어떻게 연계하여 비즈니스 로직(Business Logic)을 구현하는지는 보이지 않는다.
숲을 보는 설계: 시퀀스 다이어그램(Sequence Diagram)을 중시하며, 객체 간의 메시징(Messaging) 흐름을 최적화한다.
훌륭한 객체 지향 설계(Object-Oriented Design)란, 서양적인 「엄격한 개체의 정의」를 수행하면서 동시에 동양적인 「컨텍스트(Context, 문맥)와 장(場)의 파악」을 양립시키는 것이 아닐까요.
객체 지향 설계는 서양 철학의 「실체론」이라는 강력한 무기를 소프트웨어 세계로 가져왔습니다.
하지만 진정으로 유연하고 견고한 시스템을 만들기 위해서는, 서양적인 「분석」을 통해 분리된 파츠(Parts)를 동양적인 「통합」의 관점으로 다시 한번 연결할 필요가 있습니다. 참치가 산소를 흡수하기 위해 독자적인 수면을 취하거나, 새가 날기 위해 배설 메커니즘을 특화시킨 것처럼, 객체 또한 놓인 환경(Context)과의 관계성 속에서 그 동작을 결정합니다.
「나무」를 정의하고, 「숲」을 그린다.
이 두 가지 인지 모드를 의식적으로 전환하는 것이야말로, 아키텍트(Architect)에게 요구되는 진정한 메타 인지(Meta-cognition) 기술이라고 저는 생각합니다.
ChatGPT에게 역사를 물어보았습니다. 의외로 GUI 개발이 처음이었다고 합니다.
객체 지향의 기점은 이론이 아니라, Xerox PARC(1973년)에서의 GUI 발명이었습니다.
GUI의 등장으로 인해 화면상에서 동시에 변화하는 다수의 상태(윈도우, 입력, 선택 등)를 다룰 필요가 생겨났다고 합니다.
그 결과, 기존의 절차적(Procedural) 방식으로는 한계가 있었고,
인간의 인지에 맞춰 “상태의 단위를 다시 만든다”
라는 발상이 필요했다고 합니다.
이를 실현하는 방법 중 하나가 Smalltalk였으며, 객체 지향의 원형이 되었다고 합니다.
OOP를 정확히 이해하기 위해서는 3년(단, 실천자를 따른다면 3개월)이 필요합니다. 『UML을 이용한 객체 지향 모델링 셀프 리뷰 노트』(ISBN 4886487440)(P.155)에 기재된 바와 같습니다. 그동안 여러 곳에서 논쟁이 휘몰아쳤고, 저는 그 흐름에 휩쓸리고 싶지 않았으며 마음의 피로를 방지했습니다. 시대는 변했습니다. 현재의 AI를 통해서도 어느 정도의 정밀도로 평가할 수 있게 되었습니다. 저는 AI에게 날카로운 질문을 반복했고, 그리고 이 문장을 작성할 수 있었습니다. 상황이 진정되었다고 생각하여 글을 써 보았습니다. 그리고, Anthropic Mythos입니다. Anthropic Mythos는 검증형 AI입니다. 그가 어떤 구조인지 분석해 주는 것이 지금부터 기대됩니다.
객체 지향을 배우기 시작하면서, 저는 혼이다(本位田) 씨가 정리하신 객체 지향 방법론 비교표를 볼 기회가 있었습니다.
그 비교표를 통해 느낀 점은 「어떤 방법론도 완벽하지 않다」는 것이었습니다. 각각 장단점이 있었고, 특화된 대상도 달랐습니다.
한편으로, 당시 주류였던 절차적 개발 또한 시스템의 대규모화와 복잡화에 대응하는 데 한계가 보이기 시작했습니다. 그렇기에 많은 연구자가 새로운 방법론을 계속해서 제안해 왔던 것이라고 생각합니다.
저는 자연스럽게 「그렇다면 어떻게 하면 더 좋은 방법론이 될 수 있을까」라고 생각하게 되었습니다.
하지만 그러한 논의를 하려고 해도 현실적으로는 좀처럼 쉽지 않았습니다.
- 「이 기법이 표준이니까」
- 「○○ 선생님이 제창한 방법이니까」
- 「예전부터 이렇게 해왔으니까」
라는 분위기가 있었고, 나아가 전문가나 커뮤니티의 문을 두드려도 충분한 논의를 할 수 있는 기회는 거의 없었습니다.
제가 알고 싶었던 것은 「어떤 방법론이 옳은가」가 아니었습니다.
「다른 방법론의 장점을 도입하면 더 좋게 만들 수 있지 않을까?」
「입수할 수 없는 방법론은 어떤 장점을 가지고 있는가?」
「분석 설계의 타당성 지표는 무엇인가?」
그러한 논의들입니다.
최근 1980년대부터 1990년대 초반의 객체 지향 방법론을 다시 조사해 보니, 당시에는 Coad&Yourden법, booch법, OMT법, Shlaer Mellor법, OOSE법 등 많은 방법론이 제안되어 있었습니다. 또한 분석(OOA), 설계(OOD), 프로그래밍(OOP)뿐만 아니라 추정, 품질 평가, 요구 공학 등 다양한 방향에서 연구가 진행되었습니다.
객체 지향은 처음부터 완성된 것이 아니라, 많은 연구자가 논의하고 시행착오를 거치며 발전시켜 온 기술이었던 것입니다.
그리고 마침내 깨달은 것이 있습니다.
제가 구하던 것은 「정답」이 아니었습니다.
함께 고민하고, 반증하며, 개선안을 검토할 수 있는 상대였던 것입니다.
현재는 생성 AI (Generative AI)의 등장으로 그 환경이 크게 변했습니다.
ChatGPT, Gemini, Grok, Claude 등, 저마다 다른 관점을 가진 AI와 대화하며 자신의 가설을 검증하거나, 반증을 요구하거나, 문헌을 정리할 수 있습니다.
물론 최종적인 판단은 인간이 수행해야 하며, AI의 답변도 무비판적으로 수용해서는 안 됩니다. 하지만 "이 사고방식에 허점은 없는가", "다른 관점은 없는가"라고 몇 번이고 토론할 수 있는 환경이 개인에게도 손에 들어오게 되었습니다.
돌이켜보면 제가 정말로 원했던 것은 "최적의 방법론"이 아니라, "방법론을 더 낫게 만들기 위해 자유롭게 토론할 수 있는 환경"이었다고 생각합니다. DDD (Domain-Driven Design)에 대한 이해도 높여가려 합니다.
앞으로도 과거의 방법론을 단순히 소개하는 것에 그치지 않고, "왜 태어났는가", "어떻게 발전할 수 있는가"라는 관점에서 조사하고 계속해서 고민해 나가고 싶습니다.
최근 "동양인은 숲을 보고, 서양인은 나무를 본다"라는 인지 (Cognition)의 차이에 대해 생각하고 있었습니다.
하지만 "동양", "서양"이라는 단어만으로는 조금 모호합니다.
그래서 각 지역에서 전해 내려오는 옛이야기 (Folktale)를 관측해 보기로 했습니다.
여기서 목적은 문화의 우열을 논하는 것이 아닙니다.
옛이야기에는 그 사회가 아이들에게 전달하고 싶었던 가치관이 남아 있는 것이 아닐까.
그 가설을 관측해 보려 합니다.
이번에는 다음 두 가지 점에 주목했습니다.
- 주인공은 어떤 인물인가
- 마지막에 무엇이 지켜지는가
| 문화권 | 주인공 | 마지막에 지켜지는 것 |
|---|---|---|
| 일본 | 보통 사람 | 공동체 |
| ... |
모모타로, 우라시마 타로, 학의 보답(鶴の恩返し) 등에서는 특별한 영웅보다 보통 사람이 주인공이 되는 경우가 많이 관찰됩니다.
그리고 마지막에 지켜지는 것은 개인의 성공보다,
- 마을
- 가족
- 약속
- 은혜
와 같은 공동체의 안정입니다. 다만, 일본은 다른 외국과 달리 외국 옛이야기도 적극적으로 읽히고 있다는 의문도 동시에 존재합니다.
서유기나 백사전 등을 보면,
- 수행
- 지혜
- 질서
가 중요한 역할을 합니다.
개인의 승리라기보다, 사회나 세계의 질서가 회복되는 것이 결말이 되기 쉬워 보입니다.
신데렐라나 잭과 콩나무 등에서는,
- 시련
- 모험
- 성장
가 중심이 됩니다.
마지막에는 주인공 자신의 성공이 그려집니다.
공동체보다는 개인의 이야기로 읽을 수 있습니다.
아난시의 이야기 등에서는 동물이 빈번하게 등장합니다.
중요한 것은 강함이 아니라,
- 지혜
- 궁리
- 살아남는 방법
입니다.
이야기는 공동체 속에서 살아가기 위한 지식을 전달하는 역할을 가졌을지도 모릅니다.
미국의 민담 (Folklore)에는,
- 폴 버니언 (Paul Bunyan)
- 페코스 빌 (Pecos Bill)
- 조니 애플시드 (Johnny Appleseed)
등이 있습니다.
그들은 왕자가 아닙니다.
개척자입니다.
이야기의 중심에 있는 것은,
- 새로운 땅을 개척한다
- 곤경에 도전한다
- 스스로 길을 만든다
라는 가치관입니다.
여기서 한 가지 의문이 생깁니다.
저는 일본인이지만,
- 잭과 콩나무
- 신데렐라
- 알라딘
- 서유기
를 알고 있습니다.
즉 현대인은 하나의 문화권에서만 자라는 것이 아닙니다.
오히려 여러 문화권의 인지 모델 (Cognitive Model)을 동시에 학습하고 있다고도 생각할 수 있습니다.
옛이야기를 관측하며 느낀 점은, 옛이야기는 오락인 동시에 그 사회가 아이들에게 전달하고 싶었던 가치관의 저장 장치가 아닐까 하는 것입니다.
만약 그렇다면, 옛이야기는 단순한 이야기가 아닙니다.
그 문화의 인지 모델이 화석처럼 남은 것일지도 모릅니다.
물론 이것은 하나의 가설입니다.
하지만 옛이야기를 나란히 놓고 보면, 문화마다 주인공이나 결말의 경향이 다르게 보이는 것은 흥미로운 관측 결과였습니다.
본 기사는 문화론을 단정 짓는 것을 목적으로 하지 않습니다.
또한 "동양과 서양은 이렇게 다르다"라는 단순화를 결론으로 내는 것도 아닙니다.
여기서 하는 것은 어디까지나 하나의 시도입니다.
게임이라는 공통 포맷을 통해,
동양·서양에서 "강하게 나타나기 쉬운 설계 사상의 차이"를 관측할 수 있는가?
라는 질문입니다.
평가가 아니라 관측으로서 정리하겠습니다.
다음의 6개 축으로 게임을 봅니다.
| 항목 | 의미 |
|---|---|
| 주인공 | 플레이어는 누구로 취급되는가 |
| ... |
Asteroids
Missile Command
| 항목 | 관측 |
|---|---|
| 주인공 | 거의 존재하지 않음 |
| ... |
관측
이 단계에서는 "이야기"라기보다,
행동 그 자체를 게임화하고 있다
단계로 보입니다.
Dragon Quest
Final Fantasy IV
Mother
| 항목 | 관측 |
|---|---|
| 주인공 | 고정 인물 |
| ... |
관측
공통적으로 눈에 띄는 것은
동료(관계성)의 비중이 매우 크다
는 점입니다.
전투나 목적보다, 「누구와 여행을 하는가」가 설계의 중심에 있습니다.
Ultima IV
Wizardry
Fallout
Baldur's Gate
| 항목 | 관측 |
|---|---|
| 주인공 | 플레이어 주체·생성형 |
| ... |
관측
특징적인 것은
플레이어의 선택 그 자체가 중심에 있다
는 점입니다.
「누구와 동료가 될 것인가」보다
「어떻게 행동할 것인가」의 비중이 큰 경향이 있습니다.
The Legend of Zelda: Breath of the Wild
Animal Crossing: New Horizons
| 항목 | 관측 |
|---|---|
| 주인공 | 고정 or 플레이어 |
| ... |
관측
여기서는 이야기보다
놀이 그 자체의 설계
가 중심에 있는 것으로 보입니다.
관측을 옆으로 나열하면 다음과 같습니다.
| 축 | 동양 RPG적 경향 | 서양 RPG적 경향 |
|---|---|---|
| 주인공 | 고정 인물 | 플레이어 주체 |
| ... |
이 관측으로부터 말할 수 있는 것은 다음과 같은 가설입니다.
동양계 게임은 「관계성의 설계」에 비중이 쏠리기 쉽다
서양계 게임은 「선택과 결과의 설계」에 비중이 쏠리기 쉽다
단, 이는 경향일 뿐이며 예외는 많이 존재합니다.
중요한 예외
예외는 오히려 본질을 나타냅니다.
The Legend of Zelda → 일본이지만 높은 자유도
Wizardry → 서구권이지만 동료 중시
Minecraft → 국가 분류 불가능
Grand Theft Auto V → 이야기와 자유도의 혼합
본 기사는 결론을 내리는 것이 아니라,
게임이라는 공통 포맷을 사용한 관측의 시도
입니다.
중요한 것은 분류가 아니라,
무엇을 늘리려고 하는가
무엇을 중심으로 설계하고 있는가
무엇을 플레이어에게 체험시키고 있는가
라는 관점입니다.
동양·서양이라는 이분법이 아니라,
「설계 사상의 차이로서 무엇이 보이는가」를 앞으로도 관측해 나감으로써, 보다 정밀도 높은 모델을 만들 수 있을 가능성이 있습니다.
나는 오랫동안 객체 지향(Object-Oriented)이나 UML을 관찰해 왔다.
지금은
「왜 사람에 따라 이해가 다른가」
를 관찰하고 있다.
같은 책을 읽어도 해석은 다르다.
같은 기술을 배워도 중시하는 점은 다르다.
어떤 사람은 코드를 본다.
어떤 사람은 설계를 본다.
어떤 사람은 조직을 본다.
어떤 사람은 고객을 본다.
각각이 보고 있는 것은 다르다.
그리고 그 차이는 반드시 오류인 것은 아니다.
경험한 성공이나 실패에 따라 보이는 풍경이 달라지기 때문이다.
나는 이전에 그것을 교의화(Dogmatization)라고 불렀다.
하지만 최근에는 조금 다르지 않을까 생각하기 시작했다.
사람은 교의를 지키고 있는 것이 아니라,
그 교의의 너머에 있는 무언가를 지키고 있는 것이 아닐까.
성공 체험일지도 모른다.
조직의 안정일지도 모른다.
책임의 소재일지도 모른다.
혹은 조화일지도 모른다.
여기서 나는 다른 질문에 도달했다.
지혜란 무엇인가.
지식이라면 책에 쓸 수 있다.
기술이라면 학습할 수 있다.
하지만 지혜는 조금 다르다.
같은 지식을 가지고 있으면서도 다른 판단을 하는 사람이 있다.
그 차이는 어디에서 생겨나는 것일까.
나는 이제 답을 서두르지 않기로 했다.
역사를 보면 인간의 인식이 바뀌기까지는 긴 시간이 걸린다.
세대가 바뀌기도 한다.
환경이 바뀌기도 한다.
그리고 본인이 바뀌기도 한다.
지금의 나는 무언가를 증명하는 사람이 아니라, 관찰하는 사람이 되고 싶다.
관측하고, 생각하고, 토론할 수 있는 장을 늘리고 싶다.
・DDD는 시스템 중심의 사고방식
・테이블 매너나 자리 비움의 동양과 서양
서양, 저액: 먼저 지불???
서양, 고액: 후불, 자리 비울 때 '하'의 자 모양을 만듦
일본: 편의성 중시???
일본 + 자리 비움: 개인 소지품이 있는지 여부??? 시간이 얼마나 경과했는지???
・인사로 보는 동양과 서양과 개와 고양이
개: 엉덩이 냄새를 맡으면 갑자기 조용해짐 (모든 것을 이해하는가?) ???
서양: 간소함, 통신 확인????
동양: 상태의 통지나 교환???
고양이: 시각과 코를 맞댐????
・동물의 식사 빈도
・곤충을 먹는 식물과 일반적인 식물과 해양 식물
・고양이의 눈
・도마뱀
・문어
・오히사소(Ohi-sasou)
・라플레시아
로 ChatGPT와 토론하고 있습니다.
집필 협력: Gemini, ChatGPT
죄송합니다. 이런 AI의 시대가 올 줄은 몰라서 대부분의 책을 버렸습니다. 당시 조사했던 내용이 가물가물하거나, 다시 찾아보며 책을 새로 사는 등 정확성을 중시하려고 합니다.
리처드 E. 니스벳(Richard E. Nisbett) 『나무를 보는 서양인, 숲을 보는 동양인』
객체 지향 방법론의 세계: 비교와 해설
존 라카메라(John R. Cameron) 외 『객체 지향 개발의 함정』
아리스토텔레스(Aristotle) 『범주론 (Categories)』
객체 지향 시스템 개발
객체 지향 입문 제2판 원칙·컨셉
객체 지향 입문 제2판 방법론·실천
UML을 이용한 객체 지향 모델링 셀프 리뷰 노트
[복각판]객체 지향 소프트웨어 공학 OOSE ―― Use Case를 이용한 접근 ――
우울한 프로그래머를 위한 객체 지향 개발 강좌
슐라이어-메러(Schreiber-Mellau) 법에 의한 객체 모델링
UML 2.0 사양서 2.1 대응
Java 언어로 배우는 디자인 패턴 입문
증보 개정판 Java 언어로 배우는 디자인 패턴 입문 멀티스레드 편
객체 지향 방법론 OMT 모델화와 설계
객체 지향 프로그래밍 입문 제2판 신장판
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기