온프레미스 개발환경

[4탄] STS 설치 & JBoss 서버 연동

finvault 2026. 4. 1. 18:16

이 번에는 사용해야 할 IDE 중 하나인 STS를 설치 하고 이 IDE 와 JBoss 서버 연동을 목표로 하겠습니다

진행 하기전 간단 WorkFlow 입니다

 

finvault Ai 환경구성 도식화 이미지
finvault Ai 환경구성 도식화 이미지

 

 

철학: "IDE와 빌드 도구도 완벽히 통제하라"

3탄까지 진행하여 JBoss 서버를 독립적인 무균실(JDK 21) 환경에서 띄우는 데 성공했습니다.

하지만 개발은 메모장으로 하는 것이 아닙니다.

이번 4탄에서는 스프링 개발의 표준 IDE인 STS(Spring Tool Suite) 5.1.1을 설치합니다. 여기서 가장 중요한 것은 STS 에디터 자체를 띄우는 JDK, Gradle 빌드를 수행하는 JDK, JBoss 서버가 도는 JDK, 이 세 가지가 한 치의 오차도 없이 **동일한 궤도(JDK 21)에서 돌아가도록 강제 주입(Hardcoding)**하는 과정입니다.

 

01. STS 5.1.1 독립 설치

Step 1. STS 다운로드

https://spring.io/tools#eclipse 접속

Spring Tools for Eclipse (STS) 선택

Windows x86_64 버전 다운로드

 

STS PAGE
STS PAGE

 

 

Step 2. 경로 단순화 및 독립 디렉토리 배치

⚠️ 경로가 너무 길면 오류 발생! 윈도우 환경에서 파일 경로가 256자를 초과하면 알 수 없는 오류가 발생합니다. 반드시 아래와 같이 짧고 직관적인 경로로 정리하세요.

 

📁 [기존 경로 - 너무 긺] C:\projects\FinVault\ide\sts\spring-tools-for-eclipse-5.1.1.RELEASE\sts-5.1.1.RELEASE

짧게 정리

📁 [최종 경로] C:\projects\FinVault\ide\sts-5.1.1

 

다운로드 경로
다운로드 경로

 

폴더명 줄인 STS
폴더명 줄인 STS

 

최종 폴더 구조 확인:

C:\projects\FinVault\ide\sts-5.1.1

   ├─ SpringToolSuite4.exe ← 실행 파일

   ├─ SpringToolSuite4.ini ← JDK 설정 파일 (핵심!)

   ├─ plugins\

   └─ ...

 

02. SpringToolSuite4.ini 수정 - JDK 강제 지정

STS도 자바(Java)로 만들어진 프로그램입니다. STS가 기동될 때 시스템에 깔린 엉뚱한 JRE를 물고 켜지는 것을 막기 위해 ini 설정 파일을 조작합니다.

 

Step 1. ini 파일 열기

 

C:\projects\FinVault\ide\sts-5.1.1\SpringToolSuite4.ini ↓ 메모장 또는 VS Code로 열기

 

메모장 화면
메모장 화면

 

Step 2. -vm 항목 수정

파일 안에서 기존 경로를 찾습니다:

-vm plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_25.0.2.v20260203-1141/jre/bin

 

이 부분을 독립 JDK 21 경로로 변경합니다:

-vm C:\projects\FinVault\bin\java\jdk21\bin\javaw.exe

 

저장 후 닫습니다.

 

💡  시선: 나중에 이 .ini 파일에서 메모리(Xms, Xmx) 세팅 등 고도화 작업을 추가로 진행하겠지만,

              지금 당장은 **"STS가 무조건 내 JDK 21로만 켜지게 만든다"**는 가장 중요한 첫 단추를 꿴 것입니다.

 

 

03. STS 최초 실행 & Spring Boot 프로젝트 생성

 

Step 1. STS 실행

 

SpringToolSuite4.exe 실행

Workspace 경로 설정: C:\projects\FinVault\workspace\FinVault

Launch 클릭

 

STS Launch
STS Launch

 

 

Step 2. Microsoft Defender 보안 설정

STS 최초 실행 시 팝업이 나타납니다:

 

