23P by alstjr7375 2021-12-14 | favorite | 댓글 6개

- 클래스와 프로토타입의 가장 커다란 차이는 객체 생성 방식 [클래스 -> 인스턴스 vs 객체 -> 복사된 객체].
- 가장 큰 공통점은 객체지향이며, 프로그램을 객체라는 단위로 나누고 상호작용하게 하는 것.
- 객체지향의 핵심인 캡슐화를 잘하기 위한 가장 간단한 방법은 추상화를 잘 하는 것.
- 추상화는 데이터 위주의 성질(고전적 OOP), 형태(타입), 상태(데이터 주도 설계)와 관계 중심인 시간(절차지향), 행동(함수형), 정의(논리형), 상황(도메인 주도 설계, AOP) 등으로 나누어 생각할 수 있음.
- 잘 분류하고 설계하기 위해서 사고의 형식을 인식하게 만드는 다양한 범주의 이해가 있다면 좋음 [예) 칸트의 4강 12목].
- 철학과 패러다임
- 절차형: 시간은 대부분의 추상화에 영향을 미치며, Goto처럼 컨텍스트가 섞이게 만드는 문법은 좋지 않음.
- 함수형: 행동의 형태로 나타내려 하기 때문에 타입(형태)와 깊은 연관관계.
- 논리형: 사실과 규칙으로 논리를 구성하고, 질의를 함으로서 술어논리의 결과를 얻을 수 있음.
- 전통적 OOP: 직관적. 하지만 완벽한 속성을 알아내기는 불가능함.
- 데이터 주도 설계: 로직의 상태를 다루려는 함수형과 달리 컴퓨터 자체에서의 상태를 줄이려 시도. 캐시 히트를 높혀서 성능향상을 가져옴.
- 도메인 주도 설계: 전통적 OOP와 달리 도메인과 맥락에 따라 다르게 설계를 함(그림이론-용도의미론과 비슷), 서브도메인의 의존성 주입을 하는 AOP를 사용하면 구현이 편해짐.
- MVP
- 프로토타입 제작: 중요한 기능이 포함되어야 하며 디자이너, 개발자, 재무등의 관점에 따라 달라질 수 있음. 많은 사람들이 중요하다고 생각하는 제품의 유사도에 따라 전형적인 요건.
- MVP: 최소한의 완성도가 보장된 사용이 가능하고, 최종단계로 생각하는 제품과 유사하게 설계해야함.
- 객체지향과 존재
- 플라톤: 보편적 성질이 불변하며 실재하고, 개별적 존재들은 보편적 특성이 결여된 채로 존재한다 주장.
- 아리스토텔레스: 개별적 개체만이 근본적 실체이며, 보편자는 상하/포함 관계에서 나타나는 표상이라 주장.
- 클래스-인스턴스는 플라톤의 이데아론을, 프로토타입-복제된 객체는 아리스토텔레스 실체론과 유사.

처음에 쓰려던 목표는
- 전통적 OOP는 그림이론, 도메인 주도 설계는 용도의미론과 유사.
- 클래스-인스턴스는 플라톤의 이데아론을, 프로토타입-복제된 객체는 아리스토텔레스 실체론과 유사.
둘이었는데 생각보다 너무 길어졌네요.

배경지식이 아예 없으면 살짝 어렵게 느껴질 수도 있습니다.

자바스크립트는 왜 프로토타입을 선택했을까
https://news.hada.io/topic?id=5532

를 보다가 생각이 나서 적은 글 입니다.

이 글과 같이 비교하면서 한번 읽어보겠습니다!

어? 스페이스 여러개를 넣는게 안되나보네요 ㅠㅠ

아 의도적으로 공간을 차지하는 경우가 좀 있어서..
빈 줄 및 빈 공간 여러개는 줄이도록 해두었습니다 ㅠ

이해했습니다.
다음부터 올릴 때 고려해야겠네요.