꼭 알아야 할 Spring MVC 인터뷰 질문 15가지

게시 됨: 2018-03-25

Spring은 웹 애플리케이션 개발에 가장 많이 사용되는 Java 프레임워크 중 하나가 되었습니다. 모든 새로운 Java 애플리케이션은 기본적으로 Spring 코어 및 Spring MVC 프레임워크를 사용합니다. 인기가 높아짐에 따라 전 세계의 채용 담당자는 Spring 프레임워크를 직접 사용하는 후보자를 찾고 있습니다. Java 개발자 역할에 대한 인터뷰에 참석하는 경우 Spring MVC는 신입이든 경험이 있는 사람이든 관계없이 Spring 프레임워크 인터뷰 질문에 대한 지식을 다듬어야 하는 첫 번째 항목 중 하나입니다.

결국, Spring MVC 프레임워크는 가장 일반적으로 사용되는 Java 프레임워크이며, 귀하가 앉는 모든 Java(또는 관련 인터뷰) 인터뷰에서 동일한 질문을 받을 수밖에 없습니다. 모른다면 Spring MVC는 웹 애플리케이션을 빌드하는 데 도움이 되는 강력한 Java 기반 프레임워크입니다. 이름에서 알 수 있듯이 MVC 아키텍처(모델, 보기, 컨트롤러)를 사용합니다. Spring MVC는 MVC 프레임워크와 함께 Spring을 사용하는 우아한 방법을 제공합니다. 2002년에 출시된 Spring 프레임워크는 오픈 소스 프레임워크이므로 전 세계의 개발자가 프레임워크의 개발 및 추가 릴리스에 기여할 수 있습니다.

Swiggy, Quora, IMDB 등과 같은 애플리케이션을 빌드하는 방법을 배우십시오.

이는 또한 귀하의 쿼리를 도와줄 항상 활동적인 개발자 커뮤니티가 있음을 의미합니다. 오픈 소스가 된다는 것은 또한 Spring 프레임워크가 제공하는 많은 이점에 추가됩니다. 특히 Java 경력을 시작하는 경우 지침이 필요하며 다양한 Java 개발자 커뮤니티는 Spring MVC 작업과 관련하여 지침이 부족하지 않도록 합니다.

제공할 수 있는 이점이 너무 많기 때문에 왜 Spring MVC가 인터뷰에서 가장 좋아하는 주제인지 의심의 여지가 없어야 합니다.

이 기사에서 우리는 당신이 앉아 있는 모든 인터뷰에서 만날 것으로 예상할 수 있는 15가지 그러한 Spring MVC 필수 질문에 대해 이야기할 것입니다.

1. Spring 프레임워크란 무엇인가?

Spring은 애플리케이션 개발을 단순화하기 위해 구축된 오픈 소스 프레임워크입니다. 개발자가 사용하는 구성 요소를 선택할 수 있도록 계층 구조를 가지고 있습니다. Spring Core, Spring AOP 및 Spring MVC의 세 가지 주요 구성 요소가 있습니다.

또한 Spring에 대한 경험이 있는 경우 이에 대해 이야기할 수 있습니다. 그것은 당신의 대답에 많은 무게를 더할 것입니다.

기업이 풀스택 개발자를 찾는 이유

2. Spring 프레임워크의 주요 기능은 무엇입니까?

Spring 프레임워크는 개발자의 삶을 쉽게 만들어주는 많은 기능을 제공합니다. 그 중 일부는 다음과 같습니다.

  • 경량: Spring은 매우 가벼우며 기본 버전은 약 1MB이며 처리 오버헤드는 무시할 수 있습니다.
  • 제어 역전(IoC): 종속성 주입 또는 제어 역전 은 Spring의 가장 중요한 기능 중 하나입니다. IoC를 사용하여 개발자는 개체 및 해당 종속성을 위한 완전한 환경을 만들 필요가 없습니다. 그들은 단순히 주어진 시점에서 처리하고 있는 객체를 생성하고 테스트할 수 있습니다. 개체 종속성은 필요할 때 포함되거나 호출됩니다.
  • Aspect-Oriented Programming: Spring은 Aspect-Oriented Programming을 지원합니다. AOP 는 프로그래머의 비즈니스 로직에서 2차 기능을 분리합니다. 이것은 모듈성을 제공할 뿐만 아니라 코드를 유지 관리할 수 있게 합니다.
  • MVC 아키텍처: Spring은 웹 애플리케이션을 위한 MVC 프레임워크와 함께 제공됩니다. 이 프레임워크는 JSP, Tiles, iText 및 POI와 같은 다양한 기술을 사용하여 고도로 구성할 수 있습니다.
  • JDBC 예외 처리: Spring은 전체 예외 처리 프로세스를 단순화하는 사전 정의된 JDBC 추상화 계층과 함께 제공됩니다.

3. 의존성 주입에 대해 좀 더 설명해주세요.

