What Is Spring Boot?

Alan Zeichick | Senior Writer | October 29, 2024

소프트웨어를 작성하는 것은 즐겨 쓰는 워드 프로세서에서 새로운 빈 문서를 열 때와 마찬가지입니다. 먼저 무엇을 해야 할까요? 그리고 복잡한 애플리케이션을 만들 때 중요한 무언가를 빠뜨리거나 구성 오류를 일으키지 않고 필요한 모든 반복 코드를 어떻게 처리해야 할까요? 바로 여기에서 다양한 유형의 애플리케이션에 대한 구조를 제공하는 애플리케이션 프레임워크가 빛을 발합니다. 개발 팀이 애플리케이션 프레임워크를 선택하면 소프트웨어 제작 과정이 본격적으로 시작될 수 있습니다. 빈칸을 채우는 템플릿처럼 간단하지는 않지만, 애플리케이션 프레임워크의 기본 골격은 간단한 마이크로서비스나 웹 앱부터 전통적인 클라이언트/서버 애플리케이션에 이르는 모든 프로젝트의 필수 요구 사항을 처리해 줍니다.

Java 개발자에게 가장 인기 있는 애플리케이션 프레임워크 중 하나는 매우 유연하고 다양한 기능을 갖춘 Spring입니다. 간단한 서비스 구성부터 거대한 비즈니스 크리티컬 시스템 개발까지 Spring으로는 거의 모든 것을 할 수 있습니다. 다재다능함이 Spring의 가장 큰 강점이지만, 동시에 Spring의 가장 큰 약점이기도 합니다. 너무 복잡하고 선택 범위도 너무 넓을 때가 있습니다. 이때 Spring Boot를 사용하면 됩니다. Spring Boot는 Spring의 확장 버전으로, 특히 의존성 관리와 구성에 대한 많은 선택을 대신 해주기 때문에 사용하기 더 쉽습니다.

간단히 말해서, Spring을 사용하려고 생각한다면 Spring Boot를 사용하는 것이 좋습니다.

Java용 Spring Boot란?

Spring BootSpring 기반 애플리케이션을 생성하기 위한 오픈 소스 Java 기반 프레임워크입니다. 2000년대 초반에 개발된 Spring은 엔터프라이즈급 애플리케이션을 위한 가장 인기 있는 Java 프레임워크 중 하나가 되었습니다. Spring Boot는 이후 Spring의 모든 도구와 기술을 확장하여 빠른 애플리케이션 개발을 가능하게 하는 더 사용하기 쉬운 프레임워크로 출시되었습니다.

Java 및 Spring 프레임워크

Java 개발자를 위해 Spring은 이벤트 관리에 대한 종속성 주입, 국제화, 데이터 바인딩, 유형 대화 및 측면 지향 프로그래밍을 포함한 인상적인 핵심 기술을 보유하고 있습니다. 테스트, 모의, 데이터 객체, Model-View-Controller 웹 애플리케이션, 원격, 작업 스케줄링 등 Spring에는 필요한 모든 것이 다 있습니다. 개발자는 이러한 기능 중 일부 또는 전부를 사용하도록 선택할 수 있습니다. 이는 소프트웨어 개발 팀과 아키텍트에게 달려 있습니다.

Spring 프레임워크는 Apache 2.0 라이선스하의 오픈 소스 소프트웨어입니다.

Spring 프로젝트에는 클라우드 앱, 보안, 웹 서비스 게시 및 소비, 자격 증명 관리, 데이터 액세스, 이벤트 관리 및 인공 지능에 중점을 둔 많은 하위 프로젝트가 있습니다. 이러한 유연성은 복잡성을 초래할 수 있습니다. 정교한 Spring 기반 애플리케이션을 빠르게 구축하다 보면 개발 팀은 수많은 옵션, 선택지, 구성이라는 미로에 빠져들 수 있습니다. 그중 일부는 수동으로 설정하면 코딩을 시작한 후에는 변경하기 어려운 경우도 있습니다.

