반응형

9EF1D508-F692-425A-836B-05AA4D69CE3C.png

안녕하세요! 가야태자 @talkit 입니다. 😊

지난 글까지 우리는 MacOS 환경에서 우여곡절 끝에 Java 1.8 엔진을 얹고, STS4 설치에 이어 감격의 스프링 부트(Spring Boot) Hello World 웹 서버를 구동하는 데 성공했습니다! 매번 익숙한 윈도우 환경에서만 개발 설정을 하다가, 맥북 터미널을 두들기며 실습해 보니 사소한 에러를 잡는 것도 아주 색다르고 재미있네요. ^^

단순히 화면에 글자 하나를 띄우는 HelloWorld 단계를 넘어서니, 이제 실무에서 사용하는 진짜 비즈니스 로직(데이터베이스 연동, 아키텍처 설계 등)을 추가하고 싶어지더군요. 그래서 본격적인 코드 작성에 앞서, 머릿속을 맴돌던 몇 가지 근본적인 궁금증들을 정리해 보았습니다.

  1. 전통적인 Spring MVC와 순수 Spring Boot 설정은 구체적으로 무엇이 다른가? (그 많던 XML들은 다 어디로 갔나?)
  2. 사람들은 왜 유독 Spring Boot를 두고 '클라우드 친화적(Cloud-Friendly)'이라고 부르는가?
  3. 그렇다면 기존 Spring MVC는 도커(Docker)나 쿠버네티스(Kubernetes) 같은 현대적인 클라우드 환경으로 전환이 불가능한가?

오늘은 본격적인 아키텍처 설계에 들어가기 전, 이 궁금증들을 아주 명쾌하고 쉽게 풀어보는 시간을 가져보겠습니다!


1. Spring MVC vs Spring Boot 설정의 차이: "설정 지옥의 해방"

전통적인 Spring MVC(예: 전자정부프레임워크 등)로 비즈니스 프로젝트를 시작하려면, 코드를 짜기도 전에 엄청난 양의 환경 설정에 지치곤 했습니다.

applicationContext.xml, spring-mvc.xml, context-datasource.xml 등 거대하고 복잡한 XML 파일들을 매번 복사해 와서 데이터베이스 커넥션 풀(DBCP)을 셋팅하고, 컴포넌트 스캔 범위를 지정해야 했죠. 오타라도 하나 나면 컴파일 시점엔 알 수도 없고 런타임 에러를 뿜어내기 일쑤였습니다.

하지만 Spring Boot는 이 패러다임을 완전히 바꿨습니다. 부트에는 스프링 관련 설정을 위한 XML 파일이 단 하나도 필요 없습니다!

스프링 부트는 "설정보다는 관례(Convention over Configuration)"를 내세웁니다.

  • 자동 설정(Auto Configuration): spring-boot-starter-web 라이브러리를 추가하는 순간, 부트가 내부적으로 "아, 이 개발자가 웹 서버를 만드는구나!" 하고 내장 톰캣 서버, JSON 변환기, 문자 필터 등을 알아서 자바 코드로 셋팅해 줍니다.
  • 프로퍼티 중심 제어: 과거 복잡했던 데이터소스(DB 접속) 설정은 이제 application.properties 파일에 딱 세 줄, 드라이버 이름과 URL, 계정 정보만 적어주면 끝납니다.
  • 개발자는 인프라 설정에 힘을 뺄 필요 없이 오직 비즈니스 로직(Controller - Service - DTO - Mapper)에만 100% 집중할 수 있게 된 것이죠.

2. Spring Boot는 왜 '클라우드 친화적'일까?

최근 실무 백엔드 인프라의 대세는 AWS 같은 클라우드 환경입니다. 그리고 클라우드 세상에서 스프링 부트는 독보적인 위치를 차지하고 있습니다. 왜 그럴까요?

① 내장 WAS를 품은 '독립 실행형 JAR' (이식성)

레거시 Spring MVC는 빌드하면 WAR 파일이 나옵니다. 이 파일은 혼자서 실행할 수 없고, 클라우드 서버마다 외부 웹 서버(Tomcat)를 따로 설치하고 설정을 맞춘 뒤에 그 안에 '주입(Deploy)'해야 구동됩니다.
반면, Spring Boot는 웹 서버(Tomcat)를 자바 패키지 내부에 아예 내장하고 있습니다. 빌드하면 웹 서버가 포함된 단 하나의 JAR 파일이 툭 떨어집니다. 클라우드 서버에 자바만 깔려 있다면 java -jar app.jar 명령어 한 줄로 즉시 어디서든 똑같이 구동됩니다. 인프라 의존성이 사라진 것입니다.

② 압도적인 구동 속도와 가벼움 (오토스케일링 최적화)

클라우드의 핵심은 사용자가 몰릴 때 서버를 순식간에 수십 대로 늘리는 오토스케일링(Auto Scaling)입니다. 레거시 시스템은 톰캣을 켜고 WAR 압축을 풀고 비대한 XML을 읽느라 서버가 준비되는 데 수십 초에서 수분이 걸렸습니다.
하지만 스프링 부트는 불필요한 인프라 구조를 걷어내고 자바 코드로 즉시 기동하므로 구동 속도가 극도로 빠릅니다. 클라우드가 명령하는 즉시 트래픽을 받아낼 준비를 마칩니다.

③ 모니터링 기능(Actuator) 기본 내장

수많은 서버가 분산되어 있는 클라우드 환경에서는 서버 상태 감시가 필수입니다. 스프링 부트는 Actuator 라이브러리를 통해 현재 서버의 메모리 상태, DB 커넥션 풀 상태 등을 확인할 수 있는 모니터링 창구를 코딩 한 줄 없이 기본으로 제공해 줍니다.


3. 그럼 Spring MVC는 도커나 쿠버네티스를 사용하지 못하나요?

결론부터 말씀드리면, 당연히 사용할 수 있습니다! 꼭 스프링 부트만 써야 도커/쿠버네티스를 쓸 수 있는 것은 아닙니다.

도커(Docker)와 쿠버네티스(Kubernetes) 입장에서는 컨테이너 안에 담긴 프로그램이 옛날 스프링인지 최신 스프링 부트인지 상관하지 않습니다. 표준 규격만 맞추면 어떤 프로그램이든 다 담아서 굴려줍니다. 실제로 수많은 기업들이 기존에 운영하던 거대한 레거시 Spring MVC 시스템을 그대로 도커 이미지로 패키징하여 쿠버네티스 환경으로 이주(Migration)시켜 운영하고 있습니다.

