38

SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 2: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 3: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 4: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 5: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 6: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 7: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 8: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 9: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 10: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 11: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 12: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 13: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 14: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 15: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 16: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 17: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 18: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 19: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 20: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 21: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 22: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 23: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지
Page 24: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지

1

NO.

감독관 서명 (인)

[산업계 주도 SW 신자격 시범 시험]

SW개발자_L4 실기시험 문제지

2014. 12. 13

“문제지는 회수하오니, 반드시 제출하기 바랍니다”

(문제지 미제출시 0점 처리됩니다)

응시번호

성 명

Page 25: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지

2

■ 안내사항

1. 본 시험은 총 6개의 문항이며, 제한시간은 240분입니다.

2. 각 문제별로 배점은 다르며 총 배점은 55점입니다.

■ 주의사항

1. 실기문제는 template 코드와 문제지가 동시에 제공되며 컴퓨터 바탕 화면에

실기문제_Template 폴더를 확인합니다.

2. 문제지에 성명, 응시번호를 반드시 기입하십시오.

3. 각각의 폴더 명은 Eclipse에서 Project(Context Path)명으로 지정하고 그

안에 template 코드를 넣어서 완성합니다.

4. 답안 제출시에는 바탕화면에 ‘응시번호_이름’ 폴더를 생성하고, 작성한 내용

을 Copy하여 Zip파일로 압축합니다. 예) 123_홍길동.zip

5. ‘성명, 응시번호, 감독관서명‘이 없는 문제지는 무효 처리됩니다.

6. 시험 종료 후, 계속해서 문제를 푸는 경우는 부정행위로 간주됩니다.

7. 시험시작 180분 후, “시험종료자”에 한하여 퇴실이 가능하며, 화장실 이용은

감독관의 허락하에 제한적으로 가능합니다.

Page 26: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지

3

문제1. 코드 template : java_basic1 폴더

제공된 java_basic1 디렉토리 내부에는 Test 클래스가 있다.

제공된 클래스다이어그램과 Test 클래스의 메인 메서드의 코드를 분석하여 참고1의 실행결과

화면과 동일하게 출력되도록 Test 클래스의 메인메서드에 대응되는 프로그램을 현

패키지(default package)에서 작성한다.

public class Test {

public static void main(String[] args) {

Player p1=new VideoPlayer();

Player p2=new Mp3Player();

Player p3=new CDPlayer();

PlayerService service=new PlayerService();

System.out.println("****execute****");

service.execute(p1);

service.execute(p2);

service.execute(p3);

System.out.println("****execute****");

Player array[]={p1,p2,p3};

service.execute(array);

}

}

<<주의사항>>

1. 메인 메서드 영역은 주석 처리 및 해제 이외 수정 불가 (수정시 오답처리)

2. 반드시 제공된 참고2의 class diagram에 의거해 인터페이스 및 클래스를 구현해야

한다.

Page 27: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지

4

1번 문제 답안지

참고1 <<실행 결과>>

참고2 <<Class Diagram>>

Page 28: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지

5

문제 2. 코드 template : java_basic2 폴더

아래 제시된 조건을 잘 보고 템플릿 코드의 주석 부분을 구현하시오.

public class MemberPrintTest {

public static void main(String[] args) {

//1. 예외 처리….args[0] 에 들어가는 값에 따라서 여러 개의 예외 발생(최소2개)

String str = args[0];

}

}

class MemberArray {

public static void printMember(String name) {

String[] names = { "김연아", "신수지", "손연재", "양학선" };

// 2. 구현하세요...

}

}

class DuplicateNameException extends Exception {

// 3. DuplicateNameException 구현부분…

}

<<주의사항>>

1. 실행시 입력된값이 names 에서 저장된 회원의 이름이면 DuplicateNameException 을

강제적으로 발생시키고 “XXX (이)라는 회원은 이미 있습니다” 가 출력되게 합니다.

