객체지향의 본질은 적절한 역할과 책임을 가진 객체들이 서로 협력하는 공동체를 창조하는 것이다. 여기서 등장하는 핵심 개념인 역할, 책임, 협력에 대해 알아보자. 1. 협력 협력이란, 어떤 객체가 다른 객체에게 무엇인가를 요청하는 것이다. 다양한 객체들은 메시지를 주고받으면서 상호작용하고, 메시지를 수신한 객체는 메서드를 실행하여 요청에 응답한다. 이 때 협력에 참여하기 위해 수행하는 로직이 책임이고, 책임들이 모여 객체가 수행하는 역할을 구성한다. 더 자세히 협력의 조건을 살펴보자. o 자율적인 객체 만들기 : 객체를 생성할 때에는 정보와 정보에 기반한 행동이 같은 객체 안에 모여있어야 한다. 이 때, 객체는 자신의 상태를 직접 관리하고 스스로 행동할 수 있는 자율적인 객체가 된다. o 메시지 요청하기 ..