타입
타입이란 무엇인가?
타입은 개념이다. 우리가 인식하는 다양한 사물이나 객체를 분류하는 기준이 된다. 객체가 특정 타입에 속한다는 것은, 그 객체가 해당 타입의 행동(책임) 을 수행할 수 있다는 의미다.
데이터 타입
컴퓨터 내부의 데이터는 모두 0과 1의 비트열로 이루어져 있다. 이를 숫자로 해석할지, 문자로 해석할지는 명확하지 않다. 그래서 등장한 개념이 데이터 타입이다. 타입 시스템은 메모리에 저장된 데이터를 어떻게 사용할 수 있는지를 결정하며, 잘못된 연산이 수행되지 않도록 보호하는 역할을 한다.
데이터 타입은 데이터의 사용 방식에 대한 규칙을 정한다.
메모리에 데이터가 어떻게 표현되는지는 감춰진다.
객체와 타입
객체지향 프로그래밍에서 타입을 결정하는 것은 객체가 수행하는 행동(책임) 이다.
동일한 행동을 수행하는 객체들은 동일한 타입으로 분류된다.
객체의 내부 구현은 외부에서 알 필요가 없다.
즉, 타입을 정의할 때는 객체가 어떤 데이터를 가지느냐가 아니라, 어떤 행동을 수행할 수 있느냐가 중요하다.
다형성과 책임 주도 설계
다형성(Polymorphism) 은 동일한 요청(메시지)에 대해 여러 객체가 서로 다른 방식으로 응답할 수 있는 능력이다.
동일한 책임을 수행하는 객체는 같은 타입으로 분류될 수 있다.
내부 구현이 다르더라도 동일한 메시지를 처리할 수 있으면 같은 타입으로 취급된다.
이 원칙을 기반으로 책임-주도 설계(Responsibility-Driven Design, RDD) 가 중요해진다.
객체가 수행할 책임(행동) 을 먼저 정의한 후,
그 책임을 수행하는 데 필요한 데이터를 결정하고,
데이터를 외부에서 접근할 수 없도록 캡슐화한다.
이처럼 객체의 타입을 결정하는 핵심 요소는 행동(책임) 이며, 이를 기반으로 유연하고 확장 가능한 설계를 할 수 있다.
Last updated