Spring Boot를 더 자세히 알아보겠습니다.

Spring과 Spring Boot 비교

  • Spring Boot는 Spring의 하위 프로젝트 중 하나입니다. 또한, Apache 2.0 라이선스하의 오픈 소스이기도 합니다.
  • 일부 개발자들은 Spring Boot의 코드베이스가 실제로는 Spring 프레임워크 자체보다 더 크다는 사실을 알고 놀랍니다. 그 이유는 Spring Boot가 지능적으로 자체 구성되도록 설계된 Spring의 '독단적인' 확장 버전이기 때문입니다.
  • Spring Boot에 빌드하려는 내용을 알려주면 로드 및 프로비저닝할 모듈과 타사 라이브러리를 선택할 수 있습니다.
  • 한 가지 중요한 점은 여기서 '지능적'이라는 말은 AI를 의미하는 것이 아닙니다. Spring Boot의 선택은 알고리즘입니다.
  • Spring Boot 프레임워크 자체의 추가적인 용량은 완성된 앱에는 나타나지 않습니다. 사실, Spring Boot는 거의 항상 필요한 것만 선택하는 경향이 있습니다.
  • 다시 말해, Spring Boot는 '독단적'이긴 하지만, 아주 훌륭한 '판단'을 내리는 셈입니다.
  • 가령 애플리케이션에 내장된 웹 서버가 필요한가요? Spring 애플리케이션을 사용하는 경우 직접 결정을 내려야 하며, 이 경우 포함할 웹 서버를 선택하고 보안을 비롯한 모든 구성을 수동으로 선택해야 합니다.
  • Spring Boot를 사용하면 앱에 웹 서버가 필요한 경우 Spring Boot가 자동으로 설치 및 구성합니다.

주요 차이점

Spring과 Spring Boot의 주요 차이점은 복잡성과 사용 편의성 간의 절충입니다.

Spring은 거의 무한히 구성할 수 있지만, 상당한 시간을 들여 고른 후 모듈과 제3자 라이브러리를 선택하여 설치하고 해당 기능을 구성해야 합니다. 그리고 코딩 과정을 본격적으로 시작하기 전에 반드시 이 작업을 먼저 해야 합니다.

Spring Boot를 사용하면 프레임워크가 많은 설치 및 구성 선택을 대신 해주기 때문에 훨씬 빠르게 시작할 수 있습니다. 사용자 지정 기능을 일부 포기해야 할 수도 있지만, 솔직히 말해서 그래도 거의 문제가 되지 않습니다. 거의 모든 경우에 Spring Boot는 웹 개발 및 마이크로서비스 프로젝트에 더 적합합니다. 에지 케이스 또는 매우 큰 프로젝트의 경우 대신 Spring으로 전환하기로 결정할 수 있습니다.

핵심 요점

  • Spring은 엔터프라이즈 Java 기반 애플리케이션 구축을 위한 매우 강력하고 복잡한 프레임워크입니다. 모든 종류의 스크루드라이버, 렌치, 드릴 비트, 소켓이 들어 있는 공구 상자처럼 모든 것이 다 갖춰져 있지만, 선택의 폭이 너무 넓어 압도될 수 있습니다.
  • Spring Boot는 특정 작업에 필요한 도구들만 작은 공구 상자에 채워 넣은 것처럼, 사용하기 훨씬 쉬운 Spring 버전으로 생각하면 됩니다.
  • Spring과 Spring Boot는 모두 Java에서 모듈식 애플리케이션을 구축하는 데 사용할 수 있습니다.
  • Spring Boot는 마이크로서비스나 웹 앱과 같은 소규모 애플리케이션을 구축할 때 뛰어난 성능을 발휘합니다. 이는 Spring Boot의 간소화된 구성과 스마트한 기본값 덕분에 팀원이 빠르게 시작할 수 있기 때문입니다.
  • 애플리케이션이 매우 크고 복잡할 경우 대신 더 유연한 Spring 프레임워크를 사용할 수 있습니다.