다만, 장점을 활용하는 효율성의 차이가 존재합니다.

  • Spring MVC를 도커에 올릴 때: 도커 이미지 안에 우분투 OS를 깔고, 외부 톰캣 서버를 설치하는 스크립트를 짜고, 거기에 WAR 파일을 복사해 넣어야 하므로 도커파일(Dockerfile)이 복잡해지고 이미지의 크기가 무거워집니다. 쿠버네티스가 컨테이너를 복제하거나 자가 치유(Heal)를 할 때도 구동 속도가 느려 굼뜨게 반응합니다.
  • Spring Boot를 도커에 올릴 때: 순수한 자바 환경 이미지에 JAR 파일 하나만 복사해 넣으면 끝납니다. 이미지 크기가 매우 가볍고, 쿠버네티스의 헬스 체크(Liveness/Readiness Probe)와 부트의 Actuator 기능이 찰떡처럼 연동되어 시스템 자가 치유 능력이 극대화됩니다.

즉, "도커와 쿠버네티스는 Spring MVC라는 옛날 자동차도 트레일러에 실어서 얼마든지 움직여줄 수 있다. 다만, 처음부터 컨테이너 비행기에 쏙 들어가도록 규격화되어 설계된 Spring Boot를 태웠을 때 훨씬 더 가볍고 안전하게 날아갈 수 있다"고 이해하시면 좋습니다!


🏁 가야태자의 요약 및 예고

결과적으로, 기존의 복잡한 인프라 환경을 다루어보신 분들이라면 스프링 부트가 제공하는 이 간결함과 클라우드 네이티브(Cloud Native)적인 특성에 감탄할 수밖에 없습니다. 과거의 자동차 조립 단계 같은 설정을 뒤에서 부트가 다 알아서 해주니까요.

궁금증이 시원하게 해결되었으니, 다음 글에서는 진짜 실무 아키텍처의 뼈대를 세워보겠습니다!
우리가 설치한 자바 1.8 환경에 딱 맞춰서 Controller - Service - DTO - Mapper - MyBatis - DB까지 이어지는 표준 5계층 아키텍처의 패키지를 쪼개고 실제 소스 코드를 채워 컴파일하는 실전 과정으로 찾아오겠습니다.

환경 설정을 진행하시면서 궁금한 점이나 의견이 있으시면 언제든 댓글로 편하게 소통해 주세요. 감사합니다! bananas 🍌

반응형
반응형

B61A6C0C-01F3-4CD3-AFF5-DB742974A40A.png

안녕하세요 가야태자 @talkit 입니다.

Spring Boot 시작 방법
https://www.steemit.com/kr/@talkit/spring-boot-java-18-sts-4-helloworld--f7k0ki

위글의 실습으로

Java 1.8 설치
https://www.steemit.com/kr/@talkit/springboot-macos-openjdk-18--z3k1wk

SpringTools(STS)
https://www.steemit.com/kr/@talkit/springboot-macos-spring-toolssts--9kq2xf

자바 설치하고, STS를 설치를 진행 해서 제 맥북에는 두가지 프로그램이 잘 설치 되어 있는 상태 입니다.

이제 본격적으로 SpringBoot Hello World를 만들어 보겠습니다.

저는 주소 Spring MVC 방식으로 프로젝트를 많이 해서 SpringBoot는 주변을 서치하면서 진행하고 있습니다.

스프링부트 전체 흐름 글에서는 일단 파일을 만들고, 파일을 Import 하는 방식으로 진행을 하라고

제미나이가 이야기 해주었습니다.

그래서 우선 그렇게 진행 해보겠습니다.

지난번 글에서 저하고 동일한 STS를 설치하셨다면,

조금 메뉴가 다른 것 같습니다. 아니면 MacOS라서 다를수도 있을 것 같습니다

JDK를 설정 해주어야 합니다.

Window > Preferences > Java

로 되어 있는데

image.png

맥에서는 Spring Tools for Eclipse 프로그램 메뉴를 클릭하시고

Settings를 클릭하신 다음에

image.png

Java >> Installed JREs 에 접근하면 위와 같이

JDK가 21도 있고, 1.8.0도 있습니다.

이중에 저희는 1.8을 선택 합니다.

그리고, Apply and Close 버튼을 클릭해 주시면 됩니다.

그러면 일단 JDK는 Java 1.8을 사용하는 것으로 변경 되었습니다.

image.png

스프링 부트를 돌릴 서버를 설정 하기 위해서

해당 메뉴로 다시 접근 해서

Server > Runtime Environments > Add

를 클릭해서 Apache Tomcat 8.5 또는 9.0을 선택 합니다.

저는 앞에 글에서 선택한대로 8.5를 선택 하겠습니다.

image.png

Download and Install ...

을 클릭하십시오.

image.png

GPL 동의 하시고 Finish 누르시면 됩니다.

image.png

설치할 폴더를 선택해달라고 합니다.

저는 계정 폴더내에 dev로 하겠습니다.

/Users/kjh0523/dev/apache-tomcat-8.5.99

없으면 폴더는 만드시면 되고 위와 비슷하게 설치가 됩니다.

조금 기다리시면, Finish가 활성화 됩니다.

image.png

Finish를 누르시면 됩니다.

image.png

Apply and Close 누르십시오.

일단 톰켓 서버 설치까지 끝났습니다.

https://start.spring.io/

위 사이트에 접속 합니다.

image.png

사이트에 적당하게 적습니다.

도메인을 가지고 계시면 해당 도메인을 꺼꾸로 하시면 됩니다. ^^

저는 티스토리 도메인으로 했습니다.

그리고 아티펙트는 프로젝트 명이어서 적당하게 영어로 만들어 줍니다.

나중에 Jar나 War파일명이 되므로 적당한 명칭을 하면 됩니다.

저는 이번에 HelloWorld여서 HelloWolrd로 했습니다.

그리고 저희는 2.7x를 사용할 예정이어서 일단 3.5를 선택 합니다.

현재 상태로요 ^^

그리고 Jar나 War는 설정으로 변경할 수 있어서 일단 Jar로 했습니다.

저는 Maven이 편해서 Maven으로 했습니다.

그리고 자바는 어쩔수 없이 17로 했습니다.

사이트에서 제일 낮은 버전이 17이어서요.

그리고 하단의 GENERATE 버튼을 클릭하시면 파일이 하나 다운로드 됩니다.

해당 파일을 임포트 해보도록 하겠습니다.

image.png

File >> Import 를 선택 합니다.

image.png

Project from Folder or Archive 를 선택 하시고

Next를 클릭 합니다.

image.png

압축 파일로 다운로드 되어서 Archive를 선택 합니다.

image.png

아까 다운로드 받은 zip파일을 선택 합니다.

image.png

Finish를 클릭하십시오.

그러면, 메이븐이 여러가지 일들을 해줍니다.

image.png

왼쪽의 Project Explore 에서 pom.xml을 찾습니다.

저희는 아까 말씀 드린대로,

JDK 1.8

SpringBoot는 2.7.x를 사용합니다.

그래서 수정 해주어야 합니다.

