나는 Spring framework의 장점을 UNIX의 장점에 비유하곤 한다. POJO에 대한 메타 모델을 정의하고 이를 바탕으로 POJO의 Factory 및 Registry 역할을 한다는 아주 기본적인 생각으로, 그 역할 정의를 훼손하지 않고 다양한 확장을 통해 수많은 기능을 제공하기 때문이다. 이러한 확고한 디자인 철학은 UNIX와 마찬가지로 감동을 가져다 준다.
그러나 이런 구조적 아름다움은 UNIX의 단점 (또는 단점 아닌 단점) 또한 그대로 보여주고 있다. 즉 그 구조가 훤히 들여다 보인다는 점이다. 거기에다 오픈소스이기까지 하니, 내가 아는 만큼 모든 것을 다 이해하고 시험할 수 있다. 쓰이지 않는 것을 가차 없이 빼 버릴 수도 있고, 언제든 추가할 수 있다. 아는게 별로 없다면? 아무리 간단한 일이라도 원하는 대로 할 수가 없다. 어쩌면 초심자들에게 Spring framework는 옛날 리눅스에서 X 서버 한 번 띄워 보겠다고 시커먼 콘솔 앞에서 몇 시간을 보내던 그 심정과 다를 바 없는 느낌으로 다가오고 있지는 않을까?
가장 대중적인 UNIX 계열 운영체제인 Linux를 사용하는 나지만, 일반인에게 Linux를 권하기가 망설여지는 것이 사실이다. 같은 UNIX 계열이지만 놀라울 정도로 잘 포장된 MaxOS X나 그저 무난한 MS Windows를 추천할 것이다. 나 스스로는 UNIX를 꽤 잘 안다고 생각 (또는 자만) 하고 있으므로 항상 Linux를 선호할 지라도 말이다. 그것은 Linux가 나빠서가 아니다. 단지 Linux가 잘 맞는 경우와 그렇지 않은 경우가 있기 때문이다.
같은 맥락에서, 모든 개발자들이 Spring framework을 자유 자재로 사용할 수는 없을 것이며, 따라서 쉽사리 추천하거나 강요할 수 없을 것이다.
UNIX든 Windows든, 운영체제가 앞으로 갈 길은 아주 많이 남았다. Spring framework도 마찬가지다. Spring framework 덕택에 개발이 많이 편리해졌다고는 하지만, 나는 그 편리함의 정도가 우리가 꿈꾸는 수준의 발 끝에도 미치지 못하는 수준이라고 생각한다. 누구에게나 망설임 없이 추천할 수 있는 쉽고 강력한 프레임워크가 등장한다면 Spring에 대한 열기는 여느 다른 프레임워크가 한 때 누렸던 영광과 마찬가지로 순식간에 사그러들 것이다. 그날이 영원히 오지 않지 않겠느냐 묻는다면, 그만큼 암울한 질문은 이 세상에 없지 않냐고 반문하고 싶다.
역시나 결론은 ‘the best is yet to come!‘