실기 모의고사 3회

과정평가형 정보처리산업기사 실기 모의고사

항목

종목명

정보처리기사

과제명

수강신청 프로그램

시험시간

4시간

비번호

003051752

◎ 특이사항

  • 2차 시험 평가는 전 과정을 응시하여야 합니다.

    • 1과제 : 수강신청 프로그램

  • 정전에 대비하여 모든 데이터는 10분에 1회 이상 저장하도록 수험자에게 교육하셔야 합니다.

  • 시험 시작 전 하드디스크에서 부정행위에 이용될 수 있는 모든 정보를 삭제하고 수험자 상호간 네트워크를 필히 차단해야 합니다.

  • 채점은 반드시 감독위원 2명 이상이 공동으로 합니다.

1. 시행 시 유의사항

※ 공통사항

  1. 장비(PC) 및 수험용 설치 프로그램의 이상 유무를 반드시 확인하여야 합니다.

  2. 작업형 과제(1과제) 완료 후 면접은 별도로 시행되며, 면접(2과제)을 위한 격리된 수험자 대기 장소를 별도로 준비하여야 합니다.

  3. 시험시간 내에 요구사항을 완성하지 못한 경우에도 채점을 실시합니다.

  4. 시행 진행 과정

※ 평가시행 전 준비사항

  • 시 설 : 컴퓨터, 수험용 소프트웨어 등

  • 재 료 : 해당 없음

  • 시험방법 : 수강신청 프로그램 개발

  • 기 타 :

    • 시험 개시 전까지 해당 검정장에 설치된 PC에 수험용 프로그램이 정상적으로 설치 및 작동 되는지 확인합니다.

    • 본부요원은 수험자에게 사전에 비번호를 부여한 후 문제지에 모든 수험자 인적사항을 비번호에 의하여 기록하도록 합니다.

※ 평가시행 중 유의사항

  • 시 설 : 컴퓨터, 수험용 소프트웨어 등

  • 재 료 : 해당없음

  • 좌석배치 : 시험장 공간에 따라 진행상 무리가 없도록 배치합니다.

  • 진행방법 : 1과제 및 2과제를 하루 동안 주어진 시간 내에 진행합니다.

  • 기 타 :

    • 컴퓨터 등의 이상으로 시험 진행이 불가능하여 교체 시 발생하는 자체시간에 대하여 감독위원의 합의 하에 추가시간을 부여합니다.

    • [제 1과제]

      • 수험자 PC가 오류 또는 기타 수험 환경에 의해 다운(Down)될 수 있으므로 주기적으로 저장할 수 있도록 교육합니다.

      • 시험 중에는 수험자가 부정행위를 할 수 없도록 네트워크 차단, 파일 공유 등을 할 수 없도록 합니다.

※ 평가시행 후 유의사항

  1. 시험 시간이 종료되면 수험자의 모든 행위를 중지시키고 문제지를 제출하도록 합니다.

  2. 감독위원은 수험자 PC에 작업한 결과물을 확인하고 채점을 실시합니다.

  3. 모든 수험자의 채점이 종료되면 지급된 USB를 사용하여 수험자가 작업한 내용을 저장한 후에 PC 내의 시험관련 자료는 삭제하여야 합니다.

2. 지급재료 목록(생략)

3. 수험자 지참공구 목록(생략)

4. 평가장소 시설 목록(생략)

제 1과제

1. 요구사항

※ 다음의 요구사항을 시험시간 내에 완성하시오.

  • 주어진 시간 내에 수강신청 프로그램을 작성하시오.