수정하고 저장하면 2.7.18로 잘 변경 됩니다.

그런데 몇몇 오류가 발생하는데

우선 Spring Tools for Eclipse >> XML

image.png

Download external resources like referenced DTD, XSD에 체크합니다. 저는 체크가 되어 있지만 처음에는 체크가 풀려 있습니다.

그리고, Apply and Close

그러면 Pom.xml은 정상적으로 돌아왔을 겁니다.

워닝이 조금 있기는 하겠지만 무시 합니다. ^^

그리고 이제 웹 화면을 보기 위해서 pom.xml과 Java 소스를 약간 수정하고 추가해 보겠습니다.

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.18</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.tistory.talkit</groupId>
    <artifactId>HelloWorldProject</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name/>
    <description/>
    <url/>
    <licenses>
        <license/>
    </licenses>
    <developers>
        <developer/>
    </developers>
    <scm>
        <connection/>
        <developerConnection/>
        <tag/>
        <url/>
    </scm>
    <properties>
        <java.version>8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

pom.xml을 위와 같이수정 합니다.
spring-boot-starter => spring-boot-starter-web

starter 가 -web으로 되어 있어야 합니다.

그리고 이제 접속하면 브라우저에 HelloWorld가 보이도록 하기 위해서 Java 파일을 하나 만듭니다.

/HelloWorldProject/src/main/java/com/tistory/talkit/HelloWorldProject/HelloWorldController.java

프로젝트내에 위와 같이 작성하시면 됩니다.

package com.tistory.talkit.HelloWorldProject;

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

// 🚨 [핵심 수정] 이 클래스가 웹 컨트롤러임을 스프링에게 알려주는 스위치입니다!
@RestController
public class HelloWorldController {

    // [핵심] 사용자가 웹 브라우저에서 "/" (기본 경로)로 접속하면 이 메서드를 연결합니다.
    @GetMapping("/")
    public String helloBanana() {
        return "🍌 가야태자의 바나나 교실에 오신 것을 환영합니다! Hello World for Java 1.8 & Spring Boot 2.7! 🍌";
    }

}

위와 같이 생성 합니다.

저기 글자는 여러분들이 원하는 글자로 변경 하시면 됩니다.

그리고, HelloWorldProject 프로젝트 명 누르고 오른쪽 마우스로 Run As >> SpringBoot App

image.png

하시면 스프링 부트 프로그램이 시작 합니다.

이때 오류나면 댓글 주세요.

도와 드리겠습니다.

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::               (v2.7.18)

2026-07-04 12:43:34.846  INFO 10718 --- [           main] c.t.t.H.HelloWorldProjectApplication     : Starting HelloWorldProjectApplication using Java 1.8.0_492 on kjh0523ui-MacBookPro.local with PID 10718 (/Users/kjh0523/Documents/workspace-spring-tools-for-eclipse-4.32.2.RELEASE/HelloWorldProject.zip_expanded/HelloWorldProject/target/classes started by kjh0523 in /Users/kjh0523/Documents/workspace-spring-tools-for-eclipse-4.32.2.RELEASE/HelloWorldProject.zip_expanded/HelloWorldProject)
2026-07-04 12:43:34.847  INFO 10718 --- [           main] c.t.t.H.HelloWorldProjectApplication     : No active profile set, falling back to 1 default profile: "default"
2026-07-04 12:43:35.434  INFO 10718 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2026-07-04 12:43:35.439  INFO 10718 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2026-07-04 12:43:35.439  INFO 10718 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.83]
2026-07-04 12:43:35.506  INFO 10718 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2026-07-04 12:43:35.506  INFO 10718 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 629 ms
2026-07-04 12:43:35.767  INFO 10718 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2026-07-04 12:43:35.775  INFO 10718 --- [           main] c.t.t.H.HelloWorldProjectApplication     : Started HelloWorldProjectApplication in 1.187 seconds (JVM running for 1.557)

위와 같이 되어 있으면 이제 접속이 가능하다는 소리 입니다.

저희는 / 만 만들어두었기 때문에 ^^

http://localhost:8080 으로 접근 하시면 됩니다.

🍌 가야태자의 바나나 교실에 오신 것을 환영합니다! Hello World for Java 1.8 & Spring Boot 2.7! 🍌

기능적으로 아무것도 없이 해당 메시지를 출력하는 프로그램이지만,

일단 스프링 부트의 기초를 느낄 수있는 프로젝트입니다.

이번에는 여기까지 진행 합니다.

다음에는 디비도 붙여 보고 여러가지 작업을 진행 해보겠습니다.

감사합니다.

반응형
반응형

55259212-399B-4B9E-A2D3-9B060B2F1CA9.png

안녕하세요 가야태자 @talkit 입니다.

Spring Boot 시작 방법
https://www.steemit.com/kr/@talkit/spring-boot-java-18-sts-4-helloworld--f7k0ki

위글의 실습으로

Java 1.8 설치
https://www.steemit.com/kr/@talkit/springboot-macos-openjdk-18--z3k1wk

어제 글에 이어서

Spring Tools를 설치하려고 합니다.

Spring Tools는

이번에 여러가지 자바 역사를 살펴봤고 스프링 부트의 역사와 개념도 알아봤는데, 이제 본격적으로 개발 환경을 꾸려볼까 합니다. 이때 사용할 수 있는 개발 환경(IDE)이 여러가지가 있는데, 오늘부터는 무료이면서도 강력한 스프링 공식 지원 도구인 STS(Spring Tools 4)를 활용하여 환경을 구성하는 이야기를 해보고자 합니다.

지난번 제글에서 인용하면 위와 같습니다.

즉 통합 개발 환경입니다.

메모장 + JDK + Maven 등을 이용해서 단순하게 진행할수도 있겠지만 저렇게 진행하면 ^^

개발자가 해야할일이 너무 많습니다.

그래서 개발자들을 편안하게 해주는 IDE중에서 오늘은 Spring Tools(STS)를 설치해보겠습니다.

우선 첫번째 문서의 공식 사이트에서는 STS의 최신 버전만 받을 수 있네요.

https://spring.io/tools

image.png

사이트는 위와 같이 되어 있습니다. 최신 버전을 다운 받을 때는 위 프로그램을 다운로드 하시면 됩니다.

저기서 최신 맥이시면 MacOS ARM 64 버튼을 클릭히시면 됩니다.

하지만, 저희는 java 1.8에 대응하는 STS4를 다운로드해야 합니다.

보통은 친절하게 기록물 저장소(archive)를 친절하게 표시해 두는데 여기는 최신 버전만 쓰라고 없네요.

https://github.com/spring-projects/spring-tools/wiki/Previous-Versions

위 사이트에서 과거 버전을 찾을 수 있습니다.

image.png

대충 위와 같이 생겼습니다.

