콘텐츠
Spring Tool Suite(STS) 설치 이후
이전 포스트 Spring 개발의 시작 STS(Spring Tool Suite) 설치하기에서 STS 를 설치해 스프링 기반 웹 애플리케이션을 개발하기 위한 조건을 갖추었습니다.
그 이전에도 가볍게 다루었지만 VSCode 와 같은 프로그래밍에 적합한 텍스트 편집기와 이클립스와 같은 대중화된 IDE를 두고 STS를 쓰는걸까? 궁금해지더군요.
그래서 가볍게 정리를 해봤던 김에 좀 더 상세하게 STS가 무엇인지 정리해 봐야겠단 생각이 들게 되었습니다. 👍
IDE 란?
IDE 는 Intergrated Development Environment 의 약자로 한글로 이야기 하자면 통합 개발 환경이란 의미 입니다.
더욱 쉽게 이해하자면 우리가 프로그램을 개발할 때 여러가지 소프트웨어를 사용하게 되는데 IDE 에서 이런 소프트웨어 들을 통합해서 개발 할 수 있게 만들어 줍니다.
대표적으론 이클립스(Eclipse) 라는 소프트웨어가 있죠. 자바 애플리케이션을 개발할 때 널리 사용 됩니다.
이클립스와 같이 각 프로그래밍 언어 마다 특화 되어 있는 IDE가 존재 하는데 C# 은 Visual Studio, Python 을 위한 PyCharm 등이 있죠.
코드 에디터 VSCode
그런데 요즘은 또 Node.js 등을 개발할 땐 이런 IDE 가 아닌 코드 에디터 VSCode(Visual Studio Code)를 사용합니다.
본래 역할은 텍스트 편집기 지만 여러 확장 기능을 통해 거의 IDE 수준으로 개발이 가능해 졌거든요.
IDE 대비 장점으로 사용 시 체감 되는 아주 큰 장점이 있는데 코드 에디터는 매우 가볍습니다.
그래서 엔터프라이즈급의 규모가 큰 애플리케이션의 개발엔 IDE 를 통한 관련 프레임워크(지금 포스트 에서 다루는 스프링 등) 를 활용하지만 가벼운 서비스의 애플리케이션을 개발할 땐 코드 에디터를 이용해 개발하는 것도 선호 되며 자연스러워 졌습니다 👍
Spring Tool Suite(STS) 는 그래서 무엇인가?
자, 그럼 다시 돌아와서 STS 에 대해 정리해보겠습니다.
저번에 제 블로그 포스트를 보셨거나 STS 를 다운로드 및 설치해보신 분은 아시겠지만 이클립스와 거의 흡사한 모습을 지닌 소프트웨어임을 알 수 있습니다.
일단 먼저 STS 에 대해 가볍게 정리하겠습니다. STS 는 주로 자바 언어를 사용하는 스프링 프레임워크 기반의 애플리케이션을 개발할 때 사용 됩니다.
그리고 이 소프트웨어는 위에서 언급한 이클립스를 기반으로 좀 더 스프링 프레임워크에 특화 하여 만든 소프트웨어 입니다.
그래서 보편적으로 STS 를 설명하면 스프링을 개발하기 위한 이클립스 기반 IDE 다 라고 말할 수 있었습니다.
이클립스 확장 플러그인 STS
그런데 STS 는 독립된 IDE 형태로도 제공 되지만 기존 이클립스 환경을 그대로 사용, STS 관련 도구도 쓰고 싶다 했을 때 확장해서도 사용 가능 합니다.
설치하는 방법은 간단 합니다. 바로 이클립스 마켓플레이스를 통해 설치하여 사용할 수 있죠.
플리그인을 제공하게 되면서 기존 이클립스 IDE 환경을 유지, 신규로 스프링 개발을 위한 최신 도구를 추가할 수 있게 됩니다.
그래서 가끔 스프링 개발을 시작하며 여러 블로그 글을 보다 보면 혼동이 올 수 있습니다. 😯
블로그 글 마다 STS 를 직접 설치, 사용하면서 작성 된 글이 있고 이클립스 환경에서 플러그인으로 붙인 다음 사용하는 경우가 있거든요.
두 방식 모두 스프링 기반 앱 개발은 문제 없이 가능하고 개발자의 선호에 따라 선택하면 됩니다.
Sptring Tools 4 등장 이후
그런데 이는 Spring Tools 4 부터는 조금 잘못된 표현이 되었습니다.
그 이유는 Spring Tools 4 버전 부터 IDE에 구애 받지 않고 현대 개발 트렌드에 맞춰 텍스트 편집기인 VSCode 기반으로도 제공되고 있기 때문입니다.
Spring Tools 4 는 STS 의 최신 버전이고 이는 전통적으로 이클립스 기반으로 제공되던 STS 와 다르게 VSCode, Theia IDE 기반으로도 제공 되고 있습니다.
그래서 만약 VSCode 기반의 STS4(보편적으로 커뮤니티 에선 ST4 보단 STS4 로 사용 됩니다.) 으로 개발한다 했을 땐 이는 IDE 가 아닌 것이죠.
Spring Tools 4 공식 소개에서 IDE agnostic 는 한글로 IDE 비종속성 입니다.
즉, 구 STS 에서 STS4 가 되면서 이젠 이클립스 뿐 아니라 경량 코드 에디터, Theia 같은 다른 코딩 환경에서 사용할 수 있도록 업데이트 되었단 내용 입니다.
그래서 개발자가 선호하는 환경에 맞춰 스프링을 개발 할 수 있게 되었다 설명하고 있습니다.
Spring Tool Suite 에 포함된 도구
자, 그래서 우리가 스프링 개발을 위해 STS 를 사용한다는 것은 이해 했습니다. 그럼 STS 에 어떤 도구들이 포함되어 있는 걸까요?
예를 들어 저는 스프링을 개발 하려고 메이븐을 설치했습니다. 그런데 알고보니 이미 STS 내에 메이븐이 Embedded(내장) 되어 제공 되어 있었어요. 😯
이처럼 별도로 설치하지 않아도 기본적으로 포함 되어 있는 STS 주요 도구들은 다음과 같습니다.
- 메이븐(Maven): 제가 블로그에서도 이미 다룬 적 있는 빌드 자동화 도구 입니다.
- 그래들(Gradle): 메이븐과 역할이 유사한 빌드 자동화 도구며 프로그래밍 언어인 Groovy 를 기반으로 하고 있습니다.
- 깃(Git): 버전 관리 시스템 혹은 형상 관리 시스템으로 불리는 도구 입니다. SVN 과 같은 역할을 합니다.
- 스프링 부트(Spring Boot): 이것도 이전 포스팅에서 가볍게 다루었습니다. 스프링 기반의 앱을 쉽게 개발, 실행, 배포할 수 있게 해줍니다.
- Pivotal tc Server Integration: Pivotal tc Server 는 Apache Tomcat 의 진보 된 WAS 입니다.
- Embedded Servlet Containers Support: Spring Boot 애플리케이션 개발 시 내장된 서블릿 컨테이너(예: Tomcat, Jetty, Undertow)를 사용하여 애플리케이션을 실행하고 테스트할 수 있게 해줍니다.
이 외에도 여러 도구들이 존재 합니다. 그래서 이 중 이미 알고 있거나 별도로 설치하려 했던 도구가 있다면 이미 내장 된 도구를 사용해 보는것도 좋겠습니다.
JDK 는 내장되어 있나요?
결론부터 말하자면 이클립스 기반 STS 의 경우 내장되어 있긴 한데 이는 IDE 를 실행 시키기 위한 기능들만 보유하고 있어 앱 개발 시엔 별도의 JDK(OpenJDK, Oracle JDK 등) 를 설치하고 연결하여 사용할 것을 권장하고 있습니다.
오늘 이렇게 STS 를 정리하며 많은 것을 배웠습니다. 설치 했을 땐 계속 이클립스와 STS 간 혼동이 오고 어떻게 사용하는 것이 옳은지 궁금 했고 VSCode 나 이클립스 기반 중 무엇을 선택해야 할지도 고민이 되었었는데요 지금은 좀 정리가 되었습니다.
다음 포스팅 에선 STS4 가 과거 버전과 어떤 차이점을 지니는 지 한번 정리해 보면 좋을 것 같네요 👍