관심사 분리(Separation of Concerns, SoC)

이 짧은 코드 안에도 굉장히 많은 관심사가 포함되어 있습니다.

‘concern’을 관심사가 아닌 걱정으로 해석[2]하면 조금 다른 관점의 사고를 할 수 있습니다.

뭔가 생각할 게 갑자기 굉장히 많아진 느낌이지요? 유지보수 하기 좋은 코드라는 것은 결국 미래에 어떤 변화가 발생했을 때 이에 쉽게 대응할 수 있는 코드라고 할 수 있습니다. 그러려면 미리 미래에 발생할 가능성이 있는 일들에 대해 고민을 하고, 처음부터 향후 상황 변화에 쉽게 대응할 수 있도록 프로그램을 작성하는 것이 필요합니다. 그런데 한꺼번에 저렇게 많은 걱정을 해야 한다면 상당히 골치 아프겠죠.

관심사의 분리는 프로그램을 관심사 별로 쪼개서 가능하면 한 번에 한 가지 걱정만 함으로써 프로그램 개발과 유지보수 시의 복잡성을 줄이자는 것입니다. 관심사의 분리가 잘 이뤄지면, 개별 부문을 이해하기 쉽고, 각 부문을 재사용할 수 있게 되며, 한 부문을 개선하거나 수정할 때 다른 부문에 대해 자세히 알 필요가 없어지고, 다른 부문이 변하는 것에도 신경 쓸 필요가 없어지는 장점이 있습니다.

Reference