[짧고 굵게 배우는 JSP 웹 프로그래밍과 스프링 프레임워크] 연습문제 13장 해설/정답

2026. 6. 7. 09:01Book

모아보기


이번 글에서는『짧고 굵게 배우는 JSP 웹 프로그래밍과 스프링 프레임워크』13장 연습문제의 해설과 정답을 정리합니다.

본 도서는 공식적인 연습문제 해답을 제공하지 않습니다. 따라서 각 문제에 대해 도서 기반의 해설과, 정답을 설명합니다.


연습문제

01 IoC에 대한 설명으로 틀린 것을 고르시오.

① IoC란 제어의 역전(Inversion of Control)의 약칭이다.
② 기존의 프로그램은 main()처럼 프로그램이 시작되는 곳에서 필요한 객체를 생성하고, 생성된 객체의 메서드를 호출하는 흐름을 가진다.
③ IoC는 컨트롤러에서 객체를 생성하는 방식을 말한다.
④ IoC를 시스템적으로 구현하는 방법으로 DI와 DL이 있다.

 

해설

p.413 「1. IoC란?」에서는 IoC를 제어의 역전이라고 설명하며, 객체 생성과 관리의 책임을 개발자가 아닌 컨테이너가 담당하는 개념이라고 설명합니다.

또한 IoC 구현 방식으로 DI(Dependency Injection)와 DL(Dependency Lookup)을 소개합니다.

반면 ③은 IoC의 개념과 반대되는 설명입니다. IoC는 컨트롤러가 직접 객체를 생성하는 것이 아니라 외부 컨테이너가 객체를 생성하고 관리하는 방식입니다.

정답: ③ IoC는 컨트롤러에서 객체를 생성하는 방식을 말한다.

 

 

02 AOP에서 말하는 횡단 관심사에 대한 설명으로 틀린 것을 고르시오.

① 여러 프로그램에 흩어져 존재하는 공통 기능으로 이해할 수 있다.
② 꼭 필요한 기능인데 해당 기능을 사용하기 위해 동일하거나 비슷한 코드가 기계적으로 특정 위치에 들어가는 것이 해당한다.
③ 대표적으로 인증과 로깅이 있다.
④ 대표적으로 세션과 쿠키가 있다.

 

해설

p.414 「3. AOP란?」에서는 여러 기능에서 공통적으로 사용되는 부가 기능을 횡단 관심사라고 설명합니다.

대표적인 예로 로깅, 인증, 권한 검사, 트랜잭션 처리 등이 있습니다.

반면 세션과 쿠키는 상태 관리를 위한 기술이며 횡단 관심사의 대표적인 예로 보기는 어렵습니다.

정답: ④ 대표적으로 세션과 쿠키가 있다.

 

 

03 스프링 빈에 대한 설명으로 옳은 것을 고르시오.

① 스프링 컨테이너에 의해 관리되는 자바 객체로 빈 등록은 설정 XML, 애너테이션, 설정 클래스를 이용해 할 수 있다.
② 서블릿과 같이 MVC 패턴 기반의 웹 애플리케이션을 구현할 때 사용하는 모듈이다.
③ 관점 지향 프로그래밍이라고도 하며 스프링 프레임워크의 핵심 요소 중 하나다.
④ 스프링 프레임워크 기반의 프로젝트를 빠르고 간편하게 시작할 수 있게 해준다.

 

해설

p.423 「1. 스프링 빈」에서는 스프링 빈을 스프링 컨테이너가 생성하고 관리하는 자바 객체라고 설명합니다.

또한 빈 등록 방식으로 XML 설정, 애너테이션, 자바 설정 클래스 등을 사용할 수 있습니다.

②는 Spring MVC에 대한 설명이며, ③은 AOP에 대한 설명입니다. ④는 Spring Boot의 특징에 해당합니다.

정답: ① 스프링 컨테이너에 의해 관리되는 자바 객체로 빈 등록은 설정 XML, 애너테이션, 설정 클래스를 이용해 할 수 있다.

 

 

04 오토와이어링을 통해 스프링 빈을 주입하는 방법 중 필드 주입의 문제점이 아닌 것은 무엇인가?

① 필드 주입은 간단하고 편리하기는 하지만 순환 의존성 문제가 발생할 수 있다.
② final로 지정할 수 없어 불변 객체를 만들 수 없다.
③ 무분별한 사용으로 인해 의존관계가 잘 보이지 않고 복잡해질 수 있다.
④ 서버 과부하로 인해 프로그램이 중단될 수 있다.

 

해설

p.425 「2. 오토와이어링」에서는 필드 주입의 단점으로 final 사용이 어렵고, 의존관계가 외부에서 명확하게 드러나지 않는 점을 설명합니다.

또한 순환 참조 문제를 발견하기 어렵다는 단점도 존재합니다.

반면 서버 과부하로 인해 프로그램이 중단되는 것은 필드 주입 방식 자체의 문제라고 볼 수 없습니다.

정답: ④ 서버 과부하로 인해 프로그램이 중단될 수 있다.

 

 

05 다음은 스프링 부트에서 스프링 빈을 등록하는 두 가지 방법이다. 빈칸에 들어갈 단어를 채우시오.

방법1 : @Component 혹은 @Component 하위 객체인 ( ), @Service, @Repository 등의 애너테이션을 사용해 ( )을 등록하는 방법
방법2 : ( ) 애너테이션을 사용한 설정 클래스에서 @Bean 애너테이션으로 직접 ( )를 등록하는 방법

해설

p.423 「1. 스프링 」에서는 스프링 빈을 등록하는 대표적인 방법으로 컴포넌트 스캔(Component Scan) 방식과 자바 설정 클래스(Java Configuration) 방식을 설명합니다.

컴포넌트 스캔 방식은 @Component 및 그 하위 애너테이션인 @Controller, @Service, @Repository 등을 이용하여 스프링 빈을 자동으로 등록합니다.

또한 자바 설정 방식은 @Configuration 애너테이션이 적용된 설정 클래스 내부에서 @Bean 애너테이션을 사용해 스프링 빈을 직접 등록하는 방법입니다.

 

정답:

(1) @Controller
(2) 스프링 빈
(3) @Configuration
(4) 빈 객체

 

 

06 스프링 부트에서 JSP를 사용할 때 발생할 수 있는 문제점을 간략하게 서술하시오.

p.431, 434

스프링 부트는 JSP 지원이 제한적이고 추가 설정이 필요하다. 또한 JSP 파일의 직접 호출보다는 컨트롤러를 경유한 접근이 권장되므로 사용에 제약이 있다. 따라서 스프링 부트에서는 Thymeleaf 사용이 권장된다.