Spring Boot 알아보기

Spring Boot는 엔터프라이즈 Java 애플리케이션 구축을 위한 오픈 소스 애플리케이션 프레임워크입니다. 개발 팀이 빠르게 시작할 수 있도록 설계된 Spring Boot는 Spring을 사용할 때처럼 수많은 구성을 선택하지 않아도 독립형 Spring 애플리케이션을 구축합니다.

Spring 프로젝트의 목표는 알고리즘을 사용하여 활성화할 Spring 모듈 및 기능, 설치할 타사 라이브러리를 선택한 다음 사용자를 위해 구성하여 훨씬 더 빠르고 간소화된 경험을 만드는 것입니다. 또한, 내장된 웹 서버, 보안 시스템, 측정기준 및 분석과 같은 Java 프로젝트에 많은 비코드 기능을 추가합니다.

Spring Boot의 현재 버전인 3.3.4는 최소한 Java 17과 Spring 프레임워크 6.1.13 이상이 필요합니다. Spring Boot는 Maven 3.6.3과 Gradle 7.x 및 8.x 빌드 도구에서 작동합니다. 임베디드 서블릿의 경우 Spring Boot는 Tomcat, Jetty 및 Undertow 또는 서블릿 5.0+ 호환 컨테이너와 함께 작동합니다. GitHub도 사용할 수 있습니다.

Spring Boot의 이점은 Spring의 모든 복잡성 없이 Spring 애플리케이션 프레임워크의 다양한 기능을 활용할 수 있다는 것입니다. 개발자는 Java 17 이상과 호환되는 모든 Java Virtual Machine에서 프로젝트를 실행할 수 있습니다. 즉, 별도의 웹 서버를 설정하거나 WAR(웹 애플리케이션 아카이브) 파일을 정의할 필요가 없습니다.

Java 애플리케이션 설정에 XML 구성을 필요로 하는 대신, Spring Boot는 Oracle Database 또는 MySQL을 사용하는 데이터베이스 기반 애플리케이션에 이상적인 application.properties를 사용합니다. 실제로 애플리케이션이 MySQL를 사용하는 경우 Spring Boot에서 자동으로 인메모리 데이터베이스를 구성할 수 있습니다. Spring Data JPA(Java Persistence API)를 사용하여 다양한 데이터 액세스 기술을 사용할 수 있습니다.

아키텍처를 자세히 알아보려면 Spring Boot 기반 애플리케이션의 이 예를 확인하세요.

Spring Boot의 작동 방식

Spring Boot는 많은 Java 애플리케이션 프레임워크 및 기타 추가 기능과 마찬가지로 DI(Dependency Injection) 및 IoC(Invension of Control)를 사용하여 Java 프로그램에 기능을 추가합니다.

DI를 사용하면 외부 프레임워크(이 경우 Spring Boot)가 엔터프라이즈 애플리케이션에 객체 및 기능을 제공하므로, 개발자는 이를 구축할 필요가 없습니다. 모든 개발자는 상황에 따라 이러한 객체 및 기능에 대한 인터페이스를 파악하거나 정의해야 합니다.

IoC는 프로그램의 제어 흐름이 외부 소스에서 제공되는 위치입니다. Spring Boot의 경우 개발자는 프로그램 논리를 처리하고, 애플리케이션 프레임워크는 이벤트 루프 및 메시지 전달을 제공합니다. Spring의 특별한 IoC 컨테이너는 개발자의 노력을 최소화하면서 객체와 기능에 대한 의존성 주입을 효율적으로 처리합니다.

Spring 및 Spring Boot에서는 Java 주석을 사용합니다. 컴파일할 수 없는 태그 앞에 @ 기호가 붙은 시스템이 코드에 포함되고 기능 추가에 사용할 수 있는 메타데이터를 제공합니다.

