추상화의 함정
프로그래밍에서 중복제거는 매우 중요한 개념입니다. 프로그래밍 개념인 DRY(Don't Repeat Yourself)는 중복을 최대한 제거하려는 노력을 의미합니다. 중복을 제거하는 주요한 방법 중 하나는 추상화입니다. 가령 비슷한 연산을 수행하는 코드가 있다면, 이를 하나의 공통 모듈(함수 등)을 만들어 중복을 제거할 수 있습니다. 그렇지만 시간이 흘러 추상화한 공통 모듈에 예외 케이스, 추가적인 기능, 버그가 발생하게 된다면 어떻게 될까요? 공통 모듈은 점점 더 크고 복잡해지게 됩니다. 코드가 거대해지며 맥락을 파악하기 점점 힘들어지고, 순환 참조가 생기게 될 수도 있습니다. 즉, '잘못된 추상화는 중복 코드보다 나쁘다'의 예시가 됩니다. 중복은 장기적 관점에서 좋지 않습니다만 잘못된 추상화 역시 장기적 관점에서 좋지 않습니다 따라서, 섣불리 추상화를 하기 보다는 공통적인 코드가 '우연적인지', '본질적으로 변하지 않을지' 를 시간을 두고 충분히 판단한 뒤에 진행할 필요가 있습니다. 소개해 드리는 글은 React 개발자 DanAbramov가 세미나 에서 발표한 경험담을 번역한 게시물입니다. 적절한 이미지와 함께 공감되는 내용으로 아주 재미있게 읽었습니다. https://velog.io/@gomjellie/The-Wet-Codebase