일단 배포된 버전중에 가장 최신 버전을 받으시면 됩니다.

인텔 맥이신 분들은 x86_64를 최신 맥이신 분들은 aarch64로 끝나는 dmg 파일을 받으시면 됩니다 .

저는 최신 맥이라서 aarch64를 받아 보겠습니다.

용량이 약 700메가 정도 됩니다.

image.png

어제 처럼 다운로드 위치에 있는 dmg 파일을 더블 클릭 합니다.

image.png

어제와는 조금 다르게 나옵니다.

pkg는 윈도우의 msi와 비슷하다고 생각하시면 되고,

오늘은 왼쪽에 있는 SpringToolsForEclipse를 Applications 폴더로 끌어다 놓으시면 됩니다.

dmg가 압축 포맷이어서 가져다 놓으면서 압축을 풀고 설치가 됩니다.

dmg로 설치한 경우 삭제는 Finder에서 응용프로그램(또는 Applications)에가서 해당 프로그램을 지워버리시면 모두 지워집니다.

끌어다 놓고 조금 있으면 뭔가 살짝 지나가고 끝입니다.

Finder(맥용 탐색기)를 켜고 응용프로그램으로 가셔서 SpringToolsForEclipse 를 찾아서 더블클릭 하시면 됩니다.

image.png

위와 같이 보이면 더블 클릭 하시면 됩니다.

image.png

인터넷에서 다운로드 한 앱이라고 경고가 뜹니다.

그러면 열기를 클릭하시면 됩니다. ^^

image.png

매번 윈도우 매뉴얼만 쓰다가 Mac용 매뉴얼 쓰니까 좋네요 ^^

일단 이번 글에서는 설치만 할꺼라서 Launch를 클릭하시면 됩니다.

다음에는 저기 있는 workspace 폴더를 변경할 껍니다. 이번에는 저대로 진행 하겠습니다.

image.png

저건 허용 안함으로 해도 될 것 같은데 저는 일반적으로 허용 합니다.

다음에 또 경고창이 하나 더 뜨네요 문서 폴더에 접근할 수 있게 해달라고 저건 허용 하셔야 합니다.

image.png

음 위와 같이 나오시면 잘 설치가 된겁니다.

이번 글에서는 여기까지만 하고 다음글에서 컴파일러 설정, Hello World 작성등을 이어서 진행 하겠습니다.

감사합니다.

반응형
반응형

0BC86AC8-E01B-4356-B28B-B0482EDF3679.png

image.png

안녕하세요 가야태자 @talkit 입니다.

https://www.steemit.com/kr/@talkit/spring-boot-java-18-sts-4-helloworld--f7k0ki

오늘은 어제글의 실습 버전입니다.

저네 과정은 위 글에서 일단 개요를 적어 두었습니다.

Java 1.8을 MacOS에 설치 해보겠습니다.

일단 보안 패치가 길게 가고 있는 이클립스 재단에서 운영하는 OpenJDK를 설치 하겠습니다.

어제 글에 있는대로

https://adoptium.net/temurin/releases/?version=8

위 사이트에 접속 합니다.

각 OS 별로 개발 환경이 존재 합니다.

그러면 MacOS용을 다운로드 받겠습니다.

확장자는 pkg 파일로 되어 있습니다.

image.png

맥오른쪽 하단에 파란색 다운로드 폴더가 보이면 그걸 클릭하면 여러가지 다운로드 파일이 보입니다.

저걸 실행 하겠습니다.

아이콘이나 파일명을 더블 클릭하시면 열립니다.

image.png

JDK를 맥에서 설치 해보는 것은 처음이라서 기대되네요.

image.png

약관을 보여주고 약관에 동의 할꺼냐고 묻습니다. 저거 동의 안하면 설치가 안되니까 동의 하겠습니다. ^^

image.png

설치 버튼을 누릅니다.

image.png

암호나 터치아이디를 누르라고 해서 저는 지문인식으로 처리 했습니다.

그러면 이제 설치를 시작 합니다.

image.png

엥 중간에 설치 과정좀 캡처 하려고 했더니 이미 설치가 다 되어 버렸네요.

이제 닫기를 누르시면 설치는 다 된 상태 입니다.

설치가 잘 되었는지 확인하기 위해서 터미널을 열겠습니다.

(base) kjh0523@kjh0523ui-MacBookPro ~ % ls -al $(/usr/libexec/java_home -v 1.8) 
total 103312
drwxr-xr-x  15 root  wheel       480  4월 26 21:04 .
drwxr-xr-x   6 root  wheel       192  4월 26 21:04 ..
-r--r--r--   1 root  wheel      1522  4월 26 21:04 ASSEMBLY_EXCEPTION
drwxr-xr-x  45 root  wheel      1440  4월 26 21:04 bin
drwxr-xr-x   3 root  wheel        96  4월 26 21:04 bundle
drwxr-xr-x   9 root  wheel       288  4월 26 21:04 include
drwxr-xr-x   7 root  wheel       224  4월 26 21:04 jre
drwxr-xr-x   9 root  wheel       288  4월 26 21:04 lib
-r--r--r--   1 root  wheel     19274  4월 26 21:04 LICENSE
drwxr-xr-x   5 root  wheel       160  4월 26 21:04 man
-rw-r--r--   1 root  wheel      2400  4월 26 21:04 NOTICE
-rw-r--r--   1 root  wheel       480  4월 26 21:04 release
drwxr-xr-x  12 root  wheel       384  4월 26 21:04 sample
-rw-r--r--   1 root  wheel  52669599  4월 26 21:04 src.zip
-r--r--r--   1 root  wheel    191545  4월 26 21:04 THIRD_PARTY_README
(base) kjh0523@kjh0523ui-MacBookPro ~ % date
2026년  7월  3일 금요일 22시 42분 43초 KST
(base) kjh0523@kjh0523ui-MacBookPro ~ % $(/usr/libexec/java_home -v 1.8)/bin/java -version
openjdk version "1.8.0_492"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_492-b09)
OpenJDK 64-Bit Server VM (Temurin)(build 25.492-b09, mixed mode)
(base) kjh0523@kjh0523ui-MacBookPro ~ % java -version
openjdk version "1.8.0_492"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_492-b09)
OpenJDK 64-Bit Server VM (Temurin)(build 25.492-b09, mixed mode)
(base) kjh0523@kjh0523ui-MacBookPro ~ % 

기존에 자바가 있는 것인지 일단 자바의 버전은 1.8로 확인되었습니다.

패키지의 날짜 때문인지 왜 4월 26일에 설치 된걸로 나오죠?

오늘 설치 했는데 말이죠.

그래도 패스는 지정 해야해서.

패스와 JAVA_HOME을 지정해 보겠습니다.


vi ~/.zshrc

# 파일이 열리면 맨 아래로 이동해서 i 키를 클리하고 

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
export PATH=$JAVA_HOME/bin:$PATH

