- Today
- Yesterday
- Total
메이쁘
[Spring] 2020.11.04. 오늘의 면접 Q&A 본문
안녕하세요.
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로 전달해서 화면에 출력합니다.
오늘 게시글은 여기까지 하겠습니다.
감사합니다.
'면접 대비 CS지식 > SELF CS면접 Q&A' 카테고리의 다른 글
[Protocol] 2020.11.11. 오늘의 면접 Q&A (0) | 2020.11.11 |
---|---|
[TCP/IP] 2020.11.11. 오늘의 면접 Q&A (0) | 2020.11.11 |
CS면접 Q&A 모음집 (0) | 2020.11.10 |
[TCP/IP] 2020.11.10. 오늘의 면접 Q&A (0) | 2020.11.10 |
[TCP/IP] 2020.11.04. 오늘의 면접 Q&A (0) | 2020.11.05 |