개발자는 Spring 종속성과 Spring Boot Starter 종속성을 모두 새 프로젝트의 Maven pom.xml 또는 Gradel build.gradle 파일에 추가하여 Spring Boot를 로드합니다. 여기에서 개발자는 웹 서비스용 REST 컨트롤러를 빌드하기 위한 @RestController와 같은 코드에 적절한 Spring Boot 주석을 추가합니다. Spring Boot는 애플리케이션의 설계 및 코딩을 크게 간소화하는 많은 기능을 추가합니다. 예를 들어, Jackson을 사용하여 코드를 직렬화 및 역직렬화하는 등 세 가지 JSON 매핑 라이브러리와의 통합을 제공합니다. Spring Security 기능은 HTTP나 양식을 사용하는 모든 종류의 애플리케이션, 사실상 거의 모든 웹 애플리케이션을 구축하는 데 필수적입니다.

Spring Boot 프레임워크는 HTTP 요청 및 JSON 데이터 전송을 프로그램 비즈니스 논리로부터 분리한 다음, 외부 데이터베이스의 실제 표현에서 데이터의 객체 표현으로부터 논리를 분리하는 4계층 아키텍처를 설정합니다. 이 아키텍처는 마이크로서비스 구축에 이상적인 있는 그대로 사용될 수 있으며, 웹 애플리케이션에 더 적합할 수 있는 Model-View-Controller 설계 패턴에 매핑할 수도 있습니다.

모든 종속성을 추가하고 프로그램 논리를 작성하면 표준 Maven 및 Gradle 실행 명령이 애플리케이션을 시작합니다. Spring Boot는 Spring 프레임워크에서 필요한 모든 것이 프로젝트에 적합하게 설치 및 구성되었는지 확인합니다. 자체 포함된 실행 파일을 생성하려는 경우 Spring Boot를 사용하면 중첩된 JAR 파일을 직접 생성할 수 있습니다. 그러면 모든 표준 JVM(Java 17 이상) 또는 고유 이미지 플랫폼(예: GraalVM)에서 실행되도록 배포할 수 있습니다.

Spring Boot의 장점