#  위 두줄을 복사해서 넣습니다. 

# Esc 키를 클릭하고 
:wq 

# 를 입력후 엔터를 칩니다.

 # 위 환경을 적용하기 위해서 source 명령어를 입력 합니다. 

source ~/.zshrc

(base) kjh0523@kjh0523ui-MacBookPro ~ % java -version
openjdk version "1.8.0_492"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_492-b09)
OpenJDK 64-Bit Server VM (Temurin)(build 25.492-b09, mixed mode)

위와 같이 아까와 동일하게 패스가 잘 동작 합니다.

이제 개발을 위한 Java 컴파일러가 준비 되었습니다.

내일은 개발 환경을 설치 해보겠습니다.

감사합니다.

반응형
반응형

68F6ACC9-BD81-4ED6-BFC6-C62C246F9EF6.png

[가야태자의 Spring Boot 교실] Java 1.8 & STS 4 개발 환경 완벽 구축부터 HelloWorld 구동까지

안녕하세요! 가야태자 @talkit 입니다. 😊

이번에 여러가지 자바 역사를 살펴봤고 스프링 부트의 역사와 개념도 알아봤는데, 이제 본격적으로 개발 환경을 꾸려볼까 합니다. 이때 사용할 수 있는 개발 환경(IDE)이 여러가지가 있는데, 오늘부터는 무료이면서도 강력한 스프링 공식 지원 도구인 STS(Spring Tools 4)를 활용하여 환경을 구성하는 이야기를 해보고자 합니다.

"선생님, 지금 Java 21이 나오는 시대에 왜 굳이 Java 1.8인가요?"라고 물으실 수 있습니다. 하지만 실무에 나가보면 수많은 기존 시스템(Legacy)들이 여전히 Java 1.8 위에서 굳건히 돌아가고 있습니다. 이 환경에서 개발 환경을 완벽히 세팅하고, 프로젝트의 뼈대를 잡아 HelloWorld를 띄울 수 있다는 것은 백엔드 개발자로서 아주 강력한 무기가 됩니다.

자, 그럼 내 컴퓨터를 완벽한 스프링 부트 개발 기지로 만드는 환경 설정부터 실전 코드 구동까지 단번에 나아가 봅시다!

오늘은 일단 실습을 위한 준비 정도를 하고 실제 코딩은 주말에 해볼 계획입니다.

실제 코딩을 하면서 본 문서의 잘못된 점이나 코드 등은 바로 잡겠습니다.


1단계: Java 1.8이 품을 수 있는 스프링 부트 버전은?

가장 중요한 첫걸음은 엔진(Java)과 차체(Spring Boot)의 호환성을 맞추는 것입니다.

Java 1.8에서 사용 가능한 마지막 스프링 부트 버전은 2.x 대역입니다. 그중에서도 가장 안정적이고 최신 기능(Java 1.8 기준)을 담고 있는 2.7.x 버전을 선택해야 합니다.

  • 참고 사항: 스프링 부트 3.0부터는 Java 17이 최소 요구 사항입니다. Java 1.8로는 절대로 구동할 수 없습니다. 따라서 과거 레거시 시스템을 다루거나 Java 8 환경을 고수해야 한다면 반드시 2.7.x 대역 버전을 선택해야 합니다.
  • 참조 가이드: 스프링 부트 2.7.x 공식 시스템 요구사항 문서

2단계: OpenJDK 및 통합 개발 환경(IDE) 공식 다운로드

우리의 실제 '엔진'이 될 자바와, 우리의 '작업 공간'이 될 통합 개발 환경(IDE)인 STS 4를 공식 사이트에서 안전하게 다운로드해 줍니다.

도구 다운로드 사이트 (URL) 다운로드 및 설치 방법
OpenJDK 1.8 Adoptium 공식 홈페이지 1. 사이트 접속 후, 본인의 OS(Win/Mac/Linux)와 아키텍처(x64/aarch64 등)에 맞는 JDK 다운로드.
2. 설치 파일(Win: .msi, Mac: .pkg) 실행 후 안내에 따라 설치.
STS 4 (IDE) Spring Tools 공식 홈페이지 1. 사이트 접속 후, 본인의 OS에 맞는 Spring Tools 4 for Eclipse 다운로드.
2. 다운로드된 파일(Win/Linux: .tar.gz, Mac: .dmg)의 압축을 사용하기 편한 폴더에 풉니다.

3단계: 🚀 OS별 환경 변수 (JAVA_HOME & PATH) 완벽 설정

엔진(Java)을 컴퓨터에 깔았다면, 시스템이 어디서든 이 엔진을 찾아서 사용할 수 있도록 가리키는 이정표(환경 변수)를 세워야 합니다. 본인의 OS에 맞는 설정을 적용해 보세요.

① WINDOWS (윈도우)

  1. 시작 버튼 우클릭 -> 시스템 -> 고급 시스템 설정 -> 환경 변수를 클릭합니다.
  2. 시스템 변수에서 새로 만들기 클릭:
    • 변수 이름: JAVA_HOME
    • 변수 값: JDK 1.8이 설치된 폴더 경로 (예: C:\Program Files\Eclipse Adoptium\jdk-8.x.x.x-hotspot)
  3. 시스템 변수 목록에서 Path를 찾아 선택 후 편집 -> 새로 만들기 클릭:
    • %JAVA_HOME%\bin 입력 후 확인.
  4. 확인: 명령 프롬프트(cmd)에서 java -versionjavac 명령어가 정상적으로 버전 정보를 출력하는지 확인합니다.

② MACOS (맥킨토시 - zsh 기준)

  1. 터미널을 엽니다.
  2. vi ~/.zshrc 명령어로 설정 파일을 엽니다.
  3. 파일 맨 아래에 다음 내용을 추가합니다:
    • export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
    • export PATH=$JAVA_HOME/bin:$PATH
  4. 저장 후(:wq), 터미널에서 source ~/.zshrc를 입력하여 설정을 즉시 적용합니다.
  5. 확인: 터미널에서 java -versionjavac 명령어가 자바 1.8 버전을 잘 가리키는지 확인합니다.

③ LINUX (리눅스 - bash 기준)

  1. 터미널을 엽니다.
  2. vi ~/.bashrc 명령어로 파일을 엽니다.
  3. 파일 맨 아래에 다음 내용을 추가합니다 (JDK 실제 설치 경로 입력):
    • export JAVA_HOME=/usr/lib/jvm/jdk-8-oracle (예시 경로)
    • export PATH=$JAVA_HOME/bin:$PATH
  4. 저장 후, 터미널에서 source ~/.bashrc를 입력하여 설정을 적용합니다.
  5. 확인: 터미널에서 java -versionjavac 명령어를 확인합니다.

4단계: 💻 OS별 IDE (STS 4) 실행 방법

