가장 많이 묻는 스프링 부트 인터뷰 질문 및 답변

게시 됨: 2022-01-10

스프링 부트는 특히 Java 애플리케이션 개발과 관련하여 대부분의 IT 면접에서 주요 토론 주제 중 하나입니다. 빠르고 낮은 구성, 내장된 서버 및 자체 모니터링 기능으로 인해 스프링 부트는 강력하고 유지 관리 가능한 구조로 독립적인 Java 기반 응용 프로그램을 만드는 데 도움이 됩니다.

이 글은 최신 인터뷰와 고급 인터뷰를 위한 모든 스프링 부트 질문을 안내합니다.

목차

스프링 부트란?

스프링 부트는 독립적인 마이크로서비스 또는 신속한 애플리케이션 개발을 구축하는 데 주로 사용되는 Java 기반 프레임워크입니다. 추가된 자동 구성 지원 및 Jetty 및 Tomcat 애플리케이션용 내장 서버와 함께 제공됩니다.

기술적으로 말하면, 스프링 부트는 기업인 Pivotal에서 유지 관리하는 마이크로 오픈 소스 프레임워크를 나타냅니다. 이 프레임워크는 Java 개발자가 프로덕션 등급의 자동 구성 가능한 스프링 애플리케이션을 생성할 수 있는 플랫폼입니다. 스프링 부트를 사용하는 Java 개발자는 모든 스프링 애플리케이션을 효율적으로 준비하고 구성할 수 있습니다.

스프링 부츠를 독특하게 만드는 것은 무엇입니까?

Spring Boot는 다음과 같은 이유로 다른 제품과 차별화됩니다.

  • 최소 구성 요구 사항으로 독립형 스프링 애플리케이션을 개발하는 데 도움이 됩니다.
  • 빌드 구성을 간소화하고 간소화하기 위해 스타터 종속성을 제공합니다.
  • WAR 파일을 배포하지 않고도 Jetty, Tomcat 등을 포함할 수 있습니다.
  • 여기에는 상태 확인, 메트릭 및 외부 구성 시스템을 포함하여 프로덕션 준비가 된 많은 기능이 포함됩니다.

무엇이 스프링 부츠를 그렇게 많이 대중화 시켰습니까?

Spring Boot는 전 세계 개발자들이 가장 선호하는 프로그래밍 언어 중 하나인 Java를 사용합니다. Java 개발자가 구성 요구 사항 및 안전 검사에 대해 걱정하지 않고 엔터프라이즈급 앱을 실행하고 유지 관리하는 데 도움이 되는 훌륭한 도구입니다. 또한 스프링 부트 커뮤니티는 광범위하고 리소스가 풍부합니다. 이 프레임워크에 대해 쉽게 액세스할 수 있는 정보는 인기를 높이는 데 도움이 됩니다.

또한 스프링 부트를 사용하면 다음과 같은 다른 이점을 얻을 수 있습니다.

  • 개발 팀의 생산성을 높이는 동시에 개발 시간을 단축합니다.
  • 여기에는 프로덕션 등급 애플리케이션을 설계하기 위한 모든 구성 요소에 대한 자동 구성 기능이 포함됩니다.
  • 통합 및 단위 테스트를 위한 기본 설정이 있어 Java 개발자를 위한 견고한 플랫폼입니다.
  • 수많은 상용구 코드, XML 구성 또는 주석이 필요하지 않습니다.
  • 웹 기반 애플리케이션을 테스트하기 위해 Jetty와 같은 임베디드 HTTP 서버가 있습니다.
  • 개발자가 메모리 및 임베디드 데이터베이스에서 원활하게 작업할 수 있도록 다양한 플러그인이 포함되어 있습니다.
  • 이를 통해 사용자는 Oracle, MySQL, PostgreSQL, ActiveMQ, MongoDB, Solr, Redis, Rabbit MQ 등과 같은 대기열 서비스 및 데이터베이스에 빠르게 연결할 수 있습니다.

최고의 봄 부츠 인터뷰 질문 – 신입생

다음은 스프링 부트 신입 레벨 인터뷰에서 가장 많이 받는 질문 중 일부입니다.

1. 스프링 부트를 통해 앱을 만들 때의 이점에 대해 말씀해 주시겠습니까?

앤스 . 앱 개발에 스프링 부트를 사용하면 다음과 같은 중요한 이점이 있습니다.

  • 스프링 기반 애플리케이션을 개발하는 동안 매우 이해하기 쉽습니다.
  • 임베디드 주석 구성과 HTTP 서버가 있는 이미 존재하는 프레임워크입니다. 이 두 가지 측면을 이해하기 쉽습니다.
  • 개발 시간을 단축하면서 생산성을 향상시킵니다.
  • 최소한의 구성이 필요합니다.
  • 사용자는 일부 디자인 관련 부분을 제외하고는 XML 구성을 작성할 필요가 없습니다.