2. 수험자 유의사항

  1. 2차 평가는 작업형과 면접형 모두 응시하여야 합니다.

  2. 수험자는 지정된 장소에서, 지정된 시설과 장비만 사용하여 시험에 임해야 합니다.

  3. 수험자 PC에 설치된 개발환경을 확인합니다.

    1. 오라클(Oracle 11g XE 11.2)의 설치 및 동작 확인

    2. 자바(Java SE JDK 8)의 설치 및 동작 확인

    3. 톰캣(Apache-tomcat-8.0.26)의 설치 및 동작 확인

    4. 이클립스(eclipse)의 설치 확인

  4. 다음 패키지 별 특이 사항을 확인하고 문제 발생 시 수험자 스스로 오류를 해결하여 작업을 수행하시기 바랍니다.

    1. Apache Tomcat의 경우 Windows Service Installer 버전을 설치하는 경우 Eclipse-Tomcat 연동 시 포트 충돌 문제가 발생할 수 있음

    2. Oracle 11g XE 에서는 관리를 위해 8080 포트를 사용함으로 포트 충돌 문제가 발생할 수 있음

  5. 작업 내용을 수시로 저장하고 저장에 관계되는 일체의 책임은 수험자에게 있음을 유의하시기 바랍니다.

  6. 문제지를 포함한 모든 자료(시험문제지, 비번호 등)는 과제별 종료 후 반드시 제출합니다.

  7. 다음 각 항에 해당하는 경우에는 해당 과제를 0점으로 처리합니다.

    1. 기능 미숙으로 안전사고, 기자재 손상 등이 우려되는 경우

    2. 요구사항 또는 시험위원의 지시사항과 다른 작업을 하는 경우

    3. 요구사항을 이해하지 못하여 작업이 불가능한 경우

  8. 다음 각 항에 해당하는 경우(부정행위)에는 채점대상에서 제외합니다.

    1. 평가의 모든 과제에 응시하지 않은 경우

    2. 수험자 간에 대화를 하거나 타인의 답안을 보고 기록하거나 보여주는 경우

    3. 타인의 도움을 받거나 도움을 주는 경우

    4. 휴대폰 또는 기타 통신기기를 휴대하여 사용하는 경우

    5. 작업이 극히 미숙하여 본인 및 타인에게 위험한 상황을 유발할 수 있는 경우

    6. 지급된 재료 이외의 재료를 사용하여 작업 한 경우

    7. 기타 시험과 관련된 부정행위를 하는 경우

3. 과제 내용

1. 과제 개요

  1. 본 과제는 과목 등록, 과목 조회, 과목 수정, 학생 등록, 수강 신청, 수강신청 내역 조회, 수강 신청 취소, 수강 신청 현황 파악이 가능하도록 프로그램을 제작하시오.

  2. 프로그램 개발을 위해 개발 환경을 확인하고, 필요한 설정을 수행하시오.

2. 업무 요건

  1. 입력정보 요건에 따라 입력 테이블인 과목 테이블, 학생 테이블, 수강신청 테이블을 생성하여야 한다. 각 테이블의 데이터는 샘플데이터를 참조하여 테스트를 실시하여야 한다.

  2. 과목정보를 등록할 수 있어야 한다.

  3. 과목정보를 조회할 수 있어야 한다.

  4. 과목정보를 수정할 수 있어야 한다.

  5. 학생정보를 등록할 수 있어야 한다. 이 때, 학생 번호는 시퀀스 발생(자동증가) 처리되어야 한다.

  6. 수강 신청 정보를 등록할 수 있어야 한다.

  7. 수강 신청 내역을 조회할 수 있어야 한다.

  8. 수강 신청 내역을 취소할 수 있어야 한다.

  9. 학생 별 수강 신청 현황 파악을 할 수 있어야 한다.

3. 프로젝트 준비

  1. 접속에 사용할 오라클 계정은 ‘system' 이고, 암호는 'javaforever' 이다.

  2. 이클립스(eclipse)의 작업영역(workspace)은 ‘c:\exam'를 사용한다.

  3. 프로젝트를 생성하기 전에 java, jsp, html, css, text 파일의 기본 인코딩을 'UTF-8' 로 지정한다.(이클립스 Window - Preferences 메뉴)

  4. 이클립스에서 톰캣을 연동하여 실행하기 위한 설정을 수행해야 한다.

  5. 톰캣 포트를 8080으로 사용하고, 포트 충돌 방지를 위하여 오라클 운영 포트를 9090으로 변경한다.

  6. 프로젝트 유형은 ‘Dynamic Web Project'를 생성하고, 프로젝트 이름은 ’TEST_비번호‘를 사용한다.

  7. 시험 후 이클립스 작업영역(workspace), 즉 ‘c:\exam' 디렉토리를 반드시 'test_비번호.zip'으로 압축해서 제출하여야 한다.

[참고] 아래 소스는 Oracle Database Connection 함수이다.

package db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

...
	public static Connection getConnection() throws Exception{
		Class.forName("oracle.jdbc.OracleDriver");
		Connection con = DriverManager.getConnection(
				"jdbc:oracle:thin:@//localhost:1521/xe", "system", "javaforever"
				);
		return con;
	}
