디자인 패턴 같은 건 적용하는 사람은 경험도 되고 좋은데, 그 사람이 영원히 유지보수할 건 아니잖아요? 못 알아먹는 코드 만들어두면 남은 사람들이 고생해요.
아직 하나의 언어와 프레임워크를 깊게 파고들어 보지 않았던 시절엔 그 말이 무조건 정답이라 생각했다. 그래, 패턴은 그저 이름을 붙여놓은 것일 뿐, 형식이 실재를 넘어선 것이다라고.
지금은 보인다. 그가 가진 시야가 전체를 담기에 충분하지 않았음이. 결국 그가 만들어낸 코드들도 다 디자인 패턴이었다. 스스로 자신이 만들어낸 코드와 자신이 비난한 디자인 패턴이 같은 것임을 몰랐을 뿐. 해외 서비스에 프락시 패턴을 썼고, 싱글톤으로 정보를 관리했고 api에 전략 패턴을 적용해두었다. 매일 쓰는 프레임워크도 다 디자인 패턴으로 구성됐고 그 위에 비즈니스 로직을 얹어 손쉽게 쓰고 있을 뿐이다. 그가 만든 모든 코드는 결국 다 디자인 패턴의 부분집합이었다. 자기부정을 그렇게 강력하게 하던 사람이었다니... 무얼 얘기하고 싶었던 것인지 모르겠다.
공부는 시야를 넓혀준다. 보이지 않던 것이 보이고 다른 것으로 생각됐던 것이 실은 같은 것이었음을 알게 된다. 잘못됨과 다름을 구분할 줄 알게 되고 필요와 불필요를 판단하는 근거를 갖게 된다. 남이 만들어둔 프레임에 갇히지 않고 그 안과 바깥을 계속해서 탐구해나가는 공부, 소프트웨어 엔지니어에게 가장 중요한 덕목이 아닐까 생각한다.