티스토리 뷰

Back-end/Spring Framework

스프링예상문제

douStory 2021. 10. 8. 13:19
728x90

기출문제

 

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. 안보고 그려보시오..

 

 

 

댓글