...

4. 수행 작업

  1. 메인화면(index.jsp)은 다음과 같은 디자인을 참고하여 작성하시오.

  1. 데이터 입출력 요건에 맞게 테이블을 생성하시오.

과목 테이블(subject_tbl)

순서컬럼ID컬럼명형태길이NULL비고

1

subno

과목코드

char

5

NOT NULL

Primary key

2

subname

과목이름

varchar2

60

NOT NULL

3

subscore

과목학점

number

1

4

subtime

과목시수

number

2

5

substart

개강일

date

과목 샘플 데이터

과목코드과목이름과목학점과목시수개강일

A0101

전자계산기 이론

3

40

2020-05-10

A0102

운영체제 관리

2

40

2020-05-21

A0201

소프트웨어 공학

3

60

2020-05-10

B1001

테스팅 기법

3

48

2020-05-22

B1002

자바 프로그래밍

2

48

2020-05-05

C0001

머신러닝 프로그래밍

5

60

2020-05-10

학생 테이블(student_tbl)

순서컬럼ID컬럼명형태길이NULL비고

1

stdno

학생번호

number

5

NOT NULL

Primary key

2

stdname

학생이름

varchar2

21

NOT NULL

3

stdgrade

학년

number

1

학생 샘플 데이터

학생번호학생이름학년

10001

뽀로로

1

10002

슈렉

1

10003

타요

2

10004

카봇

2

10005

펭수

3

10006

피카츄

3

수강신청 테이블(registration_tbl)

순서컬럼ID컬럼명형태길이NULL비고

1

stdno

학생번호

number

5

NOT NULL

Primary key

2

subno

과목코드

char

5

NOT NULL

Primary key

3

registdate

신청일

date

수강신청 샘플 데이터

학생번호과목코드신청일자

10001

A0101

2020-04-08

10001

B1002

2020-04-09

10001

C0001

2020-04-12

10002

A0101

2020-04-15

10002

A0201

2020-04-20

10003

A0101

2020-04-20

10004

A0101

2020-04-22

10006

A0101

2020-05-01

10006

A0201

2020-05-01

10006

B1002

2020-05-02

  1. 샘플 데이터를 SQL 문장을 사용하여 각각 생성된 테이블에 추가 입력하시오.

  2. 화면별 업무 요구사항 및 화면 구성 요건에 맞게 화면을 구현하시오.

참고 사항
- 화면의 구성요소는 필수 사항이다
- 화면의 색상, 폰트 등 스타일 구성요소는 선택사항이다

시작화면(index.jsp)

  • 시작화면은 헤더, 메뉴, 섹션으로 구성된다.

  • 메뉴는 홈으로 이동할 수 있는 메뉴와 모든 페이지로 이동할 수 있는 메뉴가 화면과 같이 존재해야 한다.

  • 해당 메뉴를 클릭하면 각각의 페이지로 이동할 수 있어야 한다.

학생등록 화면

  • ‘학생등록’ 화면은 학생번호, 학생이름, 학년을 입력하도록 되어 있다. 이 때 학생번호는 시퀀스 발생(자동증가) 되며 입력창에 미리 입력되어 있도록 구현한다.

  • 모든 항목의 정보를 채우고 ‘등록’ 버튼을 클릭하면 학생정보가 ‘학생 테이블’에 저장된다.

  • ‘등록’ 버튼을 눌렀을 때 입력되지 않은 항목이 있을 경우 ‘모든 항목을 입력하세요.’ 라는 알림창이 화면에 나타나고 포커스가 해당하는 항목으로 이동한다.

  • 등록이 성공적으로 이루어진 경우 ‘학생 등록이 완료되었습니다.’ 라는 알림창이 화면에 나타나고 비어있는 등록 페이지가 표시된다.

  • ‘학생등록’ 화면에도 ‘시작화면’에 있는 메뉴가 동일하게 출력되어야 한다.

과목 등록 화면

  • ‘과목 등록’ 화면은 과목코드, 과목이름, 과목학점, 과목시수, 개강일을 입력하도록 되어 있다.

  • 모든 항목의 정보를 채우고 ‘등록’ 버튼을 클릭하면 과목 정보가 ‘과목 테이블’에 저장된다.

  • ‘등록’ 버튼을 눌렀을 때 입력되지 않은 항목이 있을 경우 ‘모든 항목을 입력하세요.’ 라는 알림창이 화면에 나타나고 포커스가 해당하는 항목으로 이동한다.

  • 등록이 성공적으로 이루어진 경우 ‘과목 등록이 완료되었습니다.’ 라는 알림창이 화면에 나타나고 비어있는 등록 페이지가 표시된다.

  • ‘목록’ 버튼을 누르면 ‘과목 조회’로 이동해야 한다.

