추상화 압박
패턴이나 리팩토링과 같은 고급스런 언어추상화(?)개념을 공부하다보면 언어를 크게보는 눈이 생긴다. 그리고 이런 공부들로 인해 덕보는 경우가 생기게된다. 주로 이런식.
“와 이거 하나만 바꾸니까 쫘르륵 다 바뀌었다!”
“이 로직에 if문하나 추가했더니 만사오케이네?!”
덕만 보면야 다행이겠지만 이런 식으로 덕을 보다보니 과도하게 추상화하려는 습관이 생기는 것 같다. 물론 추상화가 나쁜 것은 절대절대 아니다. 하지만 아래와 같은 경우에 드러나지 않는 문제가 될 수 있다.
개념적으로는 맞는 것 같은데 실제 추상화 구현을 하기 힘든 모델인데 억지로 구현했다던가, 지레짐작 기능추가를 염두해두고 오버헤드가 큰 작업을 추가한다던가 하는 것 들 말이다. 이런 문제들은 대부분 쉽게 드러나지 않고 일정연기,복잡도증가 정도의 문제밖에 없기에 스스로도 인지를 잘 못하는 것 같다. 파울러 형아도 “리팩토링“책에서 삼진아웃제도를 말하고 있다. 삼진이 되기전의 아웃은 반칙이다.
Copy&Paste, 일괄바꾸기 등이 언어구조상으로 범죄기는 하지만 정삭참작, 생계형범죄라는 것도 있기 마련.
좀 더 영리하게, 좀 더 간결하게(Be Smart, Be Simple)할 필요가 있다.
Tags: abstract, BeSmartBeSimple