Spring Boot는 Spring 프레임워크 자체를 사용하는 것보다 엔터프라이즈 Java 개발자에게 여러 이점을 제공합니다. 일반적으로 Spring 또는 Spring Boot에서 프로젝트의 요구 사항을 충족할 수 있는 경우, Spring Boot를 사용하여 단순화된 설정 및 생산성 향상을 활용하는 것이 좋습니다. 구체적인 이점은 다음과 같습니다.

  • 개발 가속화: Spring Boot를 사용하면 개발 팀이 바로 개발에 착수할 수 있습니다. Spring Boot의 '독선적인' 알고리즘은 프로젝트에 필요한 모듈, 함수 및 타사 라이브러리를 감지, 로드 및 설정할 수 있습니다. 반면, Spring에서는 개발자가 포함할 항목을 수동으로 선택해야 합니다.
  • 간소화된 구성. Java, C++ 및 C#과 같은 언어를 사용하는 개발자는 복잡한 애플리케이션의 모든 요소를 구성하려면 시간이 많이 걸리고 오류가 발생하기 쉬울 수 있음을 알고 있습니다. Spring Boot는 모듈 및 타사 라이브러리를 자동으로 구성하여 많은 작업을 덜어줍니다. 또한, 개발 프로세스 중에 사용하는 모듈이나 라이브러리가 변경되면 Spring Boot는 구성을 자동으로 조정하고 변경합니다.
  • 마이크로서비스를 위한 기본 제공 기능: Spring Boot는 반응적, 이벤트 기반, 일괄 처리, 서버리스, 클라이언트/서버 또는 웹 등 모든 유형의 엔터프라이즈 Java 애플리케이션을 구축하는 데 사용할 수 있습니다. 그러나 이 프레임워크는 특히 마이크로서비스 구축에 강점을 보이며, 서비스 검색, 로드밸런싱, 분산 실행 추적, 실시간 메시지 스트리밍을 위한 기본 제공 패턴을 지원합니다. 마찬가지로 중요한 것은 Spring Boot 앱이 빠르게 시작되고 빠르게 종료되어 마이크로서비스 확장성에 필수적이라는 점입니다.
  • 종속성 관리: 종속성은 애플리케이션 코드의 한 부분이 라이브러리, 모듈, 플러그인, 마이크로서비스 및 API의 존재와 적절한 기능에 의존하는 경우입니다. Spring Boot에는 외부에서 정의된 객체 및 함수를 최소한의 노력으로 애플리케이션에 통합할 수 있는 종속성 주입(DI)에 대한 기본 지원이 포함되어 있습니다. 이를 통해 개발자는 외부 리소스의 특정 기술 세부 사항에 대해 걱정하는 대신 프로그램 논리에 집중할 수 있습니다.
  • 생산 지원 기능: 목표는 소프트웨어를 작성하는 것이 아니라 소프트웨어를 실행하는 것입니다. 엔터프라이즈 Java 애플리케이션의 패키징과 배포는 널리 인정되는 패키징 표준이 부족하여 까다로울 수 있으며, 이는 Spring 프레임워크를 사용하는 애플리케이션도 마찬가지입니다. Spring Boot는 팀이 실행형 JAR 파일 또는 배포형 WAR 파일을 선택할 수 있도록 하여 이러한 문제를 해결합니다. 또한, 애플리케이션을 컨테이너에 직접 배포하거나 Windows 또는 Unix/Linux 시스템 서비스로 실행할 수도 있습니다.
  • 원활한 통합. 기본적으로 엔터프라이즈 Java 애플리케이션은 데이터베이스, ERP 시스템, 클라우드 앱, 레거시 클라이언트/서버 앱과 같은 다른 애플리케이션과 통신해야 합니다. Spring Boot에는 즉시 사용 가능한 많은 통합 기능이 포함되어 있으며, 거의 모든 오픈 소스 프로젝트 또는 주요 소프트웨어 제공업체가 통합 도구 및 지침을 제공합니다. 예를 들어, Oracle은 JDBC, UCP, and Oracle Backend for Spring Boot, Microservices 및 다양한 Oracle 기술을 위한 Spring Boot Starters 세트를 제공하고 지원합니다.

Spring Boot 기능

Spring Boot는 엔터프라이즈 Java 개발자의 요구에 맞게 수십 년 동안 발전해 왔습니다. 기능의 수가 많아 보이지만, 사실 Spring Boot의 역할은 기능을 단순화하는 것입니다. 개발자는 프로젝트에 포함할 모듈, 함수 및 라이브러리를 지능적으로 선택하여 인프라, 배관 및 뼈대 구축에 대한 작업을 줄이면서 프로그램 논리에 더 집중할 수 있습니다.

