객체지향의 사실과 오해3 #3 이상한 나라의 객체 2부 1부 복습 1부에선 심리학 연구를 화두로 객체지향 프로그래밍이 사실상 인간의 기본적인 본능인 인지능력과 매우 깊은 연관이 있다는 걸 알 수 있었다. 객체지향 패러다임은 복잡한 소프트웨어 세계를 인간이 이해하기 쉽게 개념을 쪼개 소프트웨어의 객체를 책임, 역할, 협력 세가지로 설계 할 수 있게 무대를 제공했다. 객체의 상태는 객체의 내부에 캡슐화 되어있고, 스스로의 상태는 반드시 자신의 행동으로 변경할 수 있도록 해야한다. 만약 다른 객체가 상태를 변경하고 싶다면, 객체 간의 협력을 기반으로 상태 변경을 시도하면 된다. 앞서 말한 조건들을 모두 충족시켜줘야 비로소 소프트웨어 속 객체지향 패러다임을 토대로 컴퓨터 세계 속 자원을 다룰 수 있다. 식별자 1부에서도 언급이 되었듯이, 객체는 인간이 인지 능력을 .. 2023. 11. 14. #2 이상한 나라의 객체 1부 이상한 나라의 객체 1부 "객체지향 패러다임은 지식을 추상화하고 추상화한 지식을 객체 안에 갭슐화함으로써 실세계 문제에 내재된 복잡성을 관리하려고 한다. 객체를 발견하고 창조하는 것은 지식과 행동을 구조화하는 문제다." - 레베카 워프스브로 지난 챕터에서도 언급된 것 처럼, 객체는 상태(state)와 행동(behavior)로 이루어져 있는 실체(구조체)다. 그렇다면 객체지향을 하는 것은 사용하고 싶은 개념들을 추상화 한 다음, 로직에 맞게 객체를 캡슐화하고 필요한 상태와 행동을 구체적으로 설계해주는 프로그래밍 패러다임이라고 이해할 수도 있을 것 같다. 객체지향과 인지 능력 해당 챕터에서는 심리학 연구를 통해 사람은 행동하는 물체를 하나의 개념으로 인지한다는 내용을 알려준다. 사람은 본능적으로 비슷한 행동.. 2023. 11. 14. #1 협력하는 객체들의 공동체 첫 장에선 간단하게 객체지향에 대해 운을 띄운다. 객체지향 소프트웨어는 실세계의 투영이며, 객체란 현실 세계에 존재하는 사물에 대한 추상화라는 사실이 소위 객체지향 정의의 핵심이다. 하지만 이러한 정의는 모순이 존재한다. 실세계와 소프트웨어 객체와의 연관성이 많이 떨어지기 때문이다. 그렇기에 객체지향의 목표는 실세계를 모방하는 것이 아닌 새로운 세계를 창조하는 행위라고 여긴다. "소프트웨어 시스템이 해결하려고 하는 실재는 잘해봐야 먼 친척밖에는 되지 않는다." - Meyer 2000 그럼에도 실세계를 객체지향에 대응하여 설명하는 이유는, 실세계에 대한 비유가 객체지향의 다양한 측면을 이해하고 학습하는 데 매우 효과적이기 때문이다. 책에선 긴 소설 이야기를 이용하여 중요한 한 문장을 이끌어낸다. "그것은 .. 2023. 11. 14. 이전 1 다음