Spring
Spring & Spring Boot (50개)
IoC(Inversion of Control)와 DI(Dependency Injection)의 개념을 설명하고, Spring을 사용함으로써 얻는 이점은 무엇인가요
Bean의 Scope에는 어떤 종류가 있으며, 기본 스코프는 무엇인가요? prototype 스코프의 Bean을 singleton 스코프의 Bean에 주입하면 어떤 문제가 발생할까요?
Spring의 DI 방식 3가지(생성자, 필드, Setter)를 비교하고, 왜 생성자 주입 방식이 권장되는지 설명해주세요.
순환 참조(Circular Dependency)는 왜 발생하며, Spring은 이를 어떻게 해결(또는 해결하지 못)하나요?
@Transactional 어노테이션의 동작 원리를 AOP(관점 지향 프로그래밍) 관점에서 설명해주세요.
@Transactional(readOnly = true) 옵션을 사용하면 어떤 성능상의 이점이 있으며, 그 이유는 무엇인가요?
Spring의 트랜잭션 전파(Propagation) 옵션에는 어떤 것들이 있으며, REQUIRED와 REQUIRES_NEW의 차이점은 무엇인가요?
JPA 엔티티를 Controller의 응답(Response) DTO로 직접 반환하면 안 되는 이유는 무엇인가요? (최소 3가지 이상)
Spring Boot의 Auto-Configuration(@EnableAutoConfiguration)은 어떤 원리로 동작하나요?
Spring Security의 Filter Chain 구조에 대해 설명하고, 인증(Authentication)과 인가(Authorization)가 어느 단계에서 일어나는지 설명해주세요.
CORS(Cross-Origin Resource Sharing)란 무엇이며, Spring에서 이를 해결하는 방법은 무엇인가요?
DispatcherServlet의 동작 흐름에 대해 설명해주세요. (요청 -> 응답까지)
PSA(Portable Service Abstraction)란 무엇이며, Spring이 이를 통해 개발자에게 제공하는 가치는 무엇인가요?
Filter와 Interceptor의 차이점은 무엇이며, 각각 어떤 용도로 사용해야 할까요?
영속성 컨텍스트(Persistence Context)란 무엇이며, '더티 체킹(Dirty Checking)'의 원리에 대해 설명해주세요.
OSIV(Open Session In View) 패턴의 장단점에 대해 설명해주세요.
Spring WebFlux와 같은 리액티브 프로그래밍이 기존의 스레드 기반 모델과 비교하여 어떤 장점을 가지나요?
@SpringBootApplication 어노테이션 안에 포함된 3가지 핵심 어노테이션은 무엇이며, 각각의 역할은 무엇인가요?
application.yml(또는 properties) 파일의 설정값이 Bean에 주입되기까지의 과정을 설명해주세요.
Spring Actuator의 역할은 무엇이며, 실무에서 어떻게 활용할 수 있을까요?
@Autowired는 어떻게 동작하나요? 타입으로 먼저 찾나요, 이름으로 먼저 찾나요? 만약 같은 타입의 Bean이 여러 개 있다면 Spring은 어떻게 처리하나요?
AOP(관점 지향 프로그래밍)의 주요 용어(Advice, Pointcut, Join Point, Weaving)에 대해 설명해주세요.
Spring의 테스트 지원 기능(@SpringBootTest, @WebMvcTest, @DataJpaTest)들의 차이점과 각각의 사용 목적을 설명해주세요.
Spring의 RestTemplate과 WebClient의 차이점은 무엇이며, 왜 WebClient 사용이 권장되나요?
Spring Data JPA의 JpaRepository 인터페이스를 선언하기만 했는데 어떻게 구현체가 만들어지고 동작할 수 있는지 설명해주세요.
Spring의 이벤트 발행/구독 모델(ApplicationEventPublisher)에 대해 설명하고, 어떤 경우에 활용할 수 있을까요?
Spring의 Profile(@Profile) 기능은 무엇이며, 어떤 용도로 사용되나요?
Filter에서 예외가 발생하면 @ControllerAdvice에서 처리할 수 있나요? 없다면 그 이유는 무엇이며 어떻게 해결할 수 있을까요?
Spring의 ResponseEntity를 사용하는 이유는 무엇이며, @ResponseBody와 어떤 차이가 있나요?
Spring Batch의 기본 아키텍처(Job, Step, ItemReader, ItemProcessor, ItemWriter)에 대해 설명해주세요.
Spring Cloud가 마이크로서비스 아키텍처에서 해결하고자 하는 문제들은 무엇인가요?
Converter와 Formatter의 차이점은 무엇이며, 각각 어떤 용도로 사용되나요?
Spring MVC의 @ModelAttribute와 @RequestBody는 각각 언제 사용되며, 어떤 차이가 있나요?
Spring에서 정적 리소스(static resources)를 처리하는 방식에 대해 설명해주세요.
Spring의 캐시 추상화(@Cacheable, @CacheEvict)에 대해 설명하고, 어떻게 동작하는지 설명해주세요.
Spring Boot가 내장 웹 서버(Embedded Web Server)를 사용하는 방식의 장단점은 무엇인가요?
Spring의 HandlerMethodArgumentResolver는 무엇이며, 어떻게 커스텀하게 만들 수 있나요?
Spring에서 Bean의 초기화(@PostConstruct)와 소멸(@PreDestroy) 시점에 특정 로직을 실행하는 방법에 대해 설명해주세요.
Spring MVC의 요청 처리 과정에서 ViewResolver의 역할은 무엇인가요?
Spring에서 발생하는 예외들을 어떻게 공통으로 처리할 수 있는지, 그 방법들을 설명해주세요. (@ControllerAdvice)
Spring Security에서 PasswordEncoder의 역할은 무엇이며, 왜 bcrypt가 권장되나요?
Spring Data JPA에서 @Query 어노테이션을 사용하여 JPQL을 작성할 때의 장점은 무엇인가요?
Spring에서 스케줄링 작업(@Scheduled)을 어떻게 구현할 수 있는지 설명해주세요.
Spring Boot의 banner.txt는 어떤 역할을 하며, 어떻게 커스터마이징할 수 있나요?
Servlet이란 무엇이며, Tomcat과 같은 서블릿 컨테이너의 역할은 무엇인가요?
Spring MVC에서 HTTP 요청 파라미터를 받는 여러 가지 방법을 설명해주세요.
Spring에서 AOP를 구현하는 방식(프록시 기반)의 한계점은 무엇인가요?
Last updated