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

철학: "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 버전 다운로드

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


최종 폴더 구조 확인:
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 클릭

Step 2. Microsoft Defender 보안 설정
STS 최초 실행 시 팝업이 나타납니다:
"Keep Spring Tools for Eclipse being scanned by Microsoft Defender"
↓
이 옵션 선택 후 Proceed 클릭!
⚠️ 금융권 프로젝트는 보안이 최우선입니다.
Microsoft Defender 스캔을 반드시 유지하세요.
스캔을 비활성화하면 보안 감사에서 문제가 될 수 있습니다.

Step 3. Spring Starter Project 생성
File → New → Spring Starter Project
↓
설정:
Name : FinVault
Group : com.finvault
Artifact : FinVault
Packaging : War ← 반드시 War 선택!
Java Version: 21

Step 4. Dependencies 선택
복잡한 것 다 빼고 딱 두 가지만 선택 후 Finish를 클릭합니다.
- ✅ Spring Web
- ✅ Spring Boot DevTools

04. Gradle 빌드 JDK 강제 통제
프로젝트가 생성되고 나면 Gradle이 스스로 빌드를 시작합니다. 이때가 가장 위험한 순간입니다.
[Gradle 기본 동작] 컴퓨터 전체를 뒤져서 아무 JDK나 끌어다 씀
↓
엉뚱한 JDK로 빌드 → 버전 불일치 에러!
이를 막기 위해 프로젝트 폴더에 gradle.properties라는 **'족쇄'**를 채워야 합니다.
Step 1. gradle.properties 파일 생성
프로젝트 최상위 폴더(FinVault) 선택
↓
Ctrl + N → General → File → Next
↓
File name: gradle.properties
↓
Finish 클릭

Step 2. JDK 경로 입력
org.gradle.java.home=C:\\projects\\FinVault\\bin\\java\\jdk21
저장합니다.

💡 Tip: 슬래시(\)가 아닌 역슬래시 두 개(\\)를 써야 윈도우 경로를 이스케이프 문자로 정확히 인식합니다.
이제 Gradle은 다른 데 한눈팔지 않고 오직 이 경로의 JDK 21로만 빌드를 수행합니다!
Step 3. build.gradle 확인
build.gradle 파일 내부에 아래 내용이 있는지 확인합니다:
java {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
⚠️ toolchain 방식으로 되어 있다면 위와 같이 sourceCompatibility 방식으로 변경하세요.
toolchain 방식은 Gradle이 JDK를 자동으로 찾아 다운로드하려 하여 폐쇄망 환경에서 문제가 발생합니다.


05. HelloController 생성 - 배포 테스트 준비
JBoss 서버 연동 전 배포 확인용 Controller를 만듭니다.
클래스 생성
com.finvault 패키지 선택
↓
Ctrl + N → Class 검색 → Next
↓
Name: HelloController
↓
Finish 클릭
그럼 이작업을 통한 전체 배포 및 확인 과정의 내용을 이미지로 보겠습니다




코드 입력
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 탭 생성!


Step 2. 새 서버 추가
"No servers are available..." 파란 글씨 클릭
↓
Red Hat → JBoss Enterprise Application Platform 8.0 선택
↓
Next 클릭

Step 3. 서버 경로 설정
Server Type: Local
↓
Next 클릭
↓
Home Directory: C:\projects\FinVault\was\jboss-eap-8.1 선택
↓
JRE: jdk21 (Alternative JRE) 확인!
↓
Next 클릭


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



⚠️ 이 설정은 매우 중요합니다!
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 클릭



🎉 이제 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 충돌 보러가기
'온프레미스 개발환경' 카테고리의 다른 글
| [6탄] WAR 배포 실패 2 - spring-web 누락 & tomcat-runtime (0) | 2026.04.01 |
|---|---|
| [5탄] WAR 배포 실패 1 - Logback 충돌 (0) | 2026.04.01 |
| [3탄] JBoss EAP 8.1 환경설정 & 구동 확인 (0) | 2026.04.01 |
| [2탄] JDK21 독립 설치 & JBoss EAP 8.1 설치 (0) | 2026.04.01 |
| [1탄] 프로젝트 소개 & 기술스택 & 환경 구성 철학 (0) | 2026.04.01 |