다음은 개발 프로세스를 단순화하는 데 도움이 되는 Spring Boot의 몇 가지 기능입니다.

  • 자동 구성: Spring Boot는 독단적 접근 방식에 따라 프로젝트에 사용할 모듈 및 외부 라이브러리를 결정한 다음, 자동으로 구성합니다. 이를 통해 개발자는 모듈과 라이브러리를 선택하는 데 드는 시간을 크게 절약할 수 있으며, 애플리케이션 환경에 맞게 구성하는 과정에서도 많은 시간을 절약할 수 있습니다. 이 과정은 시간이 많이 소요될 뿐만 아니라 오류가 발생하기도 쉽습니다.
  • 독립 실행형 파일 JAR: Spring Boot의 가장 중요한 기능 중 하나는 런타임 환경에 직접 배포할 수 있는 독립형 실행 JAR(Java 아카이브) 파일을 만드는 기능입니다. JAR에는 모든 Java 클래스 파일과 메타 데이터뿐 아니라 독립형 애플리케이션을 실행하는 데 필요한 모든 이미지 및 기타 리소스가 포함됩니다.
  • 내장된 웹 서버: 엔터프라이즈 Java 앱에 HTTP 서버가 필요한 경우 Spring Boot는 강력한 기본 보안 옵션을 사용하여 해당 서버를 자동으로 설치하고 구성합니다. 사용 가능한 서버로는 Tomcat, Jetty 및 Undertow가 있습니다.
  • Spring Boot Starters: 엔터프라이즈 애플리케이션에는 웹 서버, 분석 도구, 디버거, 설계 패턴, 지속성, 통신, 모의, 로드밸런싱 등에 대한 다양한 라이브러리와 종속성이 있습니다. Spring Boot Starter는 모든 항목을 단일 구성 파일로 묶어 프로세스를 단순화하고, 코드의 양을 줄이며, 무엇도 빠뜨리지 않도록 하는 방법입니다. 원스톱 샵과 같습니다.
  • 외부화된 구성: Spring Boot를 사용하면 다양한 환경에서 애플리케이션의 코드를 쉽게 실행할 수 있습니다. 외부화 구성을 통해 런타임 환경에 특화된 명령줄 인자, 속성 파일, 환경 변수 등의 수십 가지 속성을 사용자 정의할 수 있으며, 이를 런타임 시 로드되는 단일 파일로 캡슐화하여 @ 주석을 통해 액세스할 수 있습니다.
  • Spring Boot 개발 도구: 엔터프라이즈 Java 애플리케이션을 만드는 개발자는 IDE, DevOps 도구, 소스 코드 관리 등 선호하는 도구 체인을 사용할 수 있습니다. 게다가 Spring Boot에는 개발자의 선호에 따라 오류 관리, 로깅, 원격 실행, 클래스 경로 관리 등을 지원하는 추가 도구가 포함되어 있으며, 필요에 따라 로드하거나 사용하지 않을 수 있습니다.
  • Spring Boot Actuator: Spring Boot Actuator를 사용하면 런타임 중 모니터링할 수 있는 엔드포인트를 정의하여 애플리케이션의 상태를 확인할 수 있습니다. 이러한 엔드포인트는 HTTP 또는 JMX(Java Management Extensions)를 사용하여 활성화, 비활성화 및 노출될 수 있습니다. 일반적으로 즐겨 쓰는 애플리케이션 관리 도구를 사용하여 애플리케이션이 잘 작동하는지, 메모리가 부족한지, 멈추는지, 속도가 느려지는지, 예외를 발생시키는지, 다른 문제가 있는지 확인하기 위해 애플리케이션을 모니터링합니다.
  • 간소화된 종속성 관리: Spring Boot 프레임워크의 가장 큰 강점은 개발자가 종속성을 수동으로 구성하지 않아도 된다는 점입니다. Spring Boot는 종속성 관리를 간소화하는 기능을 통해 필요한 모듈과 라이브러리를 자동으로 구성하고, Spring Boot Starters를 사용하여 라이브러리를 패키징하며, 독립 실행형 JAR 파일로 앱을 패키징할 수 있습니다.
  • 생산 지원 기능: 애플리케이션을 배포할 준비가 되면 Spring Boot는 도움이 될 수 있는 몇 가지 기능을 제공합니다. 여기에는 모든 구성을 패키지화하는 Spring Boot Starters, 앱 배포를 위한 독립 실행형 JAR 및 런타임 상태 모니터링을 제공하는 Spring Boot Actuators가 포함됩니다.
Spring Boot가 널리 사용되는 이유 다이어그램, 아래 설명

Spring Boot가 널리 사용되는 이유

애플리케이션 개발부터 배포까지 다양한 이점을 제공합니다.

인기 있는 Spring Boot 기능

