Community

소프트웨어 디자인 변경의 선택👀

객체의 구조를 변경하는 것과 객체의 동작을 변경하는 것은 근본적으로 다릅니다. 코드 변경, PR 발행, 코드 리뷰의 측면에서 두 가지는 차이가 없어 보이지만, 이 두 가지는 가역성이라는 요소 때문에 구분됩니다. 소프트웨어 디자인 측면에서 가역성의 의미는 되돌리기 쉬운 것은 덜 중요한 것이고 되돌릴 수 없는 결정이 중요한 결정이라는 것입니다. 예를 들어, 객체의 동작을 변경하여 국세청으로 전송되는 보고서에 인쇄된 값을 변경하는 경우, "어이쿠. 신경 쓰지 마세요."라고 말하기가 쉽지 않습니다. 영업 퍼널에서 이탈한 잠재 고객을 다시 돌아오게 하기는 어렵습니다. 객체 행동 변화는 되돌리기 어렵습니다. 하지만 객체의 구조를 바꾸면 되돌리기가 쉽습니다. 추출된 코드가 마음에 들지 않는다면 다시 인라인하면 됩니다. 되돌릴 수 있는 결정과 되돌릴 수 없는 결정을 다르게 취급해야 합니다. 되돌릴 수 있는 의사 결정은 같은 수준의 면밀한 검토가 필요하지 않으므로 되돌릴 수 없는 행동 변화를 다시 확인하는 데 더 많은 시간과 에너지를 확보할 수 있습니다. 하지만 되돌릴 수 없는 객체 구조 변경이나 적어도 되돌리기에는 비용이 많이 드는 객체 구조 변경이 있습니다. 이러한 상황은 어떤 식으로 접근해야 하는지 더 조심해야 할 것입니다.

알림

알림이 없습니다