2. 스프링 부트의 핵심 구성 요소에 대해 말씀해 주시겠습니까?

앤. 스프링 부트의 필수 구성 요소는 다음과 같습니다.

  • 스프링 부트의 자동 구성 설정
  • 스타터 스프링 부트 POM
  • CLI 스프링 부트
  • 스프링 부트 액추에이터 프레임워크

3. Java 개발자가 스프링보다 스프링 부트를 선호하는 이유는 무엇입니까?

앤. 대부분의 Java 개발자는 실제로 스프링보다 스프링 부트를 사용하는 것을 선호합니다. 이는 다음과 같은 기능 때문입니다.

  • 버전 관리
  • 스타터 POM
  • 자동 구성
  • 임베디드 서버
  • 액추에이터
  • 구성 요소 스캔
  • 인메모리 DB.

4. 스프링 부트의 다양한 스타터 종속성 모듈은 무엇입니까?

앤스 . 가장 자주 사용되는 스타터 종속성 도구는 다음과 같습니다.

  • 테스트 스타터
  • 데이터 JPA 도구
  • 보안 스타터
  • 메일 스타터
  • 웹 스타터
  • 타임리프 스타터

5. Spring Boot가 정확히 어떻게 작동하는지 알려주실 수 있나요?

앤. Spring 부트 프레임워크는 Java 개발자가 애플리케이션 프로젝트 및 주석 구성에 입력한 종속성을 기반으로 애플리케이션을 자동으로 구성합니다. 모든 스프링 부트 애플리케이션의 시작점에는 주요 방법론과 함께 "@SpringBootApplication " 구성 주석이 포함됩니다.

Spring Boot는 또한 "@ComponentScan 주석이 있는 모든 프로젝트 구성 요소를 자동으로 스캔합니다. "

6. @SpringBootApplication 의 주석이 내부적으로 무엇을 하는지 알려주실 수 있습니까 ?

앤. "@SpringBootApplication" 의 주석은 이러한 주석의 모든 기본 속성과 함께 " @Configuration, @EnableAutoConfiguration " 및 " @ComponentScan" 을 사용하는 것과 동일합니다 . Spring 부트 프레임워크를 사용하면 Java 개발자가 여러 주석 대신 단일 주석을 사용할 수 있습니다.

7. 클래스 파일에서 @ComponentScan 주석을 사용하는 목적은 무엇입니까?

앤스 . 스프링 부트 프레임워크는 애플리케이션 초기화 시 모든 패키지 선언과 빈을 스캔합니다. 그런 다음 @ComponentScan 구성 주석 을 포함해야 합니다 . 이렇게 하면 클래스 파일이 프로젝트에 추가된 모든 구성 요소를 스캔할 수 있습니다.

최고의 스프링 부트 인터뷰 질문 – 고급

다음은 Spring Boot 전문가 수준 인터뷰에서 묻는 몇 가지 인기 있는 질문입니다.

1. Spring 부트 애플리케이션 내에서 모든 기본 속성을 재정의하는 것이 어떻게 가능합니까?

앤스 . 스프링 부트는 덮어쓸 수 있는 여러 속성을 제공합니다. 애플리케이션 속성 내에서 변경 사항을 지정하여 이를 수행할 수 있습니다. 예를 들어 Spring MVC 애플리케이션에서 접두사 또는 접미사를 지정해야 하는 경우 application.properties 파일에 다음 속성을 포함하여 지정할 수 있습니다.

  • "spring.mvc.view.suffix:"
  • ".jsspring.mvc.view.prefix: /WEB-INF/"

2. 커스텀 포트에서 스프링 부트 애플리케이션을 어떻게 실행할 것인가?

앤. 사용자 정의 포트에서 스프링 부트 애플리케이션을 실행하려면 서버만 넣으면 됩니다. 애플리케이션 속성 내의 포트 기능. 예를 들어:

" 서버. 포트=8050"

3. 자바 애플리케이션에서 스프링 부트 모듈을 선택한 이유는 무엇입니까?

앤스 . 스프링 부트 모듈을 사용하면 스프링 기반 애플리케이션을 더 쉽게 만들 수 있습니다. 이는 상당한 시간과 노력을 절약하는 데 도움이 됩니다.

ActiveMQ 를 사용하여 스프링 부트 프로젝트를 개발한다고 가정해 보겠습니다 . 이를 위해 단순히 " spring-boot-starter-activemq "를 아티팩트 코드로 포함할 수 있습니다. ActivemQ 기반 스프링 애플리케이션을 생성하여 자동으로 기본값을 사용합니다.

그러나 내장된 ActiveMQ를 사용하고 싶지 않다고 가정해 보겠습니다. 여기에서 application_properties 내의 "spring.activemq.broker-URL" 을 재정의하여 외부 ActiveMQ를 사용할 수 있습니다.

