올바른 객체지향 설계 - 'solid 원칙' 이란?