과목 조회 화면

  • ‘과목 조회’ 메뉴를 클릭하면 과목 조회 페이지로 이동한다.

  • 해당 페이지에서는 과목 정보가 목록으로 조회된다. 과목 테이블의 모든 정보가 화면에 출력된다.

  • 조회 순서는 과목 코드 오름차순이다.

  • ‘신청’ 버튼을 누르면 해당하는 과목의 신청 페이지로 이동한다.

과목 수정 화면

  • ‘과목 조회’ 화면에서 ‘수정’ 버튼을 누르면 ‘과목 수정’ 화면으로 이동한다.

  • ‘과목 수정’ 화면에서는 기존 과목의 정보가 입력되어 있으며, 과목 코드를 제외한 다른 정보들을 수정할 수 있다.

  • 모든 항목에 대해서 유효성 검사를 실시하여, 미 입력 항목이 있을 경우 ‘수정’ 버튼을 누르면 알림 메시지와 포커스 이동을 수행한다.

  • 정보를 모두 변경 입력한 뒤 ‘수정’ 버튼을 누르면 ‘과목 정보가 수정되었습니다’ 라는 메시지가 출력되고 ‘과목 조회’ 화면으로 이동한다.

수강 신청 화면

  • ‘수강 신청’ 메뉴를 클릭하거나 ‘과목 조회’ 화면의 신청 버튼을 누르면 수강 신청 화면으로 이동한다. 단, ‘과목 조회’ 화면에서 신청을 누른 경우에는 해당 과목코드가 입력되어 있어야 한다.

  • ‘수강 신청’ 화면에서는 학생번호, 과목코드, 신청일을 입력한다.

  • 학생번호와 과목코드는 데이터베이스에 있는 내용을 토대로 select box로 구현하며, 사용자의 편의를 위하여 학생이름과 과목이름이 표시되도록 구현한다.

  • 모든 항목의 정보를 채우고 ‘신청’ 버튼을 클릭하면 정보가 ‘수강신청 테이블’에 저장된다.

  • ‘신청’ 버튼을 눌렀을 때 입력되지 않은 항목이 있을 경우 ‘모든 항목을 입력하세요.’ 라는 알림창이 화면에 나타나고 포커스가 해당하는 항목으로 이동한다.

  • 신청이 성공적으로 이루어진 경우 ‘수강 신청이 완료되었습니다.’ 라는 알림창이 화면에 나타나고 비어있는 수강 신청 페이지가 표시된다.

수강신청 내역 조회 화면

  • ‘수강신청 내역’ 메뉴를 클릭하면 수강신청 내역 조회 화면으로 이동한다.

  • 수강신청 내역은 가장 최근에 신청한 것부터 출력되어야 한다.

  • 수강신청 내역에는 학생이름, 과목이름, 신청일이 출력되어야 한다.

수강 신청 현황 화면

  • ‘수강 신청 현황’ 메뉴를 클릭하면 수강 신청 현황 화면으로 이동한다.

  • 수강 신청 현황에서는 학생별 신청한 과목 수가 출력되어야 한다.

  • 수강 신청 현황은 신청한 과목 수가 많은 학생들부터 출력되어야 한다. 만약 신청한 과목 수가 같다면, 이름순으로 출력한다.

  • 신청한 과목이 없는 학생도 화면에 출력되어야 한다.

수강 신청 취소 화면

  • ‘수강 신청 내역’ 화면에서 취소 버튼을 클릭하면 수강 신청 취소 화면으로 이동한다.

  • 수강 신청 취소 화면으로 넘어가기 전 ‘정말 수강 신청을 취소하시겠습니까?’ 라는 메시지가 담긴 확인창을 화면에 출력한 뒤 ‘확인’을 누르면 수강 신청 취소 화면으로 이동하도록 구현한다.

  • 수강 신청 취소가 완료된 경우 ‘수강 신청이 취소 처리되었습니다’를 화면에 출력하고 수강 신청 내역 화면으로 이동한다.

Last updated