4. Spring 부트의 모듈에서 DevTools를 사용하는 것에 대해 알려주십시오.

앤스 . Spring boot는 개발자의 전반적인 생산성을 향상시키는 임베디드 DevTools와 함께 제공됩니다. DevTools의 가장 중요한 이점은 변경할 때마다 애플리케이션을 다시 배포할 필요가 없다는 것입니다. 일반적으로 개발자는 서버를 다시 시작하지 않고 해당 변경 사항을 다시 로드할 수 있습니다. 이렇게 하면 변경 사항이 발생할 때마다 애플리케이션을 재배포하는 수고를 피할 수 있습니다.

5. 스프링 부트 모듈에서 액추에이터란 무엇을 의미합니까?

앤스 . 스프링 부트 액추에이터는 스프링 부트의 가장 중요한 기능입니다. 프로덕션 환경에서 실행 중인 애플리케이션의 현재 형태에 액세스하는 데 사용됩니다. 또한 여러 메트릭을 사용하여 Java 애플리케이션의 현재 상태를 확인할 수 있습니다.

스프링 부트 액추에이터는 필요한 메트릭을 간단히 확인할 수 있는 엔드포인트가 있는 부드러운 웹 서비스를 제공합니다. 예를 들어 "/ metrics:" 엔드포인트는 프로세서, 여유 메모리, 가동 시간 및 기타 속성과 같은 지표를 보여줍니다.

이러한 방식으로 스프링 부트 액추에이터는 개발자가 프로덕션 환경에서 애플리케이션을 모니터링할 수 있도록 합니다. 이러한 RESTful 끝점은 매우 민감하므로 인증된 사용자에게만 제한된 액세스를 제공합니다. 그러나 in-app.properties를 재정의하여 이 기능을 변경할 수 있습니다.

6. Spring 부트 기반 애플리케이션에서 Spring 보안 시스템을 어떻게 구현할 수 있습니까?

앤스 . 모든 스프링 부트 애플리케이션에서 스프링 보안을 구현하려면 최소한의 구성이 필요합니다. pom.xml에 spring-boot-starter-security-starter 를 입력하기만 하면 됩니다 . 그런 다음 Spring 부트 애플리케이션에서 필요한 보안을 달성하기 위해 모든 메소드를 재정의하여 WebSecurityConfigurerAdapter확장할 구성 클래스를 입력해야 합니다 .

7. Spring Boot 모듈에서 @Controller와 @RestController의 차이점에 대해 알려주십시오.

앤. @RestController 모델은 단순히 개체와 개체 데이터를 반환합니다. 둘 다 HTTP 응답을 XML 또는 JSON으로 사용하여 직접 작성됩니다.

반면에, 스프링 부트 모델의 @Controller Map은 템플릿 형태로 프로젝트를 볼 수 있게 하고 사람이 읽을 수 있도록 합니다.

당신은 봄 부츠 인터뷰를 못 박는 것을 목표로하고 있습니까?

컴퓨터 과학 석사 과정을 확인하십시오. upGrad에서. 이 과정은 Java, Python 및 Spark, MapReduce, Tableau, AWS, Keras 등과 같은 기타 여러 도구를 안내합니다. 업계 전문가와 최고의 멘토가 선별한 이 온라인 과정은 유지하면서 기술을 향상시키려는 지망생을 위한 완전한 게임 체인저입니다. 그들의 현재 직업적 약속.

결론

Spring Boot는 Java 개발자에게 유행하고 필요한 추가 기능입니다. 오늘날 많은 소프트웨어 개발 직무는 개발자에게 스프링 부트 지식을 요구합니다. 결국 Java 기반 앱 개발을 쉽고 번거롭지 않게 만듭니다. 당신이 새로운 개발자이든 경험 많은 개발자이든 상관없이 스프링 부트의 핵심에 정통하면 경쟁자보다 우위를 점할 수 있습니다.

스프링 부트를 스프링이 아닌 응용 프로그램과 함께 사용할 수 있습니까?

아니요, 스프링 부트는 모든 Spring 기반 애플리케이션에만 엄격하게 제한되어 있기 때문에 불가능합니다.

스프링 부트는 REST API만 개발하는 데 사용됩니까?

아니요, 스프링 부트는 REST 기반 API만을 위한 것이 아닙니다. 대신 Java 기반 앱을 위한 자동 구성 메커니즘입니다. 따라서 백엔드와 프론트엔드 모두에 사용할 수 있습니다.

스프링 부트의 단점은 무엇입니까?

주요 단점은 다음과 같습니다.

1. 마이크로 서비스에는 우수하지만 대규모 프로젝트에는 적합하지 않습니다.
2. 레거시 앱이나 기존 스프링 프로젝트를 스프링 부트 앱으로 변환하는 것은 꽤 시간이 많이 걸립니다.
3. 종종 수많은 불필요한 종속성이 발생하여 배포 파일의 크기가 증가합니다.