본문 바로가기

객체지향8

객체지향(3) - 타입과 추상화 3장에서는 소프트웨어 개발에서 가장 중요한 개념인 추상화와 마주치게 될 것 거창해 보이지만 추상화는 단순화를 의미함 객체지향 패러다임에서 가장 널리 사용되는 추상화는 동적인 객체들을 단순화시켜 정적인 타입으로 갈무리하는 것 타입의 개념을 이해하고 나면 객체를 구현하기 위해 클래스를 사용하는 이유를 이해하게 될 것 추상화를 통한 복잡성 극복 헤리 백의 현대적인 지하철 노선도의 원형 이야기 불필요한 지형 정보를 제거함으로써 단순함을 달성한 추상화의 훌륭한 예 현실에 존재하는 다양한 현상 및 상호작용하기 위해서는 우선 현실을 이해해야 한다. 문제는 복잡성의 총체인 현실이라는 괴물을 그대로 수용하기에는 인간이 지니고 있는 인지 능력과 저장 공간이 너무나도 보잘것이 없다는 점이다. 따라서 사람들은 본능적으로 이해.. 2022. 3. 17.
객체지향(2) - 객체란 무엇인가 2장에서는 "객체란 무엇인가"라는 본질적인 질문에 대답한다. 이 장을 배우고나면 객체가 상태와 행동, 식별자를 가진 존재라는 사실을 이해하게 될 것이다. 객체지향과 인지 능력 많은 사람들이 객체지향을 직관적이고 이해하기 쉬운 패러다임이라고 말하는 이유는 객체지향이 세상을 자율적이고 독립적인 객체들로 분해할 수 있는 인간의 기본적인 인지 능력에 기반을 두고 있기 때문이다 *엘리자베스 스펠크와 필립 켈만의 어린 아기들이 물체를 인지하는 방법에 관한 연구 세상을 더 작은 객체로 분해하는 것은 본질적으로 세상이 포함하고 있는 복잡성을 극복하기 위한 인간의 작 몸부림이다. 객체지향 패러다임은 인간이 인지할 수 있는 다양한 객체들이 모여 현실 세계를 이루는 것처럼 소프트웨어 세계 역시 인간이 인지할 수 있는 다양한.. 2022. 3. 17.
객체지향(1) - 협력하는 객체들의 공동체 객체지향으로 향하는 첫 걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 존재로 바라보는 것 걸음을 내디딜 수 있는지 여부는 협력에 참여하는 객체들에게 얼마나 적절한 역할과 책임을 부여 할 수 있느냐에 달려 있다. 객체지향 프로그래밍이란 위 3가지 개념들을 사용하는 프로그래밍 언어라는 틀에 흐트러짐 없이 담아 낼 수 있는 기술들을 익히는 것 1장에서는 객체지향의 패러다임의 핵심이 자율적인 객체들의 협력이라는 사실을 강조한다. 지금까지 객체지향의 중심이 클래스나 상속이라고 생각했던 분들은 약간 당혹감을 느낄 수 있다. 객체지향의 철학인 실세계의 모방이라는 개념은 객체지향의 기반을 이루는 철학적인 개념을 설명하는데 적합하지만 유.. 2022. 3. 17.