실기 모의고사 4회
Last updated
Last updated
항목 | 값 |
---|---|
※ 공통사항
장비(PC) 및 수험용 설치 프로그램의 이상 유무를 반드시 확인하여야 합니다.
시험시간 내에 요구사항을 완성하지 못한 경우에도 채점을 실시합니다.
시행 진행 과정
시 설 : 컴퓨터, 수험용 소프트웨어 등
재 료 : 해당 없음
시험방법 : 홈쇼핑 회원관리 프로그램 개발, 면접
기 타 :
시험 개시 전까지 해당 검정장에 설치된 PC에 수험용 프로그램이 정상적으로 설치 및 작동 되는지 확인합니다.
본부요원은 수험자에게 사전에 비번호를 부여한 후 문제지에 모든 수험자 인적사항을 비번호에 의하여 기록하도록 합니다.
시 설 : 컴퓨터, 수험용 소프트웨어 등
재 료 : 해당없음
좌석배치 : 시험장 공간에 따라 진행상 무리가 없도록 배치합니다.
진행방법 : 1과제 및 2과제를 하루 동안 주어진 시간 내에 진행합니다.
기 타 : -컴퓨터 등의 이상으로 시험 진행이 불가능하여 교체 시 발생하는 자체시간에 대하여 감독위원의 합의 하에 추가시간을 부여합니다. [제 1과제] -수험자 PC가 오류 또는 기타 수험 환경에 의해 다운(Down)될 수 있으므로 주기적으로 저장할 수 있도록 교육합니다. -시험 중에는 수험자가 부정행위를 할 수 없도록 네트워크 차단, 파일 공유 등을 할 수 없도록 합니다.
시험 시간이 종료되면 수험자의 모든 행위를 중지시키고 문제지를 제출하도록 합니다.
감독위원은 수험자 PC에 작업한 결과물을 확인하고 채점을 실시합니다.
모든 수험자의 채점이 종료되면 지급된 USB를 사용하여 수험자가 작업한 내용을 저장한 후에 PC 내의 시험관련 자료는 삭제하여야 합니다.
본 과제는 병원 등록, 병원 조회, 병원 수정, 백신 등록, 백신 조회, 백신 삭제, 백신 예약, 백신 예약 현황 조회, 병원별 예약 현황 조회이 가능하도록 프로그램을 제작하시오.
프로그램 개발을 위해 개발 환경을 확인하고, 필요한 설정을 수행하시오.
입력정보 요건에 따라 입력 테이블인 병원 테이블, 백신 테이블, 예약 테이블을 생성하여야 한다. 각 테이블의 데이터는 샘플데이터를 참조하여 테스트를 실시하여야 한다.
병원정보를 등록할 수 있어야 한다. 이 때, 병원 번호는 시퀀스 발생(자동증가) 처리되어야 한다.
병원정보를 조회할 수 있어야 한다.
병원정보를 수정할 수 있어야 한다.
백신정보를 등록할 수 있어야 한다.
백신정보를 조회할 수 있어야 한다.
백신정보를 삭제할 수 있어야 한다.
백신 예약정보를 등록할 수 있어야 한다.
백신 예약현황을 조회할 수 있어야 한다.
병원별 백신 예약현황을 조회할 수 있어야 한다.
접속에 사용할 오라클 계정은 ‘system' 이고, 암호는 'covid19' 이다.
이클립스(eclipse)의 작업영역(workspace)은 ‘c:\corona'를 사용한다.
프로젝트를 생성하기 전에 java, jsp, html, css, text 파일의 기본 인코딩을 'UTF-8' 로 지정한다.(이클립스 Window - Preferences 메뉴)
이클립스에서 톰캣을 연동하여 실행하기 위한 설정을 수행해야 한다.
오라클 포트를 8080으로 사용하고, 포트 충돌 방지를 위하여 톰캣 포트를 9090으로 변경한다.
프로젝트 유형은 ‘Dynamic Web Project'를 생성하고, 프로젝트 이름은 ’TEST_비번호‘를 사용한다.
시험 후 이클립스 작업영역(workspace), 즉 ‘c:\corona' 디렉토리를 반드시 'test_비번호.zip'으로 압축해서 제출하여야 한다.
[참고] 아래 소스는 Oracle Database Connection 함수이다.
메인화면(index.jsp)은 다음과 같은 디자인을 참고하여 작성하시오.
헤더 : 백신 예약 프로그램 v1.0
메뉴 :
홈으로
병원 등록
병원 조회
고객 등록
고객 조회
백신 예약
백신 예약 현황
병원별 예약 현황
2. 데이터 입출력 요건에 맞게 테이블을 생성하시오.
병원 테이블(hospital_tbl)
병원 샘플 데이터
고객 테이블(customer_tbl)
학생 샘플 데이터
백신예약 테이블(schedule_tbl)
백신예약 샘플 데이터
3. 샘플 데이터를 SQL 문장을 사용하여 각각 생성된 테이블에 추가 입력하시오.
4. 화면별 업무 요구사항 및 화면 구성 요건에 맞게 화면을 구현하시오.
시작화면은 헤더, 메뉴, 섹션으로 구성된다.
메뉴는 홈으로 이동할 수 있는 메뉴와 모든 페이지로 이동할 수 있는 메뉴가 화면과 같이 존재해야 한다.
해당 메뉴를 클릭하면 각각의 페이지로 이동할 수 있어야 한다.
‘병원등록’ 화면은 병원번호, 병원이름, 병원장, 지역을 입력하도록 되어 있다. 이 때 병원번호는 시퀀스 발생(자동증가) 되며 입력창에 미리 입력되어 있도록 구현한다.
모든 항목의 정보를 채우고 ‘등록’ 버튼을 클릭하면 병원정보가 ‘병원 테이블’에 저장된다.
‘등록’ 버튼을 눌렀을 때 입력되지 않은 항목이 있을 경우 ‘모든 항목을 입력하세요.’ 라는 알림창이 화면에 나타나고 포커스가 해당하는 항목으로 이동한다.
등록이 성공적으로 이루어진 경우 ‘병원 등록이 완료되었습니다.’ 라는 알림창이 화면에 나타나고 비어있는 등록 페이지가 표시된다.
‘병원등록’ 화면에도 ‘시작화면’에 있는 메뉴가 동일하게 출력되어야 한다.
‘목록’ 버튼을 누르면 ‘병원 조회’로 이동해야 한다.
‘병원 조회’ 메뉴를 클릭하면 병원 조회 페이지로 이동한다.
해당 페이지에서는 병원 정보가 목록으로 조회된다. 병원 테이블의 모든 정보가 화면에 출력된다.
조회 순서는 병원 코드 오름차순이다.
지역은 다음과 같이 표시한다.
1 - 서울
2 - 경기
3 - 인천
‘예약’ 버튼을 누르면 해당하는 병원의 백신예약 페이지로 이동한다.
‘병원 조회’ 화면에서 ‘수정’ 버튼을 누르면 ‘병원 수정’ 화면으로 이동한다.
‘병원 수정’ 화면에서는 기존 병원의 정보가 입력되어 있으며, 병원 코드를 제외한 다른 정보들을 수정할 수 있다.
모든 항목에 대해서 유효성 검사를 실시하여, 미 입력 항목이 있을 경우 ‘수정’ 버튼을 누르면 알림 메시지와 포커스 이동을 수행한다.
정보를 모두 변경 입력한 뒤 ‘수정’ 버튼을 누르면 ‘병원 정보가 수정되었습니다’ 라는 메시지가 출력되고 ‘병원 조회’ 화면으로 이동한다.
‘고객 등록’ 화면은 고객번호, 고객이름, 생년월일을 입력하도록 되어 있다.
이 때 병원번호는 시퀀스 발생(자동증가) 되며 입력창에 미리 입력되어 있도록 구현한다.
모든 항목의 정보를 채우고 ‘등록’ 버튼을 클릭하면 고객 정보가 ‘고객 테이블’에 저장된다.
‘등록’ 버튼을 눌렀을 때 입력되지 않은 항목이 있을 경우 ‘모든 항목을 입력하세요.’ 라는 알림창이 화면에 나타나고 포커스가 해당하는 항목으로 이동한다.
등록이 성공적으로 이루어진 경우 ‘고객 등록이 완료되었습니다.’ 라는 알림창이 화면에 나타나고 비어있는 등록 페이지가 표시된다.
‘목록’ 버튼을 누르면 ‘고객 조회’로 이동해야 한다.
‘고객 조회’ 메뉴를 클릭하면 고객 조회 페이지로 이동한다.
해당 페이지에서는 고객 정보가 목록으로 조회된다. 고객 테이블의 모든 정보가 화면에 출력된다.
조회 순서는 고객 번호 오름차순이다.
생년월일은 시간을 제외한 날짜 부분만 출력한다.
‘예약’ 버튼을 누르면 해당하는 고객의 백신예약 페이지로 이동한다.
‘백신 예약’ 메뉴를 클릭하거나 ‘고객 조회’, '병원 조회' 화면의 예약 버튼을 누르면 수강 신청 화면으로 이동한다.
‘병원 조회’ 화면에서 신청을 누른 경우에는 해당 병원코드가 입력되어 있어야 한다.
‘고객 조회’ 화면에서 신청을 누른 경우에는 해당 고객번호가 입력되어 있어야 한다.
‘백신 예약’ 화면에서는 병원코드, 고객번호, 접종일자, 접종시각, 백신이름을 입력한다.
병원코드와 고객번호는 데이터베이스에 있는 내용을 토대로 select box로 구현하며, 사용자의 편의를 위하여 병원이름과 고객이름이 표시되도록 구현한다.
모든 항목의 정보를 채우고 ‘예약’ 버튼을 클릭하면 정보가 ‘백신예약 테이블’에 저장된다.
‘예약’ 버튼을 눌렀을 때 입력되지 않은 항목이 있을 경우 ‘모든 항목을 입력하세요.’ 라는 알림창이 화면에 나타나고 포커스가 해당하는 항목으로 이동한다.
신청이 성공적으로 이루어진 경우 ‘백신 예약이 완료되었습니다.’ 라는 알림창이 화면에 나타나고 비어있는 백신 예약 페이지가 표시된다.
‘백신 예약 현황’ 메뉴를 클릭하면 백신 예약 현황 조회 화면으로 이동한다.
백신 예약 현황 내역은 가장 최근에 예약한 것부터 출력되어야 한다.
백신 예약 현황 내역에는 병원이름, 고객이름, 접종일자, 접종일시, 백신이름이 출력되어야 한다.
접종일자는 시간을 제외한 날짜만 출력한다.
‘병원별 예약 현황’ 메뉴를 클릭하면 병원별 예약 현황 화면으로 이동한다.
병원별 예약 현황에서는 병원별로 예약 건수가 조회되어야 한다.
병원별 예약 현황은 예약 건수가 많은 학생들부터 출력되어야 한다. 만약 수가 같다면, 이름순으로 출력한다.
예약이 없는 병원도 예약건수가 0으로 출력되어야 한다.
순서 | 컬럼ID | 컬럼명 | 형태 | 길이 | NULL | 비고 |
---|---|---|---|---|---|---|
병원코드 | 병원이름 | 병원장 | 지역 |
---|---|---|---|
순서 | 컬럼ID | 컬럼명 | 형태 | 길이 | NULL | 비고 |
---|---|---|---|---|---|---|
고객번호 | 고객이름 | 생년월일 |
---|---|---|
순서 | 컬럼ID | 컬럼명 | 형태 | 길이 | NULL | 비고 |
---|---|---|---|---|---|---|
병원코드 | 고객번호 | 접종일자 | 접종시각 | 백신이름 |
---|---|---|---|---|
종목명
정보처리기사
과제명
백신예약 프로그램
시험시간
4시간
비번호
002500123
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
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
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
모더나