"Keep Spring Tools for Eclipse being scanned by Microsoft Defender"

이 옵션 선택 후 Proceed 클릭!

 

⚠️ 금융권 프로젝트는 보안이 최우선입니다.

      Microsoft Defender 스캔을 반드시 유지하세요.

     스캔을 비활성화하면 보안 감사에서 문제가 될 수 있습니다.

 

sts 최초화면
sts 최초화면

 

 

Step 3. Spring Starter Project 생성

 

File → New → Spring Starter Project

설정:

Name : FinVault

Group : com.finvault

Artifact : FinVault

Packaging : War ← 반드시 War 선택!

Java Version: 21

 

new project
new project

 

Step 4. Dependencies 선택

복잡한 것 다 빼고 딱 두 가지만 선택 후 Finish를 클릭합니다.

  • ✅ Spring Web
  • ✅ Spring Boot DevTools

Dependencies 선택
Dependencies 선택

 

04. Gradle 빌드 JDK 강제 통제

프로젝트가 생성되고 나면 Gradle이 스스로 빌드를 시작합니다. 이때가 가장 위험한 순간입니다.

 

[Gradle 기본 동작] 컴퓨터 전체를 뒤져서 아무 JDK나 끌어다 씀

엉뚱한 JDK로 빌드 → 버전 불일치 에러!

 

 

이를 막기 위해 프로젝트 폴더에 gradle.properties라는 **'족쇄'**를 채워야 합니다.

 

 

Step 1. gradle.properties 파일 생성

 

프로젝트 최상위 폴더(FinVault) 선택

Ctrl + N → General → File → Next

File name: gradle.properties

Finish 클릭

 

gradle.properties 파일 생성
gradle.properties 파일 생성

 

Step 2. JDK 경로 입력

 

org.gradle.java.home=C:\\projects\\FinVault\\bin\\java\\jdk21

저장합니다.

 

jdk 주입 및 저장
jdk 주입 및 저장

 

💡 Tip: 슬래시(\)가 아닌 역슬래시 두 개(\\)를 써야 윈도우 경로를 이스케이프 문자로 정확히 인식합니다.

      이제 Gradle은 다른 데 한눈팔지 않고 오직 이 경로의 JDK 21로만 빌드를 수행합니다!

 

 

Step 3. build.gradle 확인

build.gradle 파일 내부에 아래 내용이 있는지 확인합니다:

 

java {

         sourceCompatibility = JavaVersion.VERSION_21

         targetCompatibility = JavaVersion.VERSION_21

       }

 

⚠️ toolchain 방식으로 되어 있다면 위와 같이 sourceCompatibility 방식으로 변경하세요.

      toolchain 방식은 Gradle이 JDK를 자동으로 찾아 다운로드하려 하여 폐쇄망 환경에서 문제가 발생합니다.

 

toolchain
toolchain

 

sourceCompatibility
sourceCompatibility

 

 

05. HelloController 생성 - 배포 테스트 준비

JBoss 서버 연동 전 배포 확인용 Controller를 만듭니다.

 

클래스 생성

 

com.finvault 패키지 선택

Ctrl + N → Class 검색 → Next

Name: HelloController

Finish 클릭

 

 

그럼 이작업을 통한 전체 배포 및 확인 과정의 내용을 이미지로 보겠습니다

 

배포 및 확인 과정 플로워

 

 

Controller 신규 생성
Controller 신규 생성

 

Controller name 입력
Controller name 입력

 

간단한 코딩
간단한 코딩

 

코드 입력

package com.finvault;

 

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RestController;

 

@RestController

public class HelloController {

    @GetMapping("/hello")

     public String hello()

     {

           return "Hello World! FinVault JBoss EAP 8.1";

     }

}

 

 

 

06. STS와 JBoss 서버 연동

드디어 FinVault 프로젝트를 JBoss 서버에 배포할 준비가 되었습니다. JBoss를 STS 내부로 끌어옵니다.

 

Step 1. Servers 탭 열기

 

STS 상단 메뉴: Window → Show View → Other

팝업창에서 "server" 입력

Servers 클릭 → Open

STS 하단에 Servers 탭 생성!

 