환경 변수까지 세팅을 끝마쳤다면, 이제 우리가 코딩할 무대인 STS 4를 켜볼 차례입니다.

  • WINDOWS: STS 압축을 푼 폴더에서 SpringToolSuite4.exe 파일을 더블 클릭하여 실행합니다.
  • MACOS: STS 압축을 풀고 애플리케이션(Applications) 폴더로 이동시킨 후, SpringToolSuite4.app 아이콘을 클릭하여 실행합니다.
  • LINUX: 터미널에서 STS 압축을 푼 폴더로 이동한 후, ./SpringToolSuite4 커맨드를 입력하여 실행합니다.

5단계: HelloWorld를 위한 스프링 부트 파일 구조

스프링 부트는 규격화된 완성차와 같아서 정해진 위치에 파일이 들어가야 똑똑하게 작동합니다. 우리는 가장 대중적인 빌드 도구인 Maven을 기준으로 프로젝트의 뼈대를 잡겠습니다. 프로젝트를 생성하거나 불러오면 아래와 같은 핵심 구조를 보게 됩니다.

📂 banana-helloworld (프로젝트 루트 폴더)
├── 📄 pom.xml                    <-- [핵심] 프로젝트의 설계도. 스프링 부트 버전, 라이브러리를 정의합니다.
└── 📂 src
    └── 📂 main
        ├── 📂 java               <-- [핵심] 실제 자바 소스 코드가 들어가는 청정 구역입니다.
        │   └── 📂 com
        │       └── 📂 talkit
        │           └── 📂 banana   <-- 우리의 '패키지' 이름입니다.
        │               ├── 📄 BananaApplication.java  <-- [핵심] 프로그램의 시작점. 스프링 부트를 켜는 스위치입니다.
        │               └── 📄 HelloController.java   <-- [핵심] 웹 요청을 받아 "HelloWorld"를 돌려주는 컨트롤러입니다.
        └── 📂 resources          <-- [핵심] 설정 파일이나 이미지 등이 들어갑니다.
            └── 📄 application.properties <-- 스프링 부트의 상세 설정을 적는 곳입니다. (이번엔 비워둡니다.)

6단계: 구조에 따른 핵심 소스 코드 작성

이제 정해진 파일 위치에 실제 생명력(코드)을 불어넣어 줄 차례입니다. 총 3개의 핵심 파일을 작성합니다.
① 📄 pom.xml: 프로젝트의 설계도 (Java 1.8 & Boot 2.7 설정)

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="[http://maven.apache.org/POM/4.0.0](http://maven.apache.org/POM/4.0.0)" xmlns:xsi="[http://www.w3.org/2001/XMLSchema-instance](http://www.w3.org/2001/XMLSchema-instance)"
    xsi:schemaLocation="[http://maven.apache.org/POM/4.0.0](http://maven.apache.org/POM/4.0.0) [https://maven.apache.org/xsd/maven-maven-4.0.0.xsd](https://maven.apache.org/xsd/maven-maven-4.0.0.xsd)">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.18</version> 
        <relativePath/> 
    </parent>

    <groupId>com.talkit</groupId>
    <artifactId>banana-helloworld</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>banana-helloworld</name>
    <description>Banana Hello World for Java 1.8</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

② 📄 BananaApplication.java: 프로그램의 시작점 (메인 스위치)

package com.talkit.banana;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

// [핵심] 이 클래스가 스프링 부트의 구성이자 시작점임을 알리는 마법의 어노테이션입니다.
@SpringBootApplication
public class BananaApplication {
    public static void main(String[] args) {
        // [핵심] 실제 내장 서버를 올리고 스프링 부트를 가동하는 메인 코드입니다.
        SpringApplication.run(BananaApplication.java, args);
    }
}

③ 📄 HelloController.java: 웹 요청을 처리하는 컨트롤러

package com.talkit.banana;

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

// [핵심] 이 클래스가 웹 요청을 받아 문자열 데이터를 브라우저에 전송하는 컨트롤러임을 명시합니다.
@RestController
public class HelloController {

    // [핵심] 사용자가 웹 브라우저에서 "/" (기본 경로)로 접속하면 이 메서드를 연결합니다.
    @GetMapping("/")
    public String helloBanana() {
        return "🍌 가야태자의 바나나 교실에 오신 것을 환영합니다! Hello World for Java 1.8 & Spring Boot 2.7! 🍌";
    }
}

7단계: STS 4에서 대시보드로 프로젝트 구동하기

이제 모든 코드가 준비되었습니다! 우리가 장착한 STS 4의 가장 큰 무기인 '부트 대시보드'를 활용하여 아주 편안하게 시동을 걸어보겠습니다.
① 프로젝트 불러오기 (Import)
1. STS 4를 실행하고 상단 메뉴에서 File -> Import...를 클릭합니다.
2. Maven 폴더 아래의 Existing Maven Projects를 선택하고 Next를 누릅니다.
3. Root Directory 옆의 Browse... 버튼을 눌러 우리가 코드를 작성해 둔 banana-helloworld 폴더를 선택합니다.
4. 중간 목록에 pom.xml 파일이 잘 체크되었는지 확인하고 Finish를 누릅니다.
5. STS 우측 하단에 인터넷에서 필요한 메이븐 빌드 라이브러리를 다운로드하는 게이지가 지나갑니다. 다운로드가 끝날 때까지 잠시만 기다려 주세요.
② 대시보드로 시동 걸기 (Run)
1. 프로젝트 빌드가 완료되면 STS 화면의 Boot Dashboard 탭을 클릭합니다.
2. local 항목을 펼쳐보면 방금 불러온 우리의 banana-helloworld 프로젝트가 예쁘게 떠 있을 것입니다.
3. 프로젝트 이름을 마우스 우클릭한 뒤, (Re)start (또는 상단의 초록색 재생 버튼 아이콘)를 클릭합니다.
③ 브라우저에서 감격의 결과 확인하기
1. STS 중앙 하단의 Console 탭에 로그가 시원하게 올라갑니다. 마지막 행에 "Started BananaApplication in X.XXX seconds"라는 문구가 나타나면 서버 구동 성공입니다!
2. 크롬 등 사용하시는 웹 브라우저를 엽니다.
3. 주소창에 http://localhost:8080을 정확히 입력하고 엔터를 탁! 칩니다.
4. 화면에 우리가 컨트롤러에 적어두었던 바나나 환영 인사가 멋지게 출력되는 것을 볼 수 있습니다!

🍌 가야태자의 바나나 교실에 오신 것을 환영합니다! Hello World for Java 1.8 & Spring Boot 2.7! 🍌

🏁 가야태자의 정리 및 복습 팁

