실기 모의고사 4회

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

항목

종목명

정보처리기사

과제명

백신예약 프로그램

시험시간

4시간

비번호

002500123

◎ 특이사항

○ 2차 시험 평가는 전 과정을 응시하여야 합니다.
- 1과제 : 백신예약 프로그램
○ 정전에 대비하여 모든 데이터는 10분에 1회 이상 저장하도록 수험자에게 교육하셔야 합니다.
○ 시험 시작 전 하드디스크에서 부정행위에 이용될 수 있는 모든 정보를 삭제하고 수험자 상호간 네트워크를 필히 차단해야 합니다.
○ 채점은 반드시 감독위원 2명 이상이 공동으로 합니다.

1. 시행 시 유의사항

※ 공통사항

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

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

  3. 시행 진행 과정

※ 평가시행 전 준비사항

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

  • 재 료 : 해당 없음

  • 시험방법 : 홈쇼핑 회원관리 프로그램 개발, 면접

  • 기 타 :

    • 시험 개시 전까지 해당 검정장에 설치된 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. 백신 예약현황을 조회할 수 있어야 한다.

  10. 병원별 백신 예약현황을 조회할 수 있어야 한다.

3. 프로젝트 준비

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

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

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

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

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

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

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

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

package dbpkg;

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", "covid19"
				);
		return con;
	}
...

4. 수행 작업

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

  • 헤더 : 백신 예약 프로그램 v1.0

  • 메뉴 :

    • 홈으로

    • 병원 등록

    • 병원 조회

    • 고객 등록

    • 고객 조회

    • 백신 예약

    • 백신 예약 현황

    • 병원별 예약 현황

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

병원 테이블(hospital_tbl)

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

1

hospital_code

병원코드

number

5

NOT NULL

Primary key

2

hospital_name

병원이름

varchar2

60

NOT NULL

3

hospital_ceo

병원장

varchar2

60

4

hospital_location

지역

char

1

병원 샘플 데이터

병원코드병원이름병원장지역

10001

하늘병원

김하늘

1

10002

푸름병원

강푸름

2

10003

바다병원

오바다

2

10004

참사랑병원

김사랑

1

10005

노을의료원

한노을

3

10006

강변내과

윤강변

1

고객 테이블(customer_tbl)

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

1

customer_no

고객번호

number

5

NOT NULL

Primary key

2

customer_name

고객이름

varchar2

60

NOT NULL

3

customer_birth

생년월일

date

학생 샘플 데이터

고객번호고객이름생년월일

30001

피카츄

1991-01-01

30002

라이츄

1992-02-02

30003

파이리

1993-03-03

30004

꼬부기

1994-04-04

30005

버터플

1995-05-05

30006

야도란

1996-06-06

백신예약 테이블(schedule_tbl)

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

1

hospital_code

병원코드

number

5

NOT NULL

Primary key

2

customer_no

고객번호

number

5

NOT NULL

Primary key

3

schedule_date

접종일자

char

10

NOT NULL

Primary key

4

schedule_time

접종시각

char

4

NOT NULL

Primary key

5

vaccine_name

백신이름

varchar2

30

NOT NULL

백신예약 샘플 데이터

병원코드고객번호접종일자접종시각백신이름

10001

30001

2022-02-05

0900

화이자

10001

30002

2022-02-05

0930

모더나

10001

30003

2022-02-06

1000

화이자

10002

30001

2022-02-15

0920

화이자

10002

30003

2022-02-20

1100

아스트라제네카

10003

30004

2022-02-11

1200

얀센

10004

30005

2022-02-09

0900

화이자

10006

30002

2022-02-22

1000

아스트라제네카

10006

30005

2022-03-02

1030

얀센

10006

30006

2022-03-04

1050

모더나

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

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

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

시작화면(index.jsp)

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

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

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

병원등록 화면

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

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

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

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

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

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

병원 조회 화면

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

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

  • 조회 순서는 병원 코드 오름차순이다.

  • 지역은 다음과 같이 표시한다.

    • 1 - 서울

    • 2 - 경기

    • 3 - 인천

  • ‘예약’ 버튼을 누르면 해당하는 병원의 백신예약 페이지로 이동한다.

병원 수정 화면

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

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

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

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

고객등록 화면

  • ‘고객 등록’ 화면은 고객번호, 고객이름, 생년월일을 입력하도록 되어 있다.

  • 이 때 병원번호는 시퀀스 발생(자동증가) 되며 입력창에 미리 입력되어 있도록 구현한다.

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

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

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

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

고객 조회 화면

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

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

  • 조회 순서는 고객 번호 오름차순이다.

  • 생년월일은 시간을 제외한 날짜 부분만 출력한다.

  • ‘예약’ 버튼을 누르면 해당하는 고객의 백신예약 페이지로 이동한다.

백신 예약 화면

  • ‘백신 예약’ 메뉴를 클릭하거나 ‘고객 조회’, '병원 조회' 화면의 예약 버튼을 누르면 수강 신청 화면으로 이동한다.

    • ‘병원 조회’ 화면에서 신청을 누른 경우에는 해당 병원코드가 입력되어 있어야 한다.

    • ‘고객 조회’ 화면에서 신청을 누른 경우에는 해당 고객번호가 입력되어 있어야 한다.

  • ‘백신 예약’ 화면에서는 병원코드, 고객번호, 접종일자, 접종시각, 백신이름을 입력한다.

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

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

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

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

백신 예약 현황 화면

  • ‘백신 예약 현황’ 메뉴를 클릭하면 백신 예약 현황 조회 화면으로 이동한다.

  • 백신 예약 현황 내역은 가장 최근에 예약한 것부터 출력되어야 한다.

  • 백신 예약 현황 내역에는 병원이름, 고객이름, 접종일자, 접종일시, 백신이름이 출력되어야 한다.

    • 접종일자는 시간을 제외한 날짜만 출력한다.

병원별 예약 현황 화면

  • ‘병원별 예약 현황’ 메뉴를 클릭하면 병원별 예약 현황 화면으로 이동한다.

  • 병원별 예약 현황에서는 병원별로 예약 건수가 조회되어야 한다.

  • 병원별 예약 현황은 예약 건수가 많은 학생들부터 출력되어야 한다. 만약 수가 같다면, 이름순으로 출력한다.

  • 예약이 없는 병원도 예약건수가 0으로 출력되어야 한다.

Last updated