오늘 일일 스크럼 회의에서 한 팀원이 해야 할 일을 얘기하면서 나를 괴롭게 만들었다.
코드 일부분을 팩토리 패턴을 적용해 수정하겠다는 것이다. 내가 보기에 그 부분에 팩토리 패턴을 적용해봐야 이런 패턴을 적용했어요~라는 것 외에는 바뀌는 부분이 아무것도 없다. 아 물론 바뀐다. 그것도 아주 많이. 패턴을 적용함으로써 다른 부분도 다 수정을 해야하니까.
결론부터 말하면 그 사람이 틀렸다. 패턴은 자연스럽게 적용이 되어야하는거지 패턴을 적용하기 위해서 다른 것을 고치는게 아니다. 이런 끼워맞추기는 개발에 독이 된다. 이 부분 좀 바꾸고 저기도 좀 바꾸고 이렇게 하면 여기에 어떤 패턴을 적용할 수 있을것 같은데라는 생각이 들면 대부분의 경우에는 답이 아니다. 어렵고 힘들게 공부해서 알아낸 것들을 쓰고 싶고 자랑하고 싶은 그 맘을 모르는 것은 아니지만 그런식으로 들이대니 안티패턴같은 얘기가 나오는 것이다.
패턴은 누구나가 반드시 따라야할 십계명같은 지침이 아니다. 비슷한 일을 하던 여러 사람들간에 반복적으로 보이는 공통점들, 그러니까 말 그대로 패턴일 뿐이다. 바퀴를 다시 발명할 필요는 없지만, 모든 바퀴를 같게 만드는 일도 대재앙이다.
열 사람이 있으면 서로다른 열 개의 코드가 생긴다. 대부분의 경우 그 것들은 서로 다른 것이지 틀린 것이 아니다. 패턴을 적용하고나서 이건 xx 패턴으로 만들었습죠!라고 말하면서 자부심을 느낀다면 그건 당신이 아직 갈길이 멀다는 얘기니, 밤잠 좀 줄이고 코딩을 더 해야한다는 말이다.
ps. 대가의 말이라면 꺼뻑죽고 책에 있는대로 프로젝트를 끼워 맞추려는 이 아저씨를 어떻게 개종시켜야할지 고민이다.
