더북(TheBook)

단일 책임 원칙

소프트웨어 아키텍처/설계의 주요 목표 중 하나는 각 소프트웨어 엘리먼트의 책임을 할당하는 것입니다. 단일 책임 원칙은 다음 한 문장으로 표현됩니다.

클래스는 오직 하나의 변경 사유를 가져야 한다.

로버트 C. 마틴

클래스가 맡은 책임은 각각 그 클래스가 변경될 잠재적 사유입니다. 클래스가 독립적으로 변경 가능한 책임을 여럿 짊어지고 있다면 안정적일 수 없죠. 따라서 SRP에 따라 단일 책임을 가진, 즉 변경 사유가 오직 하나인 클래스를 정의하라는 것입니다.

이 원칙을 마이크로서비스 아키텍처에 적용하면 하나의 책임만 가진 작고 응집된 서비스를 정의할 수 있습니다. 덕분에 더 작고 안정된 서비스를 만들 수 있죠. 새로운 FTGO 아키텍처는 SRP를 실천한 좋은 본보기입니다. 주문 접수부터 주문 준비, 배달에 이르기까지 소비자가 주문한 음식이 배달되는 과정 하나하나 모두 개별 서비스가 맡아 처리합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.