데브허브 | DEVHUB | [10분 테코톡] 하쿠의 왜 JS는 프로토타입 기반일까[10분 테코톡] 하쿠의 왜 JS는 프로토타입 기반일까
- 자바스크립트 프로토타입의 난해함에 대한 일반적인 인식을 다루며, 그 기반이 되는 이유를 탐구합니다. 🤔
- 프로토타입을 이해하기 위해 먼저 클래스의 개념과 그 철학적 배경을 파악하는 것이 중요하다고 설명합니다. 📚
- 클래스 기반 시스템은 플라톤의 이데아론에서 유래하여, 추상적인 본질(클래스)이 먼저 정의되어야 개별 객체(인스턴스)를 생성할 수 있다는 서양 철학적 사고방식을 반영합니다. 🏛️
- 아리스토텔레스는 플라톤의 이데아를 바탕으로 본질적 속성을 공유하는 물체를 분류하는 개념을 정립했습니다. 🌳
- 비트겐슈타인은 '놀이' 예시를 통해 본질적 속성이 없어도 유사성(가족 유사성)을 통해 분류가 가능하다고 주장하며, 전통적인 클래스 기반 분류에 도전했습니다. 🧩
- 비트겐슈타인의 '의미 사용 이론'은 단어의 의미가 상황과 맥락에 따라 달라지듯, 자바스크립트의
this 바인딩처럼 코드의 문맥에 따라 동작이 달라지는 프로토타입의 유연성을 뒷받침합니다. 🔗
- '가족 유사성' 개념은 모든 구성원이 공통 속성을 가지지 않아도 서로 교차하는 속성들을 통해 유기적인 관계를 이루는 것처럼, 자바스크립트의 프로토타입 체인이 객체 간 속성 공유를 가능하게 하는 원리를 설명합니다. 👨👩👧👦
- 로시의 프로토타입 이론은 인간이 가장 유사성이 높은 것을 범주의 원형(프로토타입)으로 인식하는 직관적인 사고 구조를 반영하며, 참새와 타조의 새 분류 예시로 이를 설명합니다. 🐦
- 클래스가 '붕어빵 틀'처럼 정적이고 고정된 구조인 반면, 프로토타입은 '찰흙'처럼 유연하고 동적인 구조를 가지며, 객체 생성 및 상속 방식에서 더 큰 유연성을 제공합니다. 🧱
- 자바스크립트 개발 당시 브렌든 아이크는 동적인 웹 페이지와 비개발자도 쉽게 배울 수 있는 언어를 목표로 했으며, 프로토타입의 단순하고 유연하며 직관적인 특성이 이러한 목표에 부합하여 채택되었습니다. 🌐