2. 만약에 배열(names)에 이미 저장된 이름이 아닌,새로운 회원의 이름을 실행 때 입력 받

게 되면 기존 회원의 이름과 함께 마지막에 입력된 회원의 이름이 함께 출력되도록 하세

요.

3. 명령형 매개변수가 입력되지 않는 경우도 예외로 처리할 수 있도록 하세요. 그리고

예외를 처리하는 키워드 try, catch, throws, throw 4 가지 키워드를 모두 사용하세요

4. 실행결과는 위에 캡처 되어 있는 대로 출력되어야 합니다.

5. 예외처리 2 개를 완벽하게 처리 하지 않을 경우 50% 감점 됩니다

6. 주어진 코드 템플릿을 그대로 사용하세요.( // 주석 부분만 구현하세요. 1.2.3 부분)

템플릿 코드는 수정 없이 사용하세요.

Page 29: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지

6

2번 문제 답안지

<<실행 결과>>

김연아 (이)라는 회원은 이미 있습니다 (실행시 김연아 입력시)

신수지 (이)라는 회원은 이미 있습니다 (실행시 신수지 입력시)

손연재 (이)라는 회원은 이미 있습니다 (실행시 손연재 입력시)

양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시)

(실행시 박태환 입력시)

김연아

신수지

손연재

양학선

박태환

(실행시 어떤 선수이름도 입력 안했을 때)

반드시 운동선수 이름 한명을 실행시 입력하세요.

Page 30: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지

7

문제3. 코드 template : java_algorithm 폴더

주어진 배열을 이용하여 오름차순과 내림차순으로 정렬하여 출력결과와 같이 출력되도록 구

현하시오. 단, orderby값이 1이면 오름차순, 2이면 내림차순으로 정렬하도록 구현하시오.

public class ArraySortTest {

public static void main(String[] args) {

int [] nums={57,5,10,7,63,9};

sort(nums,1);

sort(nums,2);

}

private static void sort(int[] nums, int orderby) {

// 이 부분을 직접 구현

}

}

<<주의사항>>

1. 오름차순 정렬, 내림차순 정렬 중 하나만 구현할 경우 50% 감점 됩니다.

