Legacy의 사전적 의미는 "유산" 정도 되는데 어떻게 보면 유구한 역사를 띄고 있다고 해석할 수 있으나 프로그래밍 영역에서는 많은 경우 "원래 부터 있던 좀 구닥다리의..." 라는 뉘앙스를 많이 풍긴다.
왜 우리는 구시대의 유물인 Legacy를 하려고 드는가?
처음에는 STS(Spring Tool Suite)를 이용해서 프로젝트를 만들 때 당연히 Legacy라는 단어를 사용하지 않았다. 그런데 새로운 개발 방식인 Boot를 밀기 위해서 노골적으로 이전 개발 방식에 대해 Legacy라는 모멸적인 단어를 부여하며 더 이상 사용하지 않기를 권장하고 있다.
심지어 최근 툴인 STS 4.X 이상 부터는 아예 Legacy 프로젝트 생성 자체를 지원하지 않는다. 메뉴 자체가 없어져버렸다. ㅜㅜ
스프링 Boot는 정말 잘 만들어진 개발 도구이다. 대략의 의도만 전달해도 프로젝트가 뚝딱 만들어지고 능숙한 개발자라면 30분 정도만 작업해도 DB까지 연동해서 웹 환경에서 로그인 처리 정도는 구성할 수 있다. 이를 위해 다양한 설정 자동화와 템플릿들이 제공된다. (요즘은 여러 모듈의 연결이 필수이므로 프로그래밍은 설정이 반이다. ㅜㅜ)
그런데 이 자동화된 설정은 자칫 부트 바보를 낳을 수 있다. 왜 이게 되는지 모르고 프로그램을 작성하다보면 약간의 수정이 필요한 상황에서도 손을 못대는 경우가 왕왕 발생한다. 실제 개발하다보면 Boot로만 개발해본 친구들은 약간의 돌발 상황에서도 쩔쩔매기도 한다.
따라서 개인적인 생각으로는 공부는 Legacy로 해서 원리를 고민해보고, 개발은 Boot로 해서 속도를 향상시키는 것이 좋다.
Legacy 개발 환경 구축하기
전술했듯이 최신의 스프링 개발 환경에서는 Legacy 환경을 지원하지 않기 때문에 스링이 꽁꽁 숨겨놓은 개발 환경을 찾아와야 한다. 4.x 계열에서는 Legacy를 지원하지 않기 때문에 우리는 3.X 환경이 필요하다.