Spring Core/자질구래

Hello Legacy Spring

은서파 2020. 5. 15. 09:48

이번 포스팅에서는 Legacy 기반의 스프링 프로젝트 생성에 대해서 다룬다.

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 환경이 필요하다.

현재 3.x의 가장 최종 버전은 3.9.12 버전이다. 

https://github.com/spring-projects/toolsuite-distribution/wiki/Spring-Tool-Suite-3

 

spring-projects/toolsuite-distribution

the distribution build for the Spring Tool Suite and the Groovy/Grails Tool Suite - spring-projects/toolsuite-distribution

github.com

페이지로 이동해서 zip 버전을 다운로드 받는다.

 

사실 STS라고 하지만 위 글처럼 Eclipse 기반이기 때문에 기존 이클립스 개발자라면 툴 사용법을 따로 익힐 필요는 없다. 그냥 스프링 개발 툴이 플러그인 되어있는 이클립스라고 생각하면 된다.

 

압축을 풀었다면 다음 할 일은 인코딩 설정이다.

압축 해지된 곳의 sts-3.9.12.RELEASE 경로에 들어가보면 STS.ini 파일이 있는데 맨 마지막에 다음 내용을 추가해서 기본 인코딩을 UTF-8로 설정해주자.

-Dosgi.module.lock.timeout=10

# 다음 내용을 추가하세요.
-Dfile.encoding=utf-8

 

툴을 실행 시킨 후 encoding 설정이 잘 되어있는지 확인해본다. 다음은 CSS 파일에 대해 UTF-8로 설정된 것을 확인할 수 있다.

 

이외에 필요한 설정들은 본인 취향에 맡긴다.

외장 브라우저를 연동하거나, 폰트를 설정하거나 기타 등등...

 

다음 포스팅에서는 스프링에서 배포 및 라이브러리 관리에 사용되는 Maven에 대해서 살펴보자.