단일 책임 원칙
소프트웨어 아키텍처/설계의 주요 목표 중 하나는 각 소프트웨어 엘리먼트의 책임을 할당하는 것입니다. 단일 책임 원칙은 다음 한 문장으로 표현됩니다.
클래스는 오직 하나의 변경 사유를 가져야 한다.
로버트 C. 마틴
클래스가 맡은 책임은 각각 그 클래스가 변경될 잠재적 사유입니다. 클래스가 독립적으로 변경 가능한 책임을 여럿 짊어지고 있다면 안정적일 수 없죠. 따라서 SRP에 따라 단일 책임을 가진, 즉 변경 사유가 오직 하나인 클래스를 정의하라는 것입니다.
이 원칙을 마이크로서비스 아키텍처에 적용하면 하나의 책임만 가진 작고 응집된 서비스를 정의할 수 있습니다. 덕분에 더 작고 안정된 서비스를 만들 수 있죠. 새로운 FTGO 아키텍처는 SRP를 실천한 좋은 본보기입니다. 주문 접수부터 주문 준비, 배달에 이르기까지 소비자가 주문한 음식이 배달되는 과정 하나하나 모두 개별 서비스가 맡아 처리합니다.