show view 에 server 검색 후 선택
show view 에 server 검색 후 선택

 

하단 Server 탭 신규 추가
하단 Server 탭 신규 추가

 

 

Step 2. 새 서버 추가

 

"No servers are available..." 파란 글씨 클릭

Red Hat → JBoss Enterprise Application Platform 8.0 선택

Next 클릭

 

JBOSS SERVER 버젼 선택
JBOSS SERVER 버젼 선택

 

 

Step 3. 서버 경로 설정

 

Server Type: Local

Next 클릭

Home Directory: C:\projects\FinVault\was\jboss-eap-8.1 선택

JRE: jdk21 (Alternative JRE) 확인!

Next 클릭

 

서버경로설정1
서버경로설정1

 

서버경로설정2
서버경로설정2

 

Step 4. Project Facets 수정

서버 추가 시 아래 에러가 발생합니다:

 

The server does not support version 2.4 of the J2EE Web module specification.

 

해결 방법:

 

에러 발생 시 Add하지 말고 Finish로 빠져나오기!


프로젝트 우클릭 → Properties

Project Facets 클릭

Dynamic Web Module: 2.4 → 6.0 변경

Apply and Close

 

 

에러시 Finish
에러시 Finish

 

 

Dynamic 2.4
Dynamic 2.4

 

Dynamic 6.0
Dynamic 6.0

⚠️ 이 설정은 매우 중요합니다!

      Jakarta EE 10 기반의 JBoss EAP 8.1은 Dynamic Web Module 6.0 이상을 요구합니다.

      2.4로 유지하면 배포 자체가 거부됩니다.

 

 

 

Step 5. 프로젝트 서버에 추가

 

Servers 탭에서 Red Hat EAP 서버 우클릭

Add and Remove 클릭

FinVault 프로젝트 → Add 클릭

Finish 클릭

 

Server 추가 1
Server 추가 1

 

서버추가 2
서버추가 2

 

서버 추가 성공
서버 추가 성공

 

🎉 이제 STS 내부에서 코드 수정 → 빌드 → JBoss 배포가 다이렉트로 연결되는 완벽한 로컬 파이프라인이 완성되었습니다!

 

 

07. 전체 JDK 독립 설정 완료 확인

도구 설정 파일 설정 내용 상태
JBoss standalone.conf.bat set "JAVA_HOME=...jdk21" ✅ 완료
STS SpringToolSuite4.ini -vm ...javaw.exe ✅ 완료
Gradle gradle.properties org.gradle.java.home=...jdk21 ✅ 완료

 

 

 

08. 이번 탄 완료 체크리스트

  • [ ] STS 5.1.1 다운로드 및 독립 경로 배치
  • [ ] SpringToolSuite4.ini -vm 경로 수정 (JDK 21)
  • [ ] STS 실행 → Microsoft Defender 스캔 유지 선택
  • [ ] FinVault Spring Boot 프로젝트 생성 (WAR)
  • [ ] gradle.properties 생성 및 JDK 경로 입력
  • [ ] build.gradle sourceCompatibility 방식 확인
  • [ ] HelloController 생성
  • [ ] Servers 탭에서 JBoss EAP 8.0 서버 추가
  • [ ] Dynamic Web Module 6.0 설정
  • [ ] FinVault 프로젝트 서버에 추가 완료

 

09. 다음 편 예고

드디어 만반의 준비가 끝났습니다.

STS에서 프로젝트를 배포하고 JBoss 서버가 웅장하게 올라가는 로그를 기대하셨겠지만...

이 최신 스택(Spring Boot 4.x + JBoss 8.x)의 조합은 그렇게 호락호락하지 않습니다.

 

이어지는 [5탄] WAR 배포 실패 1 - Logback 충돌에서는, 서버가 기동되자마자 뿜어져 나오는 지옥의 클래스 로더 충돌(Logback vs JBoss Logging) 에러를 직면하고, 아키텍트의 시선으로 JBoss의 모듈 시스템을 뜯어고쳐 완벽하게 트러블슈팅하는 과정을 다루겠습니다.

 

👉 [5탄] WAR 배포 실패 1 - Logback 충돌 보러가기