메이쁘

[Spring] 2020.11.04. 오늘의 면접 Q&A 본문

면접 대비 CS지식/SELF CS면접 Q&A

[Spring] 2020.11.04. 오늘의 면접 Q&A

메이쁘 2020. 11. 5. 00:20

안녕하세요.

 

CS관련 질문과 면접에 맞는 답변을 작성하면서 지식도 쌓고 면접도 대비하는 시간을 가지려고 합니다.

 

 

틈틈히 게시글을 작성하며 면접 대비 데이터셋을 확보해둔 다음

 

언젠간 면접하게 될 때 모아서 쓰려고 합니다.

 

(실제로 면접에서 들었던 질문이 아니라, 제가 스스로 답을 정해놓고 짜논 질문이라 이렇게 안나올 수 있습니다!!!)

 

 

 

이번 글은 Spring 카테고리 입니다.

 

 

 

 

  -- 질문 목록

 

Q1.  Spring이 무엇인가요?

Q2.  Spring만의 특징과 장단점을 알려주세요.

Q3.  Spring 로직을 설명해주세요.

 


 

 

  Q.  Spring이 무엇인가요?

 

  A.  Spring은 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크 입니다. 이 스프링 프레임워크를 활용하여 동적 웹 페이지를 구축할 때 사용합니다. 

 

 

 

 

 

  Q.  Spring만의 특징과 장단점을 알려주세요.

 

  A.  Spring하면 대표적으로 IoC 기반을 가지고 있다는 점입니다.

IoC란 제어의 역전이란 뜻으로, 일반적인 프레임워크는 객체 생성 할 때 의존성 객체를 생성한 후 메소드를 호출하는 단계를 거치면서 실행되지만, IoC는 IoC컨테이너(빈이라고 하죠) 에 객체 생성, 생명주기 등 모든 객체에 대한 제어권을 넘기기 때문에 의존성 객체가 아니라 Bean 객체를 가져와서 사용합니다. 그덕에 객체의 생성과 소멸을 컨테이너가 알아서 해주기 때문에 개발자는 더 편해지는 장점이 있습니다.

  이 외에도 POJO(평범한 자바 오브젝트. Getter/Setter 사용), AOP(관점 지향 프로그래밍), MVC 패턴 등 이 있습니다.

 

*** IoC 는 DL / DI 특성이 있습니다.

  DL : 의존성 검색 -> 개발자들이 컨테이너에서 제공하는 API로 Bean(객체) 을 검색할 수 있습니다.

  DI : 의존성 주입 -> 컨테이너가 각 클래스 사이에 필요로 하는 의존관계를 Bean 설정 정보를 바탕으로 자동으로 연결해줍니다. 그렇기 때문에, 구현을 위한 객체(인터페이스 객체) 를 사용해도 아무런 문제가 없습니다.

 

 

 

  Q.  굉장하네요! 그럼 Spring 로직을 설명하실 수 있나요?

 

  A. 

    1)  클라이언트가 View에서 URL로 요청(Request) 합니다.

    2)  DispatcherServlet에서 이러한 요청을 먼저 받아 적절한 Controller에 처리를 요청합니다.

    3)  Controller에서는 적절한 Mapping 클래스(또는 함수) 를 호출합니다. (Handler Mapping)

    4)  Service 에 접근합니다. (DAO)

    5)  DB에 접근해서 DTO(VO) 에 값을 넣습니다. (또는 DTO에 값을 넣고 DB에 접근합니다.)

    6)  Service로 전달해서 비즈니스 로직을 처리합니다. (DTO 데이터 가공)

    7)  Controller에서 요청한 View 이름에 맞게 결과(ModelAndView) 리턴합니다.

    8)  DispatcherServlet 은 ViewResolver에 Controller의 실행 결과를 보여줄 View를 검색해달라고 요청합니다.

    9)  응답을 View로 전달해서 화면에 출력합니다.

 

 

 

 

 

출처 : https://velog.io/@dnjscksdn98/Spring-Framework-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC

 

 

 

 

 

오늘 게시글은 여기까지 하겠습니다.

 

 

감사합니다.

Comments