2. 주어진 코드 템플릿을 그대로 사용하세요.( // 주석 부분만 구현)

Page 31: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지

8

3번 문제 답안지

<<실행 결과>>

<<오름차순 정렬>>

5

7

9

10

57

63

<<내림차순 정렬>>

63

57

10

9

7

5

Page 32: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지

9

문제4. 코드 template : java_collection 폴더

java_collection 디렉토리에는 Test 클래스가 있다.

제공된 클래스다이어그램과 메인 메서드의 코드를 분석하여 Test 클래스의 메인메서드에

대응되는 프로그램을 현 패키지(default package)에서 작성한다

구현해야 하는 클래스들에 대한 요건은 다음과 같다.

Test 코드 Template에서 제공

Employee 멤버변수에 따른 생성자와 setter/getter , toString() 을 정의해야 함

EmployeeNotFoundException Exception class 를 정의, 매개변수가 있는 생성자를 정의해 예외 메시지

전달 받을 수 있어야 함

HRService

addEmployee

empList에 전달받는 Employee 객체의 주소값을

순차적으로 추가하는 메서드

findByEmpId

empId에 해당하는 Employee 객체가 empList

요소로 존재하면 해당 Employee 객체를

리턴하고 존재하지 않으면

EmployeeNotFoundException을 발생시키고

호출한 곳으로 전달하는 메서드

findBySalary

매개변수 첫번째 salary 이상 ,두번째 salary

이하의 salary정보를 가진 Employee 객체를

empList에서 검색해서 ArrayList로 반환하는

메서드

<<주의사항>>

1. 메인 메서드 영역은 주석 처리 및 해제 이외 수정 불가

2. 반드시 제공된 참고2의 class diagram에 의거해 클래스를 구현해야 함

3. 실행결과가 동일하게 출력되어야 함

Page 33: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지

10

4번 문제 답안지

참고1 <<실행 결과>>

참고2 <<Class Diagram>>

Page 34: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지

11

문제5. 코드 template : java_fileio 폴더

musical.txt 파일에는 레미제라블의 뮤지컬 가사가 저장되어 있다. musical.txt 파일에서 검색하

려는 단어가 몇 번째 라인에 있는지 콘솔창에 출력하는 프로그램을 작성하시오.

(단어가 있는 라인과 해당 문장이 함께 출력되어야함)

public class MusicalTest {

public static void main(String[] args) throws Exception{

String fileName = "./src/data/musical.txt";

System.out.println("======== hope 가 들어있는 라인 ========");

searchWord(fileName, "hope");

System.out.println("======== life 가 들어있는 라인 ========");

searchWord(fileName, "life");

}

private static void searchWord(String fileName, String searchKeyword) throws

Exception{

// 이 부분을 직접 구현

}

}

<<주의사항>>

1. 제공되는 musical.txt 파일은 윗 부분의 코드를 보고 이클립스의 지정된 위치에 저장해야 하며 파일의 내용은 수정되어서는 안됩니다.

2. 컴파일이 안되거나 실행결과가 동일하게 안 나오면 무조건 오답 처리 됩니다. 3. 주어진 코드 템플릿을 그대로 사용하세요.( // 주석 부분만 구현하세요) 4. 단어가 있는 라인을 출력할 때는 java.io.BufferedReader 의 자식클래스를 이용하면

효율적입니다(선택사항).

Page 35: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지

12

5번 문제 답안지

<<실행 결과>>

==== hope 가 들어있는 라인 ====

4 - When hope was high And life worth living

13 - As they tear your hope apart

==== life 가 들어있는 라인 ====

4 - When hope was high And life worth living

19 - I had a dream my life would be

22 - Now life has killed The dream I dreamed.

Page 36: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지

13

문제6. 코드 template : FruitItemTest(Web문제)

DB에 있는 데이터를 가져와서 화면에 뿌리는 MVC(Model2)기반의 웹 프로그램을 작성하시오.

<<Context directory>>

Page 37: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지

14

<<주의사항>>

1. Project Context이름은 FruitItemTest 로 만듭니다.

2. 실기 tempate 상의 FriutItemTest 폴더에서 제공되는 소스들을 이클립스 상 디렉토리에

잘 배포시킵니다

web.xml (WEB-INF 밑에 배포됩니다)

Context.xml

index.jsp

MVCFilter.java

DriverLoadingListener.java

Item.java

ItemDao.java(미완성본)

img

lib/jstl.jar , standard.jar , ojdbc14.jar

table_sql.txt

3. table_sql.txt 로 테이블 생성, 데이터 저장부터 해주세요

4. MVC 패턴 중 Front Controller 혹은 Factory Method Pattern 을 이용합니다.

5. controller 패키지 안의 클래스, 서블릿 이름은 자유롭게 구성하세요.

6. 예외 상황 발생하거나 실행 결과가 동일하게 출력되지 않으면 0 점 처리 됩니다.

7. Context.xml 의 내용에서 ip, 오라클 계정(hr,hr)을 확인하세요.

8. itemList.jsp 는 el 과 jstl 을 사용해서 완벽한 View Page 가 되도록 하세요.

(index.jsp/ itemList.jsp 파일들은 WebContent 밑에 배포됩니다)

9. 코드는 수정할 수 없으며 실행결과가 위와 동일하게 출력되지

않거나 예외 발생하면 0 점 처리됩니다. 실제 구현해야 하는 곳은 ItemDao.java,

controller 패키지 안, itemList.jsp 세 부분입니다

Page 38: SW개발자L4 필기시험 (최종) (1)-2 - KOSTA양학선 (이)라는 회원은 이미 있습니다 (실행시 양학선 입력시) (실행시 박태환 입력시) 김연아 신수지

15

6번 문제 답안지

<<실행 결과>>