스프링예상문제
기출문제
1. Spring의 특징중 틀린 것은?
- 객체의 라이프사이클을 직접 관리
- Model2 방식 MVC Framework 지원
- POJO 기반의 프레임워크
- 낮은 확장성
*틀린 답 ( 낮은 확장성 )
2. Spring DI의 설명으로 올바른 것은?
( Bean Container에 객체를 저장 )
3. HTTP Status Code 404, 500에러가 발생할 때, 개발자가 정의한 페이지를 보여주려면 어느 파일에서 설정해야 하는가?
( web.xml )
4. 라이브러리 추가를 위한 디팬던시 추가를 수행하는 메이븐 설정파일은?
( pom.xml )
1. 스프링 프레임워크에서 객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀐것을 뭐라고 하는가?
( IoC 제어의 역전 )
2. DI의 유형 3가지 ?
( Setter Injection, Constructor Injection, Method Injection )
BoardService Interface
package com.hello.board.dao;
public interface BoardService {
public boolean createNewBoard();
}
3. 위 내용을 보고 다음 빈칸에 들어갈 내용을 적으세요
BoardServiceImpl Class
package com.hello.board.service;
public class BoardServiceImpl implements BoardService {
private BoardDao boardDao;
public void setBoardDao(BoardDao boardDao) {
this.boardDao = boardDao;
}
@Override
public boolean (createNewBoard )() {
System.out.println("Call BoardServieImpl.createNewBoard()");
boardDao.insertBoard();
return false;
} }
application-context
<bean id="boardDao"
class="com.hello.board.dao.BoardDaoImpl">
</bean>
<bean id="boardService"
class="(com.hello.board.service.BoardServiceImpl)">
<( property ) name="boardDao" ref="boardDao" />
</bean>
4. 다음 내용을 보고 다음 빈칸에 들어갈 내용을 적으세요
BoardServiceImpl
package com.hello.board.service;
import com.hello.board.dao.BoardDao;
public class BoardServiceImpl implements BoardService {
private BoardDao boardDao;
public BoardServiceImpl(BoardDao boardDao) {
this.boardDao = boardDao;
}
@Override
public boolean createNewBoard() {
System.out.println("Call BoardServieImpl.createNewBoard()");
boardDao.insertBoard();
return false;
} }
application-context
<bean (id)="boardDao"
(class)="com.hello.board.dao.BoardDaoImpl">
</bean>
<bean id="boardService"
class="(com.hello.board.service.BoardServiceImpl)">
<constructor-arg (name)="boardDao" (ref)="boardDao" />
</bean>
5. Annotation으로 자동으로 Bean Container에 추가하기 위해 어떤 Annotation을 써야하는지?
주로 DB Access관련 ( @Repository ) ex) DAO
Business Logic 관련 ( @Service )
Controller class 관련 ( @Controller )
그냥 빈 (@Component ) ex) VO
6. 그리고 applicationContext.xml 에 무엇을 추가해줘야하는지?
<(context:component-scan) base-package="com.hello.board"/>
7. Annotation으로 자동 bean생성을 해줬으면 주입은 어떻게 하는지?
@service
public class BoardServiceImpl implements BoardService{
(@Autowired)
private BoardDao boardDao;
...
}
8. DB DI 설정은 어디서 하는가?
교제 : (settings.properties)
우리 실습 : (jdbc.properties)
9.개발자가 직접만드는 URL을 표시하여 외부에서 접근하도록 해주는 Annotation은?
( @RequestMapping() )
10. 빈칸을 채워라
@RequestMapping 에서 view만 전달하고 싶으면 return type을 ( String ) 으로 하면 되고
view와 함께 data도 전달하고 싶으면 서블릿에서 제공하는 ( ModelAndView ) 를 import해서 사용하면 된다
**참고 : ModelAndView는 요런형태로 사용한당
ModelAndView modelandview = new ModelAndView("board/board");
modelandview.addObject("message","Hello,SpringMVC");
11. CSS, JS, Image등의 Resources들을 Static Resource로 사용 하는 방법은? 다음 빈칸을 채워라..
< ( mvc : resources )mapping = "/resources/**" location="/resources/" /> 를 선언해주고
/webapp 밑에 ( resource/ )폴더안에 모든파일을 URL로 불러낼 수 있다.
12. log4j 모든 로그 레벨의 크기를 비교하여라
( FATAl < ERROR < WARN < INFO < DEBUG < TRACE )
13. 다음에서 설명하는 개념은?
관점 지향 프로그래밍, 특정 패키지 또는 클래스 특정상황이 발생했을 때, 외부코드가 자동으로 개입함
메소드안의 주기능과 보조 기능을 분리한 후 선택적으로 메소드에 적용해서 한다는 개념
( AOP : Aspect Oriented Programming )
14. 웹 개발에서 입력 폼의 값이 올바른지 검증하는 것
( Validation Check )
15. Validation-api 을 동작하기 위해 사용하는 Annotation 은?
( @Valid )
16. 로그인 기능을 구현할때 로그인 상태 정보를 서버에서 유지하기 위한 기능은?
( Session )
** 참고 :
Session 정보를 가지오는 세 가지 방법
1. HttpSession을 주입받고 원하는 객체를 꺼내어 온다.
2. HttpServletRequest를 주입받고 HttpSession을 가져와 원하는 객체를 꺼내어 온다.
3. 단순하게 Session 내의 객체만 가져오려면 @SessionAttribute Annotation을 사용한다.
17. 컨트롤러/핸들러 객체를 실행하기 전에 필요한 기능을 구현할 때 사용하는 것
( Interceptor )
**참고 : preHandle 메소드 사용시..
18. ORM : Object Releational Mapping Framwork 객체 관계 매핑 프레임 워크로서 우리가 사용했던건?
( MyBatis )
19. Mapper XML Files 구분자 중에 구문을 찾기 위해 사용될 수 있는 명명공간내 유일한 구분자
<select id="selectPerson" parameterType="int" resultType="hashmap">
SELECT * FROM PERSON WHERE ID =( #{id} )
</select>
20. select의 결과를 받고 MyBatis 에서 가장 중요하고 강력한 요소
데이터베이스에서 데이터를 가져올 때 작성되는 JDBC 코드를 줄여주는 역할을 하는 건 무엇인가?
( Result Maps )
21. 안보고 그려보시오..