Inversion of Control 또는 Dependency Injection은 객체를 생성하지 말고 생성 방법을 설명하는 간단한 개념을 따라 객체 생성 프로세스를 단순화하는 것을 목표로 합니다. IoC를 사용하면 시스템의 각 개체를 조정하는 책임이 있는 외부 엔터티에 의해 빌드 시 개체에 종속성이 부여됩니다. 본질적으로 우리는 IOC 또는 종속성 주입을 사용하여 개체에 종속성을 주입하고 있습니다.

4. Spring에서 다양한 유형의 의존성 주입을 설명합니까? 언제 어떤 것을 사용합니까?

Spring은 개발자에게 다음과 같은 두 가지 유형의 종속성 주입을 제공합니다.

  • 생성자 기반 DI: 생성자 기반 DI는 여러 인수(각각 다른 클래스에 대한 종속성을 나타냄)를 클래스의 생성자에 전달하여 수행됩니다. 간단히 말해서 종속성은 생성자 매개변수의 형태로 제공됩니다.
  • 설정자 기반 DI: 인수가 없는 생성자로 작업할 때 고려 중인 빈을 인스턴스화하기 위해 설정자 함수를 통해 인수를 전달하여 값을 설정합니다. 이를 설정자 기반 종속성 주입이라고 합니다.

이 중 어느 것을 언제 사용할 것인지는 귀하의 요구 사항으로 요약됩니다. 그러나 선택적 종속성은 Setter 기반 DI를, 필수 종속성은 Constructor 기반 DI를 사용하는 것이 좋습니다.
Fynd의 공동 설립자인 Farooq Adam과의 인터뷰

5. 스프링 MVC 프레임워크란 무엇인가?

Spring MVC는 Spring 프레임워크의 핵심 컴포넌트 중 하나입니다. 개발자가 유연하고 강력한 웹 응용 프로그램을 구축하는 데 도움이 되는 구성 요소와 요소를 바로 사용할 수 있습니다. 이름에서 알 수 있듯이 MVC 아키텍처는 애플리케이션의 다양한 측면(입력 로직, 비즈니스 로직, UI 로직)을 분리합니다. 또한 애플리케이션의 M, V 및 C 사이에 느슨한 결합을 제공합니다.

6. 다른 MVC 프레임워크에 비해 Spring MVC 프레임워크의 장점은 무엇입니까?

Spring MVC 프레임워크는 다른 프레임워크에 비해 몇 가지 분명한 이점이 있습니다. 일부 이점은 다음과 같습니다.

    • 명확한 역할 분리 – 모든 역할에 대한 특수 객체가 있으므로 명확한 역할 분리가 제공됩니다.
    • 재사용 가능한 비즈니스 코드 – Spring MVC를 사용하면 코드를 복제할 필요가 없습니다. 특정 프레임워크 기본 클래스를 확장하기 위해 미러링하는 대신 기존 개체를 명령으로 사용할 수 있습니다.
    • 사용자 지정 가능한 바인딩 및 유효성 검사
    • 사용자 정의 가능한 로케일 및 테마 해상도
    • 사용자 정의 가능한 핸들러 매핑 및 보기 해상도
  • Spring 2.0부터 프레임워크는 JSP 페이지에 양식을 훨씬 쉽게 작성할 수 있도록 하는 JSP 양식 태그 라이브러리와 함께 제공됩니다.

7. DispatcherServlet이란 무엇입니까?

Spring MVC 프레임워크는 요청 기반이며 모든 HTTP 요청 및 응답을 처리하는 중앙 서블릿을 중심으로 설계되었습니다. 그러나 DispatcherServlet 은 그 이상을 수행합니다. IoC 컨테이너와 원활하게 통합되어 Spring의 각 기능을 사용할 수 있습니다.
HTTP 요청을 받으면 DispatcherServlet은 HandlerMapping(구성 파일)을 참조하여 적절한 컨트롤러를 호출합니다. 그런 다음 컨트롤러는 적절한 서비스 메서드를 호출하여 모델 데이터를 설정합니다. 또한 DispatcherServlet에 보기 이름을 반환합니다. DispatcherServlet은 ViewResolver의 도움으로 요청에 대해 정의된 보기를 선택합니다. 뷰가 완료되면 DispatcherServlet은 모델 데이터를 뷰로 전달합니다. 여기서 뷰는 최종적으로 브라우저에서 렌더링됩니다.
테스트 주도 개발이란 무엇인가: 초보자를 위한 안내서

8. Spring MVC의 전면 컨트롤러 클래스는 무엇입니까?

전면 컨트롤러는 웹 애플리케이션에 대한 모든 요청을 처리하는 컨트롤러입니다. Spring MVC의 경우 DispatcherServlet이 그 전면 컨트롤러입니다. 웹 요청이 Spring MVC 애플리케이션으로 전송되면 DISpatcherServlet이 모든 것을 처리합니다. 먼저 요청을 받습니다. 그런 다음 요청을 처리하는 데 필요한 요청 처리기, 컨트롤러, 보기 확인자 등과 같은 다양한 구성 요소를 구성합니다. 마지막으로 브라우저에서 콘텐츠를 렌더링합니다.

