Spring Boot란
스프링 부트는 Pivotal이라는 회사가 관리하는 오픈 소스 마이크로 프레임워크입니다. Java 개발자에게 자동 구성 가능한 프로덕션 등급의 Spring 애플리케이션을 시작할 수 있는 플랫폼을 제공합니다. 이를 통해 개발자는 Spring 애플리케이션을 준비하고 구성하는 데 시간을 낭비하지 않고 신속하게 시작할 수 있습니다.
이 게시물에서는 스프링 부트가 무엇이고 스프링 부트가 무엇에 사용되는지 이해하는 과정을 안내합니다.
하지만 들어가기 전에, 우리는 그것의 기본적인 도구에 대해 간단히 토론할 것입니다: 스프링을 이해하는 것은 스프링 부트에 대한 건설적인 의견을 공식화하기 위해 중요합니다.
스프링부트 와 스프링의 차이점
본 게시물의 시작 부분에서 말씀드린 바와 같이, 스프링 부트와 스프링 의 차이점을 이해하는 것은 이 프레임워크를 사용할지 여부를 결정하는 데 매우 중요합니다. 따라서, 우리는 둘 사이의 차이점을 분명히 해야 합니다.
먼저, 그들이 어떻게 함께 일하는지에 대해 이야기해 보겠습니다.
스프링 부트는 스프링 프레임워크 위에 구축되어 있으며 스프링 애플리케이션에 연결할 수 있는 많은 종속성이 포함되어 있습니다. 일부 예로는 Spring Kafka, Spring LDAP, Spring Web Services 및 Spring Security가 있습니다. 그러나 개발자는 많은 XML 구성 파일 또는 주석을 사용하여 각 빌딩 벽돌을 직접 구성해야 합니다.
자, 어떻게 다를까요?
스프링 프레임워크는 종속성 주입 기능을 통해 유연성을 제공하는 데 초점을 맞춥니다. 필요한 종속성을 신속하게 주입하는 동시에 느슨하게 연결된 방식으로 응용프로그램을 개발하는 데 도움이 됩니다. 그 밖의 이점은 다음과 같습니다.
경량 프레임워크입니다.
느슨한 커플링 종속성 및 테스트 가능성을 지원합니다. 모듈식 아키텍처를 통해 필요한 부품을 선택하고 분리할 수 있습니다.
XML 및 주석 구성을 모두 지원합니다.
ORM 지속성 로직을 개발하기 위해 ORM 소프트웨어에 대한 추상화를 제공합니다.
많은 미들웨어 서비스와 호환됩니다.
생산성을 향상시키고 오류를 줄이는 JDBC 프레임워크를 지원합니다.
반면, 스프링 부트는 코드 길이를 줄이고 스프링 응용 프로그램을 쉽게 실행할 수 있는 방법을 제공하는 데 초점을 맞추고 있습니다.
스프링을 배울 필요가 있을까?
만약 여러분이 스프링을 먼저 배울 필요가 있는지 궁금하다면, 간단한 대답은 "아니오"입니다.
스프링 프레임워크는 스프링 부트의 개발로 훨씬 더 사용자 친화적으로 만들어졌습니다. 특별한 이유가 없는 한 기존 프레임워크를 사용할 이유는 없습니다.
Spring Boot은 여전히 통합 프레임워크이기 때문에 Spring Boot을 사용하여 라이브러리를 구성하는 방법을 배우는 것도 의미가 있습니다. 이 작업은 쉽게 수행할 수 있지만 이러한 라이브러리에는 일부 구성이 필요할 수 있습니다.
스프링부트의 특징
1. 자동 구성: 개발자는 Spring 애플리케이션을 자동으로 구성할 수 있습니다. 그러나 Spring Boot은 사용자가 나열한 종속성에 따라 구성을 변경할 수도 있습니다. 예를 들어 "MySQL"을 종속성으로 나열하면 "MySQL 커넥터"가 포함된 Spring 응용 프로그램이 구성됩니다. 사용자 지정 구성을 추가하려면 "MySQL 커넥터"의 기본 구성을 재정의하는 클래스를 만들 수 있습니다.
2. 독립 실행형: 웹 서버에 응용프로그램을 배포할 필요가 없습니다. 실행 명령을 입력하여 응용 프로그램을 시작하면 됩니다.
3. 구성: 공식 페이지에서 스프링 부트가 구성에 사용할 기본값을 결정합니다. 또한 필요한 종속성에 대해 설치할 패키지도 결정합니다. 예를 들어 "JPA"용 Spring Boot starter "pom"을 포함하면 메모리 내 데이터베이스, 최대 절전 모드 엔티티 관리자 및 단순 데이터 원본이 자동으로 구성됩니다. 다음은 재정의할 수 있는 오피니언 기본 구성의 예입니다. 일부 개발자들은 이것이 너무 편파적이라고 생각할 수 있지만, 스프링 부트의 편파적인 설정은 개발자들이 프로젝트를 빨리 시작할 수 있도록 도와줍니다.
스프링부트가 인기있는 이유
우선, 세계에서 가장 인기 있는 프로그래밍 언어 중 하나인 자바를 사용합니다. 그 외에도, Spring Boot은 애플리케이션을 올바르고 안전하게 구성할 필요 없이 엔터프라이즈급 애플리케이션을 신속하게 시작하고 실행할 수 있도록 도와주는 놀라운 도구입니다.
또한, 사용자 커뮤니티는 거대합니다. 무료 학습 자료와 강좌를 원하신다면, 많은 것을 보실 수 있을 것입니다. 교육의 접근성은 프레임워크의 인기에 큰 영향을 미쳤습니다.
다음과 같은 추가 이점이 있습니다.
개발 시간을 단축하고 개발 팀의 전반적인 생산성을 높입니다.
프로덕션 등급의 스프링 응용 프로그램에 대한 모든 구성 요소를 자동으로 구성할 수 있습니다.
장치 및 통합 테스트에 대한 기본 설정을 제공하여 개발자가 Java 기반 응용프로그램을 쉽게 만들고 테스트할 수 있도록 합니다.
보일러 플레이트 코드, 주석 및 XML 구성을 많이 쓰지 않도록 합니다.
웹 응용 프로그램을 테스트하기 위해 Tomcat 또는 Jetty와 같은 내장 HTTP 서버가 함께 제공됩니다.
개발자가 임베디드 및 인메모리 데이터베이스로 쉽게 작업할 수 있는 많은 플러그인을 추가합니다. Spring을 사용하면 Oracle, Postgre와 같은 데이터베이스 및 대기열 서비스에 쉽게 연결할 수 있습니다.SQL, MySQL, MongoDB, Redis, Solr, ElasticSearch, Rabbit MQ, ActiveMQ 등이 있습니다.
관리 지원을 허용합니다. 즉, 애플리케이션에 대한 원격 액세스를 통해 관리할 수 있습니다.
스프링부트의 단점
스프링 부트를 사용할 때 많은 개발자들이 겪는 가장 큰 어려움은 제어력이 부족하다는 것입니다. 의견이 있는 스타일은 필요할 것으로 가정하는 많은 추가 종속성을 설치합니다. 이러한 추가 종속성(사용되지 않는 경우도 있음)을 모두 설치하면 배포 이진 크기가 매우 커질 수 있습니다.
그런 다음 스프링 부트 아티팩트를 Docker 컨테이너에 직접 배포할 수 있습니다. 이는 마이크로 서비스를 신속하게 만드는 데 유용합니다. 그러나 일부 개발자는 프레임워크가 민첩하고 가벼우도록 구축되었으므로 단일 애플리케이션에 사용해서는 안 된다고 주장합니다.
여기에서 스프링 부트를 통한 마이크로 서비스에 대해 자세히 알아보십시오.
마지막 단점은 다음과 같습니다. 레거시 스프링 코드를 업그레이드하려면 상당한 어려움이 따를 수 있습니다. Spring Boot은 기존 코드를 마이그레이션하는 데 도움이 되는 CLI 도구와 같은 여러 가지 도구를 제공하여 이러한 사용 사례를 충족하려고 합니다.
Monitoring Spring Boot Applications
스프링 부트에는 기본적으로 로그 및 응용 프로그램 상태를 모니터링하는 몇 가지 기본 도구가 함께 제공되지만 이것만으로는 충분하지 않습니다. Retrace와 같은 도구를 사용하면 팀이 Java 애플리케이션을 쉽게 모니터링할 수 있습니다.
재추적은 느린 SQL 쿼리를 탐지하는 데 도움이 되며 성능 및 CPU 사용량에 대한 보고서를 제공하며 로그를 해석하여 가장 자주 발생하는 오류를 표시합니다.
Stackify의 무료 코드 프로파일러인 Prefix를 사용하여 워크스테이션에 더 나은 코드를 작성해 보십시오. 접두사는 에서 작동합니다.NET, Java, PHP, Node.js, Ruby 및 Python이 있습니다.
결론
스프링 부트 프레임워크의 주요 목표는 유닛 및 통합 테스트를 위한 기본 설정을 통해 전반적인 개발 시간을 단축하고 효율성을 높이는 것입니다. Java 애플리케이션을 신속하게 시작하려면 모든 기본값을 쉽게 적용하고 XML 구성을 완전히 방지할 수 있습니다. 첫 번째 스프링 부트 응용 프로그램을 시작하려면 공식 문서에서 15분짜리 튜토리얼을 찾을 수 있습니다.