<시험1-애플리케이션 테스트 관리 문제해결시나리오>
테스트 시나리오를 [원인]에 기술하고 테이블 생성과 3개 행의 테스트 데이터(임의의 데이터)를 기록 구문과 테스트에 대한 예상결과를 [조치내용]에 기술
게시글 검색을 수행하기위해 샘플 데이터를 입력하고 검색해 본다.
CREATE TABLE test
(
BO_NO NUMBER(10) NOT NULL,
BO_TITLE VARCHAR2(30) NOT NULL,
BO_WRITER VARCHAR2(15) NOT NULL,
BO_CONTENT VARCHAR2(300) NOT NULL
);
ALTER TABLE test ADD CONSTRAINT test_pk PRIMARY KEY (BO_NO);
COMMENT ON COLUMN test.BO_NO IS '기본키';
COMMENT ON COLUMN test.BO_TITLE IS '제목';
COMMENT ON COLUMN test.BO_WRITER IS '작성자이름';
COMMENT ON COLUMN test.BO_CONTENT IS '글내용';
INSERT INTO test VALUES(0, '제목1', '작성자1', '내용1');
INSERT INTO test VALUES(1, '제목2', '작성자2', '내용2');
INSERT INTO test VALUES(2, '제목3', '작성자3', '내용2');
시작 조건: 화면 개발 및 백엔드 개발이 완료되었을 때
종료 조건: 샘플 데이터 검색이 성공하여 화면에 정상적으로 출력될 때
예상결과: 검색어를 입력하고 검색을 누르면 입력한 샘플 데이터가 화면에 출력된다.
실제 결과: 검색한 샘플 데이터가 출력됨.
테스트 수행의 목적을 [원인]에 기술하고 테스트 수행 내용(로그인요청 로직)을 자바스크립트(jQuery)로 [조치내용]에 작성
로그인 기능이 제대로 작동하는지 확인하기 위해 샘플 데이터로 테스트를 수행한다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
document.getElementById('loginBtn').onclick = function() {
const userId = document.getElementById('user_id').value
const userPw = document.getElementById('user_pwd').value
if(userId != null && userPw != null) {
document.getElementById('loginForm').submit()
} else {
alert('값을 입력해주세요.')
}
}
</script>
</head>
<body>
<form id="loginForm" action="/member/memberLogin" method="post">
<input type="text" id="user_id" name="user_id" />
<input type="password" id="user_pwd" name="user_pwd" />
<button type="button" id="loginBtn">로그인</button>
</form>
<c:if test="${!empty loginMember}">
<script>
alert('회원 로그인이 완료되었습니다.');
</script>
</c:if>
</body>
</html>
어떤 점에서 애플리케이션의 성능이 저하되는지 [원인]에 기술하고 해결 방안은 무엇인지 [조치내용]에 작성
사용할 컬럼만 가져오는 게 아니라 아스타리스크(*)를 사용하여 테이블의 모든 컬럼을 가져왔기에 성능이 저하되었다.
쿼리문에 아스타리스크(*)를 사용하지 않고 필요한 컬럼을 명시해 준다.
SELECT MEMBER.USERID, MEMBER.PASSWORD, MEMBER.USERNAME, MEMBERSHIP.MBS_NAME, AUTH_TBL.USER_AUTH_NAME
FROM MEMBER
JOIN MEMBERSHIP ON(MEMBER.USERID = MEMBERSHIP.USERID)
JOIN AUTH_TBL ON (MEMBERSHIP.USER_AUTH = AUTH_TBL.USER_AUTH)
WHERE USERID = #{userId}
<시험2-애플리케이션 테스트 관리 서술형(신)>
스프링 프레임워크에서 @Service 어노테이션의 역할
스프링에서 서비스를 지정하는 어노테이션으로 비즈니스 로직을 수행하는 서비스 레이어 클래스임을 나타낸다. 캡슐화 없이 모델 내 단독 인터페이스로써 제공되는 동작을 의미한다.
예상되는 SQL 형태가 무엇이 될지 기술
SELECT * FROM BOARD
WHERE state = 'Y'
버전(형상) 관리 시스템의 사용 이점에 대해서 서술
버전관리가 가능해 각 파일의 히스토리를 보고 이전 상태로 되돌리거나 누가 언제 만든 코드인지, 수정사항이 무엇인지 비교할 수 있다.
또한 배포가 편리하고 여러 사람이 동일한 소스코드를 공유하며 개발할 수 있다.
세션을 관리하는 클래스인 HttpSession을 이용하여 세션 정보를 지울 때 사용하는 메소드를 작성
session.invalidate();
스프링 프레임워크에서 @Repository 어노테이션의 역할
클래스가 객체에 대한 저장, 검색, 검색, 업데이트 및 삭제 작업을 위한 메커니즘을 제공함을 나타내는 데 사용된다.
@Repository 어노테이션에 @Component의 기능이 포함되어 있고 @Repository를 사용함으로써 해당 클래스가 Repositorydml 역할을 하는 것을 명확하게 알 수 있다.
Git의 명령 중 Push에 대해서 기술
git push는 로컬 브랜치(local branch)를 원격 저장소(remote repository)로 업로드할 때 사용하는 Git 명령어이다.
Spring AOP실행 시점에 따른 Advice를 나열하고 각 관점의 특징에 대해 서술
before: 비즈니스 메소드 실행 전 동작
after: 비즈니스 메소드가 실행된 후, 무조건 실행
after-returning: 비즈니스 메소드가 성공적으로 리턴되면 동작 (단, 메소드 내부에 리턴값이 존재하는 경우)
after-throwing: 비즈니스 메소드 실행 중, 예외가 발생하면 동작
around: 메소드 호출 자체를 가로채서 비즈니스 메소드 실행 전&후 모두에 처리할 로직을 삽입할 수 있음
404 에러에 대해서 서술
서버 자체는 존재하지만 서버에서 요청한 것을 찾을 수 없을 때 발생하는 에러.
사용자가 요청하는 페이지나 파일이 이동, 수정, 삭제되거나 경로가 잘못되어 발생하는 경우가 가장 많다.
'국비학원 > 수업기록' 카테고리의 다른 글
국비 지원 개발자 과정_Day110 (1) | 2023.05.08 |
---|---|
국비 지원 개발자 과정_Day105 (0) | 2023.04.28 |
국비 지원 개발자 과정_Day104 (0) | 2023.04.27 |
국비 지원 개발자 과정_Day103 (0) | 2023.04.26 |
국비 지원 개발자 과정_Day102 (0) | 2023.04.25 |
댓글