9. Viewresolver 패턴이란 무엇이며 MVC에서 어떻게 작동합니까?

View Resolver는 애플리케이션이 브라우저(View)에서 데이터를 렌더링하기 위한 기술을 동적으로 선택할 수 있도록 하는 J2EE 패턴입니다. HTML, JSP, Tapestry, XSLT, JSF 또는 기타 이러한 기술과 같은 모든 기술을 View에 사용할 수 있습니다. View Resolver 패턴은 다른 보기의 매핑을 보유합니다. 컨트롤러는 적절한 기술을 선택하기 위해 View Resolver에 전달되는 View의 이름을 반환합니다.

10. Spring MVC는 어떻게 검증 지원을 제공합니까?

Spring은 기본적으로 두 가지 유형의 유효성 검사를 지원합니다.

  • JSR-303 주석 및 모든 참조 구현(예: Hibernate Validator) 사용 또는
  • org.springframework.validation.Validator 인터페이스 구현.

11. 사용자가 체크박스를 체크할 때 다른 필드에서 유효성 검사 오류가 발생하고 그 후 체크를 해제합니다. Spring MVC의 command 객체에서 현재 선택 상태는 무엇입니까? 이 문제를 어떻게 해결할 것인가?

이것은 Spring MVC의 HTTP Post 동작을 모르는 경우 대답하기 어려운 질문 중 하나입니다.
HTTP 게시 중에 확인란을 선택 취소하면 HTTP에 확인란에 대한 요청 매개변수가 포함되지 않습니다. 즉, 업데이트된 선택 항목이 선택되지 않습니다. 이를 해결하기 위해 '_'로 시작하는 숨겨진 양식 필드를 사용할 수 있습니다.
첫 번째 소프트웨어 개발 작업에서 성공하는 방법

12. MVC 프레임워크를 3계층 아키텍처와 어떻게 비교할 것인가?

3계층 아키텍처는 아키텍처 스타일인 반면 MVC는 디자인 패턴입니다.
mvc 부분이 있는 3계층 아키텍처
더 큰 응용 프로그램에서 MVC는 3계층 아키텍처의 프레젠테이션 계층을 형성합니다. 모델, 보기 및 컨트롤러는 프레젠테이션에만 관심이 있으며 중간 계층을 사용하여 모델을 채웁니다.

13. 성능을 최적화하기 위해 Spring에서 JDBC를 어떻게 사용해야 합니까?

Spring은 JDBCTemplate 이라는 템플릿 클래스를 제공한다 . 이 템플릿과 함께 JDBC를 사용하면 매니폴드의 성능이 향상됩니다.

14. Spring 프레임워크의 컨텍스트에서 "Bean"은 무엇을 의미합니까?

IoC 컨테이너에 의해 초기화되는 모든 클래스는 Spring에서 Bean으로 알려져 있습니다. Spring Bean의 라이프사이클은 Spring IoC Container에 의해 관리됩니다.

15. Spring Beans와 관련하여 "범위"란 무엇입니까?

Spring Beans에는 다음과 같은 5가지 범위가 있습니다.

    • 프로토타입 : Bean에 대한 요청이 있을 때마다 매번 별도의 프로토타입이 생성됩니다.
    • 요청 : 이전 범위와 같지만 웹 기반 응용 프로그램에만 해당됩니다. 각 HTTP 요청에 대해 Spring은 새 빈 인스턴스를 생성합니다.
    • 싱글톤 : 모든 컨테이너에 대해 하나의 빈만 생성되며 해당 빈의 기본 범위 역할을 합니다. 이러한 모든 인스턴스에서 빈은 데이터 불일치로 이어질 수 있으므로 공유 인스턴스 변수를 사용할 수 없습니다.
    • Session : 모든 HTTP 세션에 대해 Bean이 생성됩니다.
    • Global-session : 포틀릿 애플리케이션에 대한 글로벌 세션이 생성됩니다.

Spring 프레임워크는 확장 가능합니다. 즉, 자신만의 범위를 생성할 수도 있습니다. Bean 요소의 "scope" 속성은 범위를 정의하는 데 사용됩니다.
풀 스택 개발자가 되는 방법

마무리…

이것은 Spring 프레임워크와 Spring MVC를 중심으로 하는 반드시 알아야 할 Spring 인터뷰 질문과 답변에 관한 것이었습니다. Spring을 시작하려는 Java 개발자라면 이보다 더 좋은 시기는 없을 것입니다! Java 인터뷰 질문을 찾고 있다면 더 읽어보세요.

귀중한 시간을 할애하여 Java Spring 인터뷰 질문에 답하면 문제가 해결될 것입니다. 조직은 제공해야 하는 기능 덕분에 이 프레임워크에 대한 강력한 명령을 가진 개발자를 찾고 있습니다.

세계 최고의 대학에서 소프트웨어 엔지니어링 과정에 등록하십시오. 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

풀 스택 개발자 되기

UpGrad 및 IIIT-Bangalore의 소프트웨어 개발 PG 디플로마
IIITB에서 소프트웨어 개발의 Executive PG 프로그램 신청