Object의 특징은 무엇인가?
OOP에서 오브젝트의 특징은 무엇인가?
객체 분해를 어떻게 하고 여기서 객체에 행동이 들어간다고 함
Object의 근본 개념은
State,Behavior,Identity
라고 할 수 있음. 상태(속성), 행동(연산or 메서드), 식별(식별자, 메모리 주소등등)
즉 붕어빵에서 인스턴스 어쩌고는 잘못됨
애초에 캡슐화 설명도 못하고, 객체에 대해서 잘못됨
클래스:오브젝트 =붕어빵틀:붕어빵은 왜 잘못된거냐?
1.우선 객체가 가지는 아이덴티티를 무시하는 설명이다..
부치 책은 꽃들의 관계를 이야기한다.
그럼 붕어빵 틀과 붕어빵은 잘맞는 비유일까?
아니다
1. 우선 객체가 가지는 식별성을 언급할 수 없다.
- >진짜 맞는 비유가 될려면 붕어빵틀에서 찍어 나오되
'독립적인 행동을 가지고'
'식별 번호를 가지고 있고'
'상태가 변한다는 것을 가진다'
라는 것을 설명하지 못한다.
우선 객체는 - 시간과 공간 안에서 동적으로 존재한다.
상태와 행동은 변하며, 객체는 클래스의 틀을 벗어나서 독립적인 상태와 행동을 가져야한다.
이게 기본이다.
그래도 이 독립적인 행동은 어떻게 식는다. 차갑게 변한다 등 붕어빵의 뜨거움 여부로 어떻게 판단한다 하자.
그럼에도 문제가 생긴다.
2. 클래스의 역할을 지나치게 단순화한다
-클래스의 중요한 역할 중 메서드 기능 제공을 한다 떠나서, 캡슐화를 제공하는데, 이는 인터페이스를 통한 데이터 보호의 개념을 어떤것도 설명하지 못한다.
붕어빵틀에 팥붕 슈붕이 들어가서 타입의 정의 자체는 설명할 수 있다.
문제는 객체의 핵심적인 것 중 하나는 다른 객체와의 상호작용인데, 그 상호작용에 대해서 어떤 것도 설명하지 못한다
이게 메세징이고, 이게 객체가 다른 것과 구분되는 특성이다.
그렇기때문에 잘못된 것이다.
이는 나만이 지적하는게 아니다.
붕어빵과 붕어빵틀의 비유는 일부분의 측면을 보여주는 것은 효과적이다.
하지만 이걸로 모든걸 설명하는게 문제인거지.
찾아보니 다른 한국 서적에서도 저 비유가 잘못됐다는 걸 설명하고 있다.
너네는 원본 프로그래밍을 배우는거냐?
한국식 재창조된 프로그래밍을 배우는거냐?
이건 개추를 누를 수밖에 없네 하지만 붕어빵틀 아니었으면 한국인들 일부 이미 프로그래밍 접었대 ㅇㅅㅇ
잉어빵으로 합시다
좋은얘기긴 한데 노무 어렵다 게이야 이기
형님은 이미 체득하고 계시겠지요
ㄴㄴ 걍 그렇게 알고만 있지 게이처럼 설명해보라하면 몬한다 이기
얘 대체 왜 까이는거냐? 진짜 맞는말만하는데
클래스와 객체의 관계를 통해 인스턴스를 설명하려는 비유여서 대학교수도 써먹는다 너가 하는건 허수아기 패기임 ㅇㅇ
그건 단순히 입문자를 위한 러프한 설명이기때문임. 문제는 OOP를 이야기할때는 이 개념이 잘못됐다는 걸 알아야한다는거지. 단순하게 설명하자면 대학에서 일반 물리를 설명할때 물리를 러프하게 설명하지만, 이제 고급 라그랑주, 해밀토니안으로 들어가서 역학에 대해서 자세히 풀어쓸땐 많은 부분에서 변한다. 그래서 허수아비 패기가 아니라. 단순히 저걸로 모든게 설명가능하다고 주장하는놈을 때리기 위한것일뿐. 물리에서 일반물리 배울땐 물체는 일정한 힘을 받으면 가속한다고 말함 하지만 고급 물리학에서는 운동은 에너지 함수와 시간에 따른 변화를 말하기때문에, 저게 맞는 비유라고 이해하면 잘못됐다는 말.
붕어빵 만드는 방법이야기하는데 이글 자체는 붕어빵 만드는 재료를 이야기하는 내용임
저걸로 다 설명가능 하다면 그 주장 자체는 문제가 있다는 동의 함
근데 문제는 붕어빵 만드는 설명이 좀 잘못됐다는거여 친구. 그리고 학습자와 입문자의 간격때문에 입문할때 이 비유로 입문하는건 좋지만, 애초에 저 본문 첫번째 사진처럼. '이 비유가 무조건 맞다' 라는건 잘못된 태도라는거야 친구. 너 말대로 붕어빵 비유가 입문자에 괜찮은거라고 나도 동의해. 하지만 이 러프한 개념이 정말 정밀한 개념처럼 알려져서는 곤란하다는거지
그렇게 따져들면 세상에 비유 할 수 있는게 뭐가 있음
비유를 하는건 좋은데, 이게 잘못됐다하는거지. 먼저 공격해서 그에 대한 방어차원으로 자세하게 러프된 개념이라 설명한거야. 잘못된 설명이라는 걸 알아야하는거임
그래서 슈붕임 민붕임?
피자붕어빵
붕어빵틀-붕어빵 비유가 OOP 객체의 특징을 완전히 설명하지 못한다고 해서 그것이 잘못된 비유라고 하는 것은 과도한 일반화인게, 애초에 해당 비유는 완전한 OOP 이론을 설명하는데 쓰이지도 않고, 보통 클래스 vs 인스턴스 관계같은 특정 측면을 이해시키기 위한 제한적인 은유로만 쓰이고 있음 초심자이든 아니든 클래스가 객체를 만들기 위한 블루프린트 역할을 한다는 것이 중점이므로, 굳이 말하고싶으면 붕어빵 비유가 틀렸다고 하기보단 OOP의 모든 부분을 설명할 수 없다고 표현해야함
이것도 틀린말은 아닌데, 기본적으로 원래 싸운 이유가 저걸로 다 설명할 수 있다라고 말한거임. 니 말이 맞음
다만 클래스 vs 인스턴스 관계에서도 역시 인스턴스를 너무 과도하게 제한화해서 특정 측면만 보여주기때문에 '특정 속성을 잘 드러내지만' 일부 속성은 드러나지 않아서 러프하다라는 개념으로 봐야지
아 누구랑 이거 관련해서 싸우셨음?
'루비' 저 양반이 붕어빵틀로 OOP 설명 다 가능하다 해서 그런가 나도 클래스: 인스턴스 정도로 설명하면 다 설명 못하고 그냥 넘어갈랬는데 저양반이 뭐라고 저격해서 한바탕한거임
이게 갤을 여러곳 따라다니다보니 보다시피 계속 저격하는 양반들이 있어서 마갤에서도 같이 정지먹는 경우가 있어서 정식 갤러리 온거
글쿤 싸우지 말고 잘 지내봐~
아님 붕어빵 붕어빵틀은 가장 병신같은 비유임. 그걸로 객체지향을 이해할수가 없고, 그걸로 이해했다는 새끼는 대가리가 병신이 아님을 스스로 입증해야함. 객체지향 한다는 새끼중에 아무도 붕어빵/틀 이 맞다고 지껄이는 새끼가 없고, 그걸떠드는 새끼 중에서 코딩 제대로 하는 새끼를 본적이 없다.
맞음. 20년전 대학생때 붕어빵 이야기가 가장 좆같았음.
당시에는 oop 개념도 좆도 몰라서 그거 공부한다고 정말 혼났다. 객체지향은 부품, 인스턴스 단위로 생각을 해야 클래스를 이해할수 있음. 아직도 대학 교수들 생각하면 이가 갈린다.
ㅠㅠ
동의합니다. 다만 저는 약간 그런 비유보다는 통째로 그냥 대가리에 쑤셔넣다가 자연스레 이해된다고 생각하는 사람입니다. 다만 형님의 비유도 정확하다 생각합니다
저 자료 이름이 뭐임 - dc App
그냥 자동차로 설명하는게 제일 깔끔한거같음 - dc App