개발:

  • 자동 구성
  • Spring Boot 개발 도구
  • 간소화된 종속성 관리
  • 내장된 웹 서버

배포:

  • 독립 실행형 파일 JARS
  • Spring Boot Starters
  • 외부화된 구성
  • Spring Boot Actuator
  • 생산 지원 기능
이러한 이점들 덕분에 Spring Boot는 Java 개발자들 사이에서 널리 사용되고 있습니다.

Spring Boot 아키텍처

Spring Boot는 간소화된 마이크로서비스, 온프레미스에서 실행할 복잡한 비즈니스 크리티컬 애플리케이션, 최신 클라우드 애플리케이션 등 모든 종류의 엔터프라이즈 Java 애플리케이션을 대규모 또는 소규모로 작성하는 데 사용할 수 있습니다. 일반적인 Spring Boot 애플리케이션에는 애플리케이션의 요구에 맞게 조정할 수 있는 4개의 계층이 포함되어 있습니다. 간단한 마이크로서비스에는 가령 데이터베이스 또는 지속성 계층이 없을 수 있습니다.

상향식으로, 네 개의 계층은 다음과 같습니다.

  • 데이터베이스 계층: 애플리케이션을 구동하는 데 사용되며 CRUD 작업에 사용되는 하나 이상의 실제 데이터베이스입니다. Spring Boot를 사용하면 거의 모든 확장 가능한 데이터베이스를 사용할 수 있습니다.
  • 지속성 계층: 지속성 계층은 실제 데이터베이스 계층의 객체 관계형 추상화 기능을 제공합니다. 애플리케이션 논리는 비즈니스 객체와 상호 작용하여 지속성 계층을 처리합니다. 그런 다음 지속성 계층의 코드는 이러한 계층을 관계형 행/열로 변환하고 CRUD 작업을 데이터베이스 계층으로 전달합니다.
  • 비즈니스 계층: 여기에서 개발 팀은 조직의 문제를 해결합니다. 비즈니스 계층에는 프로그램 흐름과 이벤트 처리 지침이 포함됩니다. 프레젠테이션 계층의 사용자 및 외부 애플리케이션과 지속성 계층을 통해 데이터와 통신합니다.
  • 프레젠테이션 계층: Spring Boot 애플리케이션의 프레젠테이션 계층은 HTTP 및 JSON을 통해 외부와 통신합니다. 들어오는 요청이 여기에서 인증되고 JSON의 압축이 해제됩니다. 그런 다음 서비스 요청이 처리를 위해 비즈니스 계층으로 전달됩니다. 애플리케이션에 대한 외부 인터페이스를 '뷰'라고 합니다.

Spring Boot 설정

Spring Boot를 사용해 볼 준비가 되셨나요? 설정이 간편하기 때문에 많은 개발 팀이 Spring Boot를 사용하고 있습니다. 학생들이 널리 사용되는 이 애플리케이션 프레임워크를 배우는 이유도 바로 여기에 있습니다. 시작하려면 오픈 소스 프로젝트의 공식 첫 번째 Spring Boot 애플리케이션 개발하기 설명서를 확인해야 합니다. 여기에서 단계별 요약을 소개합니다.

  1. Java 17 이상을 실행 중인지 확인합니다.
  2. Maven 또는 Gradle을 구성하고 Spring Boot 애플리케이션 프레임워크를 포함하도록 Maven pom.xml 또는 Gradle build.gradle 파일을 정의합니다.
  3. 프로젝트에 대한 종속성을 관리하는 Spring Boot Starter에 대한 클래스 경로 종속성을 추가합니다.
  4. 간단한 'Hello World' 또는 비즈니스 크리티컬한 대규모 애플리케이션일 수 있는 코드를 작성하고 Spring Boot의 기능을 포함하는 적절한 주석을 사용합니다.
  5. Maven 또는 Gradle을 사용하여 로컬로 애플리케이션을 실행하고 만족스럽게 작동하는지 확인합니다.
  6. 필요한 경우 배포할 수 있는 독립 실행형 파일 JAR에 애플리케이션을 패키지화합니다.

