c9u11

잘못된 추상화

🔗아래 블로그 글에 대한 리뷰 글입니다. 글에 대한 상세한 내용은 작성하지 않으니 내용은 아래 링크를 통해 확인하시길 바랍니다. https://velog.io/@eunbinn/dry-the-common-source-of-bad-abstractions?utm_source=substack&utm_medium=email

요약

사용자의 요구사항에 따라 코드가 어떻게 발전하는지 고민 없이 DRY의 원칙을 지킨다면 역효과를 불러일으킬 수 있다.

리뷰

이 글에서는 DRY 원칙을 지키며 발전하는 코드를 3번에 나누어 보여주고있다.

첫번째 코드는 누구나 생각해볼만한 코드다. 단순히 동일한 형태를 표현하기 위해 사용하는 정보에 맞게 객체 규격을 만들고 map 함수를 통해 반복하는 것이다.

그렇지 내가 했어도 그렇게 수정 했을 거야.

두번째 코드는 팩토리 패턴을 통해 첫번째 코드의 문제점을 개선했다. 평상시 개발자의 실수를 방지하는 코드를 굉장히 좋아하는 편인데 미처 생각하지 못했던 나에게 너무 실망스럽다.

아,, 팩토리 패턴을 적용하면 실수도 줄이고 쉽게 수정이 가능하겠구나

세번째 코드는 그동안의 코드를 보완하고 예외 처리를 위해 추상화했다.

오히려 반복문을 없애고 추상화를 통해 예외를 잘 처리할 수 있겠구나

각 코드를 보았을 때 한 단계씩 성장하는 느낌이었다.

만약 처음부터 세번째 완성된 코드로 배웠고 이를 사용해왔다면 더 나은 개발자일까? 첫번째 과정부터 세번째 과정까지 아니면 더 많은 과정을 거쳤던 개발자라면 그동안의 과정을 토대로 다른 상황에서 응용하고 발전했을 것이다.

이처럼 코드의 발전 과정을 살펴보는 것도 큰 도움이 된다고 생각한다. 사소한 부분에서 코드가 어떻게 발전했는지 고민하는 것이 어렵다면 내가 사용하고 있는 “라이브러리가 왜 생겼지?” 이 부분에 집중해서 고민을 해보면 좋을 것 같다