드디어 우리는 Java 1.8이라는 전통적인 환경 위에서 스프링 부트 2.7 완성차를 조립하고 첫 주행(HelloWorld)까지 훌륭하게 마쳤습니다!
스프링 부트 개발을 배울 때 가장 좋은 복습 방법은 각 파일이 왜 이 자리에 있어야 하고, 어노테이션(@)이 무슨 역할을 하는지 구조와 코드를 매칭하며 눈으로 짚어보는 것입니다. 이 기초 체력이 굳건해야 복잡한 비즈니스 로직을 짤 때 흔들리지 않습니다.
다음 시간에는 이 띄워놓은 HelloWorld 웹 페이지 위에 실제 데이터를 예쁘게 주고받는 더 흥미진진한 백엔드 이야기로 찾아오겠습니다.
실습 도중 에러가 나거나 막히는 점이 있다면 언제든 댓글 창에 질문을 남겨주세요. 같이 해결해 봅시다! 😊

실제로 실습을 진행하고 싶습 파트는 또 글을 적어 보겠습니다.

반응형
반응형

42673393-2CB9-4617-A738-607E5C9314BA.png

[테크/개발] 자바 백엔드의 날개, Spring Boot 개발 환경(IDE) 완벽 가이드: 나에게 맞는 도구는?

안녕하세요 가야태자 @talkit 입니다.

이번에 여러가지 자바 역사를 살펴봤고 스프링 부트의 역사와 개념도 알아봤는데, 이제 개발 환경을 꾸려볼려고 합니다. 이때 사용할 수 있는 개발 환경이 여러가지가 있는데 이 개발 환경들을 어떻게 구성할지에 대한 이야기를 해보고자 합니다.

스프링 부트(Spring Boot)는 과거의 복잡한 설정을 자동화해 주어 개발 생산성을 극대화해 주지만, 우리가 어떤 도구(IDE)를 손에 쥐느냐에 따라 그 개발의 '편안함'과 '작업 속도'는 천차만별로 달라집니다. 현재 자바 생태계에서 선택할 수 있는 대표적인 개발 환경들의 특징, 지원 OS, 그리고 가장 중요한 유료/무료 여부와 공식 참조 링크를 낱낱이 비교해 드리겠습니다.


🚀 [특화 섹션] 인텔리제이 커뮤니티(무료) vs 얼티밋(유료) 집중 비교

많은 초보 개발자분들이 *"인텔리제이가 대세라고 해서 다운받으려고 보니 얼티밋 버전은 너무 비싸요. 무료인 커뮤니티 버전으로 스프링 부트 개발해도 괜찮을까요?"*라는 질문을 던지십니다.

결론부터 말씀드리면 "개발은 가능하지만, 얼티밋에 비해 많은 수고로움(수동 작업)이 필요하다"입니다. 두 버전이 스프링 부트 개발 환경에서 어떤 차이를 보이는지 핵심만 비교해 드립니다.

1) 프로젝트 생성 방식의 차이

  • Ultimate (유료): IDE 내부에서 Spring Initializr를 곧바로 호출하여 몇 번의 클릭만으로 스프링 부트 프로젝트를 뚝딱 생성할 수 있습니다.
  • Community (무료): 내장 프로젝트 생성기에서 스프링 부트를 공식 지원하지 않습니다. 따라서 웹 브라우저를 켜고 스프링 공식 스타터 웹사이트(start.spring.io)에 접속하여 프로젝트를 생성한 뒤, 압축을 풀고 커뮤니티 버전에서 Import(열기)하는 번거로운 과정을 거쳐야 합니다.

2) 애플리케이션 구동 및 모니터링 (부트 대시보드)

  • Ultimate (유료): 전용 'Run Dashboard(Services)'가 존재하여 내장 톰캣 서버 제어, 액추에이터(Actuator) 연동 데이터 분석, 현재 활성화된 프로필(Profile) 변경 등을 GUI 환경에서 직관적으로 관리합니다.
  • Community (무료): 스프링 부트 전용 대시보드가 없습니다. 일반 자바 메인 클래스를 실행하듯 Application.java 파일을 직접 찾아 우클릭 후 Run을 실행해야 합니다. 여러 서버를 동시에 띄우거나 관리할 때 다소 직관성이 떨어집니다.

3) 코드 어시스트 및 설정 파일(Application.properties / yaml) 자동 완성

  • Ultimate (유료): 스프링 부트의 설정 파일들을 완벽하게 인식합니다. 예를 들어 server.port나 데이터베이스 연결 설정을 타이핑할 때 지능적인 자동 완성을 제공하고, 오타가 나면 경고해 줍니다. 또한 컨트롤러와 매핑된 URL 엔드포인트를 모아서 보는 전용 도구도 제공합니다.
  • Community (무료): 텍스트 기반의 단순 자동 완성만 지원하거나 아예 지원하지 않는 경우가 많아, 설정 파일의 키값을 개발자가 직접 공식 문서를 보며 타이핑해야 하므로 오타로 인한 삽질(?) 가능성이 커집니다.

💡 가야태자의 커뮤니티 버전 활용 팁: > 비용 부담 때문에 반드시 인텔리제이 커뮤니티 버전을 써야 한다면, 마켓플레이스에서 'Spring Boot Helper' 같은 서드파티 플러그인을 찾아서 수동으로 설치해 보세요. 완벽하진 않지만 얼티밋 버전의 갈증을 조금이나마 해소할 수 있습니다. 다만, 무료 환경에서 편안한 스프링 부트 개발을 원하신다면 커뮤니티 버전보다는 차라리 아래의 STS 4VS Code가 기능적으로 더 쾌적할 수 있습니다.


1. 실무 트렌드의 절대 강자: IntelliJ IDEA (JetBrains)

현재 전 세계 자바 및 스프링 부트 개발자들이 가장 사랑하고, 실무 표준으로 자리 잡은 통합개발환경입니다.

  • 지원 OS: Windows, macOS, Linux
  • 비용 (유료/무료): 하이브리드 (Community 버전: 무료 / Ultimate 버전: 유료)
    • 개인 및 기업에서 무료로 쓸 수 있는 커뮤니티 버전이 있지만, 스프링 부트 전용 핵심 편의 기능들은 연간 구독 형태의 Ultimate(유료) 버전에 집중되어 있습니다.
  • Spring Boot 개발 편안함: * Ultimate 버전: ⭐⭐⭐⭐⭐ (최상 - 돈값을 톡톡히 하는 완벽한 빌트인 인프라)
    • Community 버전: ⭐⭐⭐☆☆ (보통 - 자바 코딩은 훌륭하나 스프링 특화 기능이 빠져 수동 작업 필요)

2. 스프링 공식 전용 도구: STS (Spring Tools 4)

