관심사의 분리(Separation of Concerns, SoC)는 한 문제의 여러 측면을 구별해 각각 살펴보는 사고와 설계의 원칙이다. 여기서 관심사는 개인의 취향보다 정확성, 효율, 표현처럼 검토할 측면을 뜻한다. 에츠허르 데이크스트라(Edsger W. Dijkstra)는 한 측면에 집중하되 다른 측면도 존재한다는 사실을 잊지 않는 방법으로 설명했다. (데이크스트라, 과학적 사고의 역할)
한 번에 무엇을 보는가
- 웹사이트를 검토한다면 내용이 맞는지, 읽기 편한지, 느린 환경에서도 작동하는지를 나누어 살펴볼 수 있다. 하나를 통과했다고 나머지까지 해결된 것은 아니다.
- HTML의 내용 구조, CSS의 표현, 자바스크립트의 동작을 구별해 읽는 것도 연습이 된다. 파일 개수보다 각 부분이 맡은 일과 서로 주고받는 정보를 먼저 확인하자.
- 단일 책임 원칙은 무엇 때문에 함께 바뀌는지에 따라 소프트웨어의 경계를 정한다. 관심사의 분리는 질문을 나누어 검토하기에도 적용할 수 있다. 나눠 살핀 뒤에는 전체 작업에서 서로 충돌하는 조건이 없는지 다시 읽어야 한다.