개발/[Basic]

[Basic] SRP 단일 책임 원칙

바켱서 2020. 6. 29. 14:36

SRP _ 단일 책임 원칙

        하나의 모듈은 하나의, 오직 하나의 액터에 대해서만 책임져야 한다.

여기서 액터란 시스템이 동일한 방식으로 변경되기를 원하는 사용자 집단을 말한다.

즉, 액터란 하나의 사용자가 될 수 도 있고 여러 사용자가 모여서 하나의 액터가 될 수도 있다.

 

EX) '스마트폰' 이라는 객체를 철수와 영희가 모두 사용하고 있다고 가정해보자.

      철수는 스마트폰을 영상 시청을 위해서 사용하고,

      영희는 스마트폰을 전화 통화를 위해서 사용


 class 스마트폰 implements 동영상플레이어, 전화 {
        ...
    }

위의 스마트폰은 철수와 영희가 다른 방식으로 변경되기를 원할 수 있기 때문에 철수와 영희는 별개의 액터

철수가 만약 영상 시청을 위해서 스마트폰의 액정크기를 15인치로 바꾼다면 영희의 전화통화 요구사항에는 맞지 않는 변경사항이 된다.

그러므로 해당 스마트폰이 SRP를 준수하기 위해서는 다른 액터에 맞게 분리되어야 한다.

 class 스마트폰_for_철수 implements 동영상플레이어 {
        ...
    }

 

 class 스마트폰_for_영희 implements 전화 {
        ...
    }