헷깔리는 문제만 수록
101. 다음은 성적 테이블이다. IN 키워드를 이용하여 '컴퓨터 구조'와 '알고리즘' 과목에 대한 학번 별 평균 학점을 구하는 쿼리를 작성하시오.
<성적> 테이블
학번 | 과목 | 학점 |
2001 2001 2002 2003 2003 |
컴퓨터 구조 운영체제 알고리즘 컴퓨터 구조 알고리즘 |
4.5 4.0 4.5 3.5 2.5 |
<결과>
학번 | 평균 |
2001 2002 2003 |
4.5 4.5 3.0 |
정답)
SELECT 학번, AVG(학점) as 평균
FROM 성적
WHERE 과목 IN ('컴퓨터 구조', '알고리즘')
GROUP BY 학번;
참고) 수제비 정보처리기사 실기 8-25, 11-36페이지
추가 설명) AVG(학점) AS 평균 -> AS는 이름을 대체한다는 의미로 AVG(학점)이라는 컬럼명을 평균이라는 컬럼명으로 변경한다는 의미입니다.
102. 다음 프로그램의 실행 결과를 쓰시오.
//"Hello World" 문자열을 string 변수에 저장한다 >>>string="Hello World" //string[0:3] 에서 "Hel" //string[-3:]에서 "rld" 를 가져와서 // '+' 연산자에서 두 문자열을 합친 결과를 m에 저장 >>>m=string[0:3] + string[-3:] // 결과 출력 >>>print(m)
답) Helrld
해설) 정보처리기사 필기 3회시험 74번 문제 변형
slice를 이용하여 문자열에서 부분 문자열을 가져올 수 있다.
사용방법은 '문자열[시작:끝]' 이다.
string[3:] 이라고 하면 3번째 부터 끝까지 부분 문자열을 반환한다.
string[0:3] 이라고 하면 처음부터 3번째까지 반환한다.
string[:] 라고 하면 처음부터 끝까지 전부 반환 한다.
string[-3:] 라고 하면 문자열의 끝에서 역방향 3번째까지 반환한다.
slice는 리스트에서도 사용이 가능하다.
>>>list = [0,1,2,3,4,5] >>>list = list[1:4] >>>print(list) [1,2,3]
100. 다음은 파이썬 코드이다. 출력 결과를 쓰시오.
a = {'일본', '중국', '한국'} a.add('베트남') a.add('중국') a.remove('일본') a.update({'홍콩', '한국', '태국'}) print(a)
정답) {'중국', '한국', '베트남', '홍콩', '태국'}
※ 참고로 집합형이기 때문에 순서는 상관없습니다.
해설)
* 소스코드 상세 설명
① a = {'일본', '중국', '한국'} | a라는 세트(집합) 데이터 타입에 '일본', '중국', '한국'이라는 값이 초기화 여기서 print(a)를 하면 {'일본', '중국', '한국'} |
② a.add('베트남') | a라는 세트 데이터 타입에 '베트남'을 추가 여기서 print(a)를 하면 {'일본', '중국', '한국', '베트남'} |
③ a.add('중국') | a라는 세트 데이터 타입에 '중국'을 추가해야 하지만, 기존에 값이 있으므로 무시 여기서 print(a)를 하면 {'일본', '중국', '한국', '베트남'} |
④ a.remove('일본') | a라는 세트 데이터 타입에서 '일본'을 제거 여기서 print(a)를 하면 {'중국', '한국', '베트남'} |
⑤ a.update({'홍콩', '한국', '태국'}) | update의 경우 값이 존재할 경우 기존에 값이 있으면 그대로 두고, 기존에 값이 없으면 추가한다. a라는 세트 데이터 타입에서 '홍콩', '태국'이 없으므로 '홍콩', '태국'을 추가한다. |
⑥ print(a) | print(a)를 하면 {'중국', '한국', '베트남', '홍콩', 태국'} |
추가설명)
파이썬 타입에는 크게 4종류가 있습니다.
자료형 | 설명 | 문법 및 사용 예시 |
리스트형 | 리스트 안에는 어떠한 자료형도 포함시킬 수 있습니다. | 리스트명 = [요소1, 요소2, ...] 예) test = [1, 2, '한국'] |
튜플형 | 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없는 특성을 제외하고는 리스트형과 거의 비슷합니다. | 튜플명 = (요소1, 요소2, ...) 예) test = (1, 2, '한국') |
세트형 | 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형입니다. | 세트명 = set([요소1, 요소2, ...]) 또는 세트명 = {요소1, 요소2, ...} 예) a = {'일본', '중국', '한국'} |
딕셔너리형 | 대응 관계를 나타내는 자료형입니다. | 딕셔너리명 = {키1:값1, 키2:값2, ...} 예) test = {1:"가", 2:"나", ...} |
여기서 추가로 알아볼 것은 세트형(Set형; 집합형)입니다.
set형에는 remove, add, update 함수 등이 있습니다.
세트에 사용되는 함수 | 설명 |
remove | 특정 값 제거(원래 세트에 값이 없을 경우 무시) |
add | 값 1개를 추가(중복값은 무시) |
update | 값 여러개를 추가(중복값은 무시) |
[출처] [2020년 제2회 기사 실기 문제] (10과목) 프로그래밍 언어 활용 - 100 (수제비-NCS 기반 정보처리기사, 산업기사, 기능사 커뮤니티) | 작성자 두음쌤
98. 다음은 학생 테이블이다. '이'씨 성을 가진 사람의 학번을 출력하는 쿼리를 작성하시오.
<학생>
학번 | 이름 |
2001 2002 2003 2004 2005 2006 |
안창호 김정호 김유신 허준 이성계 이순신 |
<결과>
학번 |
2005 2006 |
정답)
SELECT 학번
FROM 학생
WHERE 이름 LIKE '이%';
참고) 수제비 정보처리기사 실기 11-35
해설) LIKE 문에 대한 추가 설명
• 속성명 LIKE '찾을 문자열'
ex) '이'로 시작하는 사람 검색 => WHERE 이름 LIKE '이%';
ex) '이'로 끝나는 사람 검색 => WHERE 이름 LIKE '%이';
ex) '이'가 들어가는 사람 검색 => WHERE 이름 LIKE '%이%';
ex) '이'로 시작되고 '이' 뒤에 1글자만 있는 사람 검색 => WHERE 이름 LIKE '이_';
ex) '이'로 시작되고 '이' 뒤에 2글자만 있는 사람 검색 => WHERE 이름 LIKE '이__';
ex) '이*신'이라는 사람 검색 => WHERE 이름 LIKE '이_신';
=> 정리하면 '%'는 글자수 상관없이 찾기, '_'는 1글자 찾기('%', '_'를 와일드 카드라고 부릅니다.)
89. 다음은 소프트웨어 구조에서 모듈 간의 관련성을 측정하는 척도인 결합도의 유형이다. 괄호 ( )안에 들어갈 가장 올바른 용어를 쓰시오.
- ( ① ) 결합도 : 한 모듈이 다른 모듈 내부에 있는 변수나 기능을 직접 참조하거나 사용하는 경우의 결합도이다. - ( ② ) 결합도 : 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달될 때의 결합도이다. - ( ③ ) 결합도 : 단순 처리할 대상인 값만 전달되는 것이 아니라 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해서 어떻게 처리를 해야 한다는 ( ③ ) 요소까지 전달하는 결합도이다. |
답)
① 내용
② 스템프
③ 제어
해설) 수제비 실기책 4-13페이지 참조
88. 다음은 웹 접근성(Web Accessibility) - WCAG(Web Content Accessibility Guidelines) 2.0의 원칙에 대한 설명이다. 괄호 ( ) 안에 들어갈 가장 정확한 용어를 쓰시오.
- ( ① )의 용이성 : 대체 텍스트(Text Alternatives), 실시간 미디어 대체 수단, 융통성, 식별성의 세부 지침이 있다. - ( ② )의 용이성 : 키보드 접근성, 충분한 시간 제공 및 시간 조절기능, 발작 예방, 탐색 가능성의 세부 지침이 있다. - ( ③ ) : 가독성, 예측 가능성, 입력 지원의 세부 지침이 있다. - 견고성 : 호환성의 세부 지침이 있다 - 보조기술을 포함한 현재 및 미래의 사용자 응용 프로그램과의 호환성을 극대화해야 한다는 원칙 |
정답)
① 인식
② 운용
③ 이해성
해설)
- 웹 접근성(Web Accessibility) - WCAG(Web Content Accessibility Guidelines) 2.0의 원칙에는 인식의 용이성, 운용의 용이성, 이해성, 견고성이 있다.(두음: 인운이견)
* 혹시 몰라서 문제 냈어요. 알아두세요.
85. 다음은 UI 품질 요구사항에 대한 설명이다. 괄호 ( ) 안에 들어갈 용어를 쓰시오.
- UI 품질 요구사항 중 사용성(Usablity)은 사용자와 컴퓨터 사이에 발생하는 어떠한 행위를 정확하고 쉽게 인지 가능함을 의미한다. 이 품질 요구사항의 사용성에는 다음과 같은 3가지 특성이 있다. - ( ① ) : 소프트웨어의 논리적인 개념과 적용 가능성(응용 가능성)을 분간하는 데 필요한 사용자의 노력 정도에 따른 소프트웨어 특성 - ( ② ) : 소프트웨어 애플리케이션 익히는데 필요한 사용자의 노력 정도에 따른 특성 - 운용성 : 소프트웨어의 활용과 운용 통제에 필요한 사용자의 노력 정도에 따른 특성 |
답)
① 이해성 (Understandability)
② 학습성(Learnability)
정답 및 해설)
* 사용성 - 이해성, 학습성, 운용성 (사이학운) - 이거 하나 기억하시자구요.
* UI 품질 요구사항은 - 기능성, 신뢰성, 사용성, 효율성, 유지 보수성, 이식성 (기신사효유이)
* 그중에서 UI에서는 사용성이 가장 중요해요.
* 사용성은 부특성까지 암기 - 사이학운
>84. 다음은 클린 코드 작성 원칙과 소스 코드 최적화 기법에 대한 설명이다. 괄호 ( ) 안에 들어갈 용어를 쓰시오.
[클린 코드 작성 원칙] - (가독성) : 이해하기 쉬운 용어를 사용, 코드 작성 시 들여쓰기 기능을 사용 - ( ① ) : 한 번에 한 가지 처리만 수행, 클래스/메소드/함수를 최소 단위로 분리 - (의존성) : 영향도를 최소화, 코드의 변경이 다른 부분에 영향이 없게 작성 - (중복성) : 중복된 코드를 제거, 공통된 코드를 사용 - (추상화) : 클래스/메소드/함수에 대해 동일한 수준의 추상화 구현, 상세 내용은 하위 클래스/메소드/함수에서 구현 [소스 코드 최적화 기법] - 변수나 클래스, 메서드 명을 의도가 분명한 이름(사용용도, 작업명)으로 사용한다. - 클래스는 행위의 주체로 명사나 명사구로 표현하고 함수 이름은 클래스가 행하는 행위로 동사 또는 동사구로 사용한다. - 클래스는 하나의 역할, 책임만 수행할 수 있도록 ( ② )를 높이고, 크기를 작게 작성한다. - 클래스의 자료 구조, 메소드를 추상화할 수 있는 인터페이스 클래스를 이용하여, 클래스 간의 ( ③ )을 최소화해야 한다. |
정답)
① 단순성
② 응집도
③ 의존성
해설)
* 클린코드의 작성 원칙 : 가독성, 단순성, 의존성 최소화, 중복성 최소화, 추상화 사용의 작성 원칙은 반드시 기억해 두세요. (수제비 실기책 7-44)
* 소스코드 최적화 기법 (= 클린코드 구현 방식) 반드시 기억해두세요.
- 변수나 클래스, 메서드 명을 의도가 분명한 이름(사용용도, 작업명)으로 사용한다.
- 클래스는 행위의 주체로 명사나 명사구로 표현하고 함수 이름은 클래스가 행하는 행위로 동사 또는 동사구로 사용한다.
- 클래스는 하나의 역할, 책임만 수행할 수 있도록 응집도를 높이고, 크기를 작게 작성한다.
- 클래스의 자료 구조, 메소드를 추상화할 수 있는 인터페이스 클래스를 이용하여, 클래스 간의 의존성을 최소화해야 한다.
- 수제비 실기책 7-43 참조
78. 다음은 애플리케이션 성능 개선 방안에 대한 설명이다. 괄호( )안에 들어갈 용어를 쓰시오.
1. 소스 코드 최적화 기법 적용 - 인터페이스를 통해 ( ① )된 자료 구조를 구현하여 의존성을 최소화한다. 2. System.out.println( ) 사용 제외 - 파일, 콘솔에 로그를 남기면 애플리케이션 대기 시간이 발생된다. - 이에 대응하여 ( ② )를 사용함으로써 성능을 개선한다. |
정답)
① 추상화
② Log4j 로거
해설) 수제비 실기 책 7-45페이지
76. 다음은 보안 공격 기법에 대한 설명이다. 괄호( )안에 들어갈 공격 기법을 쓰시오.
- ( ① ) : 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에 ICMP Echo 패킷을 직접 브로드캐스팅(Directed Broadcasting)하여 타켓 시스템을 마비시키는 공격기법이다. - ( ② ) : 요청 헤더의 Content-length를 비정상적으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 계속 연결 상태를 유지시켜 자원을 소진시키는 공격기법이다. - ( ③ ) : 공격자가 IP Fragment Offset 값을 서로 중첩되도록 조작하여 전송하고, 이를 수신한 시스템이 재조합하는 과정에서 오류가 발생, 시스템의 기능을 마비시키는 공격기법이다. |
정답)
① 스머프(Smurf)
② RUDY(Slow HTTP POST DoS)
③ 티어 드롭(Tear Drop)
해설) 수제비 실기책 9-6, 9-7, 9-8
'개발 > 정보처리기사' 카테고리의 다른 글
[수제비 출처] 2020년 기사 실기 출제예상 문제[Daily 122-101번] (0) | 2020.10.07 |
---|---|
[수제비 출처] 2020년 기사 실기 출제예상 문제[Daily 51-60번] (0) | 2020.10.06 |
[수제비 출처] 2020년 기사 실기 출제예상 문제[Daily 41-50번] (0) | 2020.09.23 |
[수제비 출처] 2020년 기사 실기 출제예상 문제[Daily 21-30번] (0) | 2020.09.16 |
[수제비 출처] 2020년 기사 실기 출제예상 문제[Daily 1-10번] (0) | 2020.09.16 |