비실이의 개발 성장기

단일 책임 원칙 (SRP) 이란?? 본문

디자인패턴

단일 책임 원칙 (SRP) 이란??

DubbingLee 2017. 3. 12. 17:13


* 단일 책임 원칙이란 ?


Single Responsibility Principle 의 약어


객체지향 5대 원리 SOLID 중, 가장 첫번째 S 


각각의 함수, 클래스 및 컴포넌트는 한가지의 기능만 수행하도록 개발하는 것






* 단일 책임 원칙이 왜 필요할까 ?


하나의 함수 혹은 클래스가 단 한가지 기능만 수행하도록 개발되어 있다면 사람이 코드를 봤을 때 이해하기 쉽다는 점이 있음 (가독성이 좋음)


만약 함수의 기능에 문제가 발생하여 해당 함수를 수정 할 일이 발생하였을 경우, 한가지 기능만 하기 때문에 유지보수 하기가 쉽다. 







* 단일 책임 원칙에 위배 된다면 어떤 문제가 발생할 수 있을까 ?


함수 또는 클래스가 두 가지 이상의 기능을 가지고 있다면 함수 로직을 파악하는데 그만큼 시간이 걸리게 된다. (가독성이 떨어짐)


한가지 기능만 수행했을 경우에 비해 상대적으로 버그가 발생할 확률이 높아진다. (유지보수가 힘듦)






* 산탄총 수술 (Shotgun sergery) ?


여러가지 기능을 수행하는 코드를 산탄총알에 비유하여 해당 코드를 SRP 원리에 맞게 리팩토링 하는 것을 말함.


해당 코드를 리팩토링 한다면, 우선 해당 기능이 가장 많이 사용되고 있는 함수 혹은 클래스를 찾아서 기능을 책임하도록 권한을 위임하고, 

만약 기능 사용 빈도가 비슷하다면, 새로운 클래스를 만들어서 해결가능









리스코브 치환 원리 (The Liskov Substitution Principle) 바로가기


'디자인패턴' 카테고리의 다른 글

단일 책임 원칙 (SRP) 이란??  (0) 2017.03.12
Flux 아키텍쳐 란??  (0) 2017.02.12
리스코브 치환의 원칙(LSP) 에 대해 알아보자  (0) 2017.02.11
0 Comments
댓글쓰기 폼