# 객체지향 시스템과 패러다임 그리고 철학

> Clean Markdown view of GeekNews topic #5544. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=5544](https://news.hada.io/topic?id=5544)
- GeekNews Markdown: [https://news.hada.io/topic/5544.md](https://news.hada.io/topic/5544.md)
- Type: news
- Author: [alstjr7375](https://news.hada.io/@alstjr7375)
- Published: 2021-12-14T01:11:46+09:00
- Updated: 2021-12-14T01:11:46+09:00
- Original source: [black7375.tistory.com](https://black7375.tistory.com/86)
- Points: 23
- Comments: 6

## Topic Body

- 클래스와 프로토타입의 가장 커다란 차이는 객체 생성 방식 [클래스 -> 인스턴스 vs 객체 -> 복사된 객체].

- 가장 큰 공통점은 객체지향이며, 프로그램을 객체라는 단위로 나누고 상호작용하게 하는 것.

- 객체지향의 핵심인 캡슐화를 잘하기 위한 가장 간단한 방법은 추상화를 잘 하는 것.

    - 추상화는 데이터 위주의 성질(고전적 OOP), 형태(타입), 상태(데이터 주도 설계)와 관계 중심인 시간(절차지향), 행동(함수형), 정의(논리형), 상황(도메인 주도 설계, AOP) 등으로 나누어 생각할 수 있음.

    - 잘 분류하고 설계하기 위해서 사고의 형식을 인식하게 만드는 다양한 범주의 이해가 있다면 좋음 [예) 칸트의 4강 12목].

- 철학과 패러다임

    - 절차형: 시간은 대부분의 추상화에 영향을 미치며, Goto처럼 컨텍스트가 섞이게 만드는 문법은 좋지 않음.

    - 함수형: 행동의 형태로 나타내려 하기 때문에 타입(형태)와 깊은 연관관계.

    - 논리형: 사실과 규칙으로 논리를 구성하고, 질의를 함으로서 술어논리의 결과를 얻을 수 있음.

    - 전통적 OOP: 직관적. 하지만 완벽한 속성을 알아내기는 불가능함.

    - 데이터 주도 설계: 로직의 상태를 다루려는 함수형과 달리 컴퓨터 자체에서의 상태를 줄이려 시도. 캐시 히트를 높혀서 성능향상을 가져옴.

    - 도메인 주도 설계: 전통적 OOP와 달리 도메인과 맥락에 따라 다르게 설계를 함(그림이론-용도의미론과 비슷), 서브도메인의 의존성 주입을 하는 AOP를 사용하면 구현이 편해짐.

- MVP

    - 프로토타입 제작: 중요한 기능이 포함되어야 하며 디자이너, 개발자, 재무등의 관점에 따라 달라질 수 있음. 많은 사람들이 중요하다고 생각하는 제품의 유사도에 따라 전형적인 요건.

    - MVP: 최소한의 완성도가 보장된 사용이 가능하고, 최종단계로 생각하는 제품과 유사하게 설계해야함.

- 객체지향과 존재

    - 플라톤: 보편적 성질이 불변하며 실재하고, 개별적 존재들은 보편적 특성이 결여된 채로 존재한다 주장.

    - 아리스토텔레스: 개별적 개체만이 근본적 실체이며, 보편자는 상하/포함 관계에서 나타나는 표상이라 주장.

    - 클래스-인스턴스는 플라톤의 이데아론을, 프로토타입-복제된 객체는 아리스토텔레스 실체론과 유사.

처음에 쓰려던 목표는

- 전통적 OOP는 그림이론, 도메인 주도 설계는 용도의미론과 유사.

- 클래스-인스턴스는 플라톤의 이데아론을, 프로토타입-복제된 객체는 아리스토텔레스 실체론과 유사.

둘이었는데 생각보다 너무 길어졌네요.

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

## Comments



### Comment 7910

- Author: alstjr7375
- Created: 2021-12-14T01:12:32+09:00
- Points: 2

자바스크립트는 왜 프로토타입을 선택했을까

https://news.hada.io/topic?id=5532

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

### Comment 7918

- Author: laeyoung
- Created: 2021-12-14T15:37:54+09:00
- Points: 1
- Parent comment: 7910
- Depth: 1

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

### Comment 7921

- Author: alstjr7375
- Created: 2021-12-14T19:58:36+09:00
- Points: 1
- Parent comment: 7918
- Depth: 2

감사합니다!!

### Comment 7911

- Author: alstjr7375
- Created: 2021-12-14T01:13:31+09:00
- Points: 1
- Parent comment: 7910
- Depth: 1

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

### Comment 7912

- Author: xguru
- Created: 2021-12-14T10:58:18+09:00
- Points: 1
- Parent comment: 7911
- Depth: 2

아 의도적으로 공간을 차지하는 경우가 좀 있어서..

빈 줄 및 빈 공간 여러개는 줄이도록 해두었습니다 ㅠ

### Comment 7916

- Author: alstjr7375
- Created: 2021-12-14T11:42:45+09:00
- Points: 1
- Parent comment: 7912
- Depth: 3

이해했습니다.

다음부터 올릴 때 고려해야겠네요.