서비스를 사용해 보려면 배포된 대부분의 서비스를 사용하는 애플리케이션인 CloudBank를 살펴보세요.

Spring Boot에서 Oracle 기술 사용

Spring Boot의 데이터베이스 계층은 광범위한 클라우드 및 온프레미스 데이터베이스와 호환됩니다. 두 가지 주요 선택 옵션은 Oracle Database 및 MySQL입니다. Oracle의 개발자 팀은 오픈 소스 라이브러리에 코드를 다시 제공하고 Oracle의 다양한 프레임워크와 라이브러리를 통합함으로써 Spring Boot를 지원하는 데 전념하고 있습니다. 또한, Oracle Cloud Marketplace에서 Oracle Database 및 OCI Services에 대해 지원되는 Spring Starters를 찾을 수 있습니다.

2024년 6월에 출시된 새로운 플랫폼인 Oracle Backend for Microservices 및 AI는 개발자가 Spring Boot 및 기타 프레임워크에서 마이크로서비스를 구축하고 배포할 수 있도록 여러 클라우드에서 작동하는 Oracle Database 및 기타 인프라 구성 요소와 함께 '서비스형 백엔드'를 프로비저닝합니다. 마이크로서비스 플랫폼을 구축, 테스트 및 운영하는 작업을 간소화하고, Oracle Database 23ai를 통해 RAG 및 에이전트 기술을 빠르게 반복하고 실험할 수 있는 AI 샌드박스(개발자 검토)를 포함합니다. AI 샌드박스는 명령줄 인터페이스, VS Code(Visual Studio Code) 플러그인, IntelliJ 플러그인, 서비스 검색 및 이벤트 관리를 제공하는 Oracle Backend for Microservices 및 AI에서 관리 및 배포할 수 있는 Spring AI 마이크로서비스 코드를 생성할 수 있습니다.

한 마디로, Spring Boot는 스마트한 오픈 소스 선택지입니다. 이를 통해 개발 팀은 Spring 프레임워크만 사용하는 것보다 훨씬 빠르게 복잡한 비즈니스 애플리케이션을 작성할 수 있습니다. Spring Boot는 기능 및 외부 라이브러리를 지능적으로 설치한 후 자동으로 구성하므로, 개발자는 애플리케이션의 실제 가치를 실현하는 비즈니스 문제 해결에 집중할 수 있습니다.

AI 모델은 사기를 실시간으로 감지하고, 헬스케어 연구자가 인사이트를 찾고, 고객 리뷰 및 소셜 미디어 정서를 분석하는 데 도움을 줍니다. 공통점은 데이터를 효과적으로 활용하는 스마트한 개발 방식입니다. 10가지 실제 AI 사용 사례를 살펴보세요.

Spring Boot FAQ

Spring Boot란 무엇이며 왜 사용되나요?

Spring Boot는 Java 개발자가 Spring 프레임워크의 강력한 4계층 아키텍처를 활용하면서 훨씬 쉽게 사용할 수 있는 애플리케이션 프레임워크입니다. 개발자의 생산성 향상, 배포 시간 단축, Spring Boot의 자동 구성 기능으로 인한 오류 발생 가능성 감소라는 이점이 있습니다.

Spring Boot는 백엔드 프레임워크인가요?

Spring Boot는 엔터프라이즈 Java 애플리케이션 구축을 위한 프레임워크입니다. 클라우드 및 온프레미스 배포와 웹, 마이크로서비스 및 클라이언트/서버 소프트웨어 생성에 적합합니다. Spring Boot는 프런트엔드(프레젠테이션 및 비즈니스 논리) 및 백엔드(지속 추상화 및 데이터베이스 연결) 기능을 모두 포함합니다.