스프링의 친정인 VMware(Tanzu)에서 전통의 이클립스(Eclipse)를 기반으로 스프링 개발에 딱 맞게 최적화하여 내놓은 공식 전용 IDE입니다.

  • 지원 OS: Windows, macOS, Linux
  • 비용 (유료/무료): 100% 무료 (오픈소스)
  • Spring Boot 개발 편안함: ⭐⭐⭐⭐☆ (우수)
    • 오직 '스프링 및 스프링 부트 개발'만을 타깃으로 커스텀 되었기 때문에, 무료 도구 중에서는 최고의 안정성과 편의성을 자랑합니다.
    • 화면 우측 하단의 '부트 대시보드(Boot Dashboard)'를 통해 여러 개의 스프링 부트 애플리케이션을 직관적으로 켜고 끌 수 있으며, 런타임 상태를 쉽게 모니터링할 수 있습니다. IntelliJ Ultimate의 유료 기능 중 상당수를 무료로 누릴 수 있는 훌륭한 대안입니다.
  • 공식 다운로드 및 사용법 링크: Spring Tools 4 공식 홈페이지 및 에코시스템 가이드

3. 초경량과 커스텀의 매력: VS Code (Visual Studio Code)

마이크로소프트에서 개발한 초경량 소스코드 에디터로, 웹 프론트엔드를 넘어 백엔드 영역까지 생태계를 급격히 확장하고 있습니다.

  • 지원 OS: Windows, macOS, Linux, Web(웹 브라우저)
  • 비용 (유료/무료): 100% 무료 (오픈소스)
  • Spring Boot 개발 편안함: ⭐⭐⭐⭐☆ (양호)
    • 마켓플레이스에서 'Spring Boot Extension Pack' 확장 플러그인을 설치하면 프로젝트 생성부터 구동까지 놀라울 정도로 유려하게 지원합니다.
    • IntelliJ나 Eclipse 계열에 비해 압도적으로 가볍고 실행 속도가 빠릅니다. 메모리를 적게 차지하므로, 사양이 다소 낮은 노트북 환경이나 가벼운 코딩 환경을 선호하는 개발자들에게 최고의 편안함을 선호하는 대안으로 각광받고 있습니다.
  • 공식 확장팩 안내 링크: VS Code 공식 가이드 - Spring Boot 개발 환경 구축 및 확장팩 안내

4. 전통의 아키텍처: Eclipse (이클립스)

자바의 역사와 함께 숨 쉬어 온 전통의 오픈소스 대형 IDE입니다.

  • 지원 OS: Windows, macOS, Linux
  • 비용 (유료/무료): 100% 무료 (오픈소스)
  • Spring Boot 개발 편안함: ⭐⭐⭐☆☆ (보통)
    • 순수 이클립스에 STS 플러그인을 수동으로 설치하여 스프링 부트를 개발할 수 있습니다.
    • 하지만 플러그인 간의 버전 충돌 가능성이 있고, 과거 무거운 XML 방식의 잔재가 남아있어 초기 세팅이 다소 번거롭습니다. 만약 이클립스 기반의 개발 환경을 선호하신다면, 순수 이클립스보다는 앞서 소개해 드린 STS(Spring Tools 4)를 다운로드하여 곧바로 사용하시는 것이 정신 건강에 훨씬 이롭습니다.

5. 그 외의 틈새 선택지들

  • NetBeans (Apache): Windows/Mac/Linux 지원, 무료. 자바 표준 스펙(Jakarta EE)엔 강하나 스프링 부트 전용 플러그인 생태계가 빈약하여 추천도가 떨어집니다. (편안함: ⭐⭐☆☆☆)
  • Fleet (JetBrains): Windows/Mac/Linux 지원, 현재 프리뷰(무료) 진행 중. VS Code처럼 가벼우면서도 IntelliJ의 스마트 코드 분석 엔진을 가져와 쓸 수 있는 젯브레인의 차세대 경량 에디터입니다. (편안함: ⭐⭐⭐☆☆)
  • 클라우드 IDE (구름IDE, GitHub Codespaces 등): OS 무관, 기본 무료+유료 요금제. 웹 브라우저만 있으면 가상 컨테이너에서 스프링 부트를 띄울 수 있어 태블릿(아이패드 등) 코딩이나 외부 강의·실습용 환경 구성에 매우 편안합니다. (편안함: ⭐⭐⭐☆☆)

🏆 한눈에 보는 요약 및 추천 가이드

IDE 명 주요 추천 대상 비용 (개인/기업) Spring Boot 개발 편안함 정도
IntelliJ (Ultimate) 실무/상용 서비스 개발, 최고의 생산성을 위해 돈을 지불할 용의가 있는 분 유료 (구독제) 🔴 최상 (가장 스마트하고 편리함)
STS 4 비용 부담 없이 스프링 공식 전용 도구의 안정적인 기능을 쓰고 싶을 때 무료 (오픈소스) 🟢 우수 (무료 도구 중 가장 직관적)
VS Code 사양이 낮은 PC, 가볍고 빠른 기동성과 스타일리시한 코딩 환경 선호 무료 (오픈소스) 🟡 양호 (쾌적하고 가벼운 확장성)
IntelliJ (Community) 인텔리제이의 단축키와 코드 분석 엔진을 무료로 부드럽게 쓰고 싶을 때 무료 (오픈소스) 🟡 양호 (자바 코딩은 좋으나 스프링 수동 세팅 필요)
Eclipse 기존 금융권/공공기관의 오래된 레거시 시스템 유지보수 환경 무료 (오픈소스) ⚪ 보통 (직접 수동 플러그인 세팅 필요)

🏁 가야태자의 결론: 나에게 맞는 환경 구성은?

스프링 부트 개발 환경을 구성할 때의 핵심은 "자신의 장비 사양""비용 투자 여부"입니다.

  1. 만약 장비가 훌륭하고 생산성을 위해 비용을 투자할 의향이 있다면 IntelliJ Ultimate(유료) 환경이 최고의 정답입니다.
  2. 인텔리제이 특유의 UI와 코드 리팩토링 능력을 사랑하지만 비용이 부담된다면 조금 번거롭더라도 IntelliJ Community(무료) 버전에 수동 플러그인을 세팅해 볼 수 있습니다.
  3. 완전히 무료이면서도 장황한 수동 세팅 없이 스프링 부트 전용 기능을 안정적으로 쓰고 싶다면 STS 4가 가장 합리적인 선택입니다.
  4. 마지막으로, 컴퓨터 사양이 아쉽거나 경량화된 환경을 원한다면 VS Code 조합을 추천해 드립니다.

여러분은 어떤 IDE로 스프링 부트의 첫 발을 내딛고 싶으신가요? 여러분의 PC 환경과 목적에 맞는 최적의 환경을 꾸리시길 바라며, 다음에는 실제 프로젝트를 생성하고 구동하는 이야기로 찾아오겠습니다.

궁금한 점이나 의견이 있으시다면 언제든 댓글로 소통해 주세요! 😊

반응형

+ Recent posts