1. Spring프레임워크의 IoC(Inversion of Control)이란 무엇인지 서술하시오.
=> "제어의 역전" 이라는 의미로, 말 그대로 메소드나 객체의 호출작업을 개발자가 결정하는 것이 아니라, 외부에서 결정되는 것을 의미한다.
IoC는 제어의 역전이라고 말하며, 간단히 말해 "제어의 흐름을 바꾼다"라고 한다.
객체의 의존성을 역전시켜 객체 간의 결합도를 줄이고 유연한 코드를 작성할 수 있게 하여 가독성 및 코드 중복, 유지 보수를 편하게 할 수 있게 한다.
2. Spring 프레임워크의 DI(Dependency Injection)이란 무엇인지 서술하시오.
=> 스프링이 다른 프레임워크와 차별화되어 제공하는 의존 관계 주입 기능으로,
객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식이다.
DI(의존성 주입)를 통해서 모듈 간의 결합도가 낮아지고 유연성이 높아진다.
3. DI Annotation방식에 대해 서술하시오.
=> 어노테이션을 통하여 빈을 주입시키는 방법 2가지
@Resource : 의존 대상 객체를 타입으로 검색 + name을 통해 주입 ( @Resource(name="beanId")를 명시하면 bean id로 검색해 주입)
@Autowired : 의존 대상 객체를 타입으로 검색해 주입
(단, 동일한 인터페이스의 구현 객체가 여러 개 있을 경우 Exception 발생 - 이를 해소하기 위해 @Quelifier("bean name")이 필요 )
4. Spring-MVC 모델에서 DispatcherServlet에 대해 설명하시오.
=> Servlet Container에서 HTTP프로토콜을 통해 들어오는 모든 요청을 프레젠테이션 계층의 제일앞에 둬서 중앙집중식으로 처리해주는 프론트 컨트롤러(Front Controller)
5. Spring-MVC 모델에서 Handler Mapping에 대해 설명하시오.
=> ispatcherServlet으로 받은 요청을 Controller로 보내지는데,
그런 요청이 어떤 룰으로 컨트롤러에게 보내는지(매핑하는지), 그 방법을 정해주는 클래스가 바로 Handler다.
6. Spring-AOP란 무엇인지 서술하시오.
=> 관점 지향 프로그래밍이라고 불린다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것
7. PointCut 표현식이란 무엇인지 서술하시오.
=> 포인트컷을 이용하면 어드바이스 메소드가 적용될 비즈니스 메소드를 정확하게 필터링할 수 있다.
지시자 종류, 리턴타입 지정, 패키지 지정, 클래스 지정, 메서드 지정, 매개변수 지정
8. Spring AOP용어 중 Jointpoint와 Pointcut에 대해 서술하시오.
=> PointCut : 특정 조건에 의해 필터링된 조인포인트, 수많은 조인포인트 중에 특정 메소드에서만 횡단 공통기능을 수행시키기 위해서 사용한다.
JoinCut : 관심사와 비즈니스 로직이 결합되는 지점을 조인 포인트.
9. Spring AOP 동작시점을 3가지 이상 서술하시오.
=> Before : 비지니스 메소드 실행 전 동작
After :
-After Returning: 비지니스 메소드가 성공적으로 리턴되면 동작
-After Throwing: 비지니스 메소드 실행 중 예외가 발생하면 동작
-After : 비지니스 메소드가 실행된 후 무조건 실행
Around : 메소드 호출 자체를 가로채 비지니스 메소드 실행 전후에 처리할 로직을 삽입할 수 있음
'Learn > KH정보교육원' 카테고리의 다른 글
[KH정보교육원 당산] 끝 (0) | 2021.07.28 |
---|---|
[정보교육원 당산] 83일( Spring boot - Security ) (0) | 2021.07.19 |
[KH정보교육원 당산] 79일 (Spring Boot - Thymeleaf, BootStrap) (0) | 2021.07.09 |
[KH정보교육원 당산] 78일 (Spring Boot - ORM과 JPA) (0) | 2021.07.07 |
[KH 정보교육원 당산] 77일 ( Spring Boot - IntelliJ IDEA / MariaDB) (0) | 2021.07.07 |