[컴퓨터활용능력 1급 필기] 14년 1회차 시험지 PDF 다운로드
14년 1회차
렌더링은 3차원 그래픽에서 만들어진 물체의 형상(모형)에 명암과 색상 등을 입혀 사실감 있는 입체 영상으로 표현하는 기법이다.
스트리밍은 데이터를 다운로드하면서 재생하는 기술, 모핑은 두 이미지를 부드럽게 연결해 변환하는 기술, 안티앨리어싱은 이미지의 경계선을 부드럽게 처리하는 필터링 기술로 각각 렌더링과는 다른 개념이다.
BMP 파일은 Windows에서 기본으로 지원하는 비트맵 파일 형식으로, 압축을 사용하지 않기 때문에 고해상도 이미지를 표현할 수 있는 대신 파일 크기가 커진다.
JPG는 24비트 트루컬러를 표현할 수 있는 손실 압축 형식으로 256색 제한이나 애니메이션과는 관계가 없고, 애니메이션과 256색은 GIF의 특징이다. 반대로 GIF는 무손실 압축만 사용하고 최대 256색만 표현할 수 있어 사진과 같은 선명한 이미지 표현에는 한계가 있다.
WMF는 벡터 기반의 2차원 그래픽 교환 형식으로 3D 표현과는 관련이 없어, 나머지 보기들은 옳지 않은 설명이다.
키로거(Key Logger)는 키보드 입력 내용을 몰래 저장하거나 주기적으로 외부로 전송해 아이디나 비밀번호 같은 개인 정보를 빼내는 크래킹 도구이다.
정상적인 프로그램이나 사용자인 것처럼 속이는 행위는 스푸핑(Spoofing)이고, 네트워크를 지나는 패킷을 엿보아 아이디·패스워드를 가로채는 행위는 스니핑(Sniffing)이므로 두 용어를 서로 바꾸어 놓은 설명은 옳지 않다. 또한 오버플로우를 일으켜 시스템이 서비스를 하지 못하게 만드는 공격은 트랩도어가 아니라 서비스 거부(DoS) 공격에 해당한다.
망형(Mesh)은 모든 노드가 여러 경로로 서로 연결되어 있어 특정 통신회선에 장애가 발생해도 다른 경로를 통해 데이터를 전송할 수 있는 통신망 형태로, 신뢰성이 중요한 공중 데이터 통신망에 많이 사용된다.
성형은 중앙 장치에 각 노드가 연결되는 형태, 버스형은 하나의 회선을 여러 노드가 공유하는 형태, 계층형은 트리 구조로 연결되는 형태로 각각 대체 경로를 통한 우회 전송이라는 특징과는 거리가 있다.
트랜스포트(전송) 계층은 종단 간의 신뢰성 있는 데이터 전송을 담당하는 계층으로, 허브(Hub)는 물리 계층 장비이므로 트랜스포트 계층의 대표 장비로 든 것은 옳지 않다.
네트워크 계층의 대표 장비는 라우터, 데이터링크 계층은 브리지, 물리 계층은 리피터라는 나머지 설명은 옳다.
인트라넷은 인터넷의 기술(웹, 이메일 등)을 그대로 이용해 조직 내부의 업무를 처리할 수 있도록 구축한 사내 정보 네트워크이다.
여러 컴퓨터를 연결해 하나의 서버처럼 사용하는 것은 클러스터링에 가까운 설명이고, 이동 전화 단말기에서 운영체제 역할을 하는 소프트웨어는 인트라넷과 무관하며, 협력업체·고객과의 정보 공유를 위한 네트워크는 엑스트라넷(Extranet)에 해당해 나머지 설명은 옳지 않다.
동기화는 데이터를 전송하는 송신기와 수신기가 같은 상태를 유지하도록 맞춰 주는 프로토콜의 기능으로, 이를 통해 송수신 측이 서로 어긋나지 않게 데이터를 주고받을 수 있다.
연결 제어는 통신 연결의 설정·해제를, 흐름 제어는 송수신 속도 조절을, 오류 제어는 전송 중 발생한 오류의 검출과 정정을 담당하는 기능으로 동기화와는 목적이 다르다.
객체지향 언어는 데이터와 그 데이터를 처리하는 함수(메서드)를 하나의 객체로 묶어 문제를 해결하며, 상속·캡슐화·추상화·다형성을 지원하고 시스템 확장성과 정보 은폐에 유리하다는 설명은 모두 옳다.
그러나 BASIC, Pascal, C언어는 절차 지향(구조적) 언어이며, 대표적인 객체지향 언어로는 C++, Java, Smalltalk 등을 들 수 있으므로 이 설명은 옳지 않다.
그림판의 [색 채우기](페인트 통) 도구는 사용자가 별도로 지정해 둔 '선택 영역'을 대상으로 동작하는 것이 아니라, 클릭한 지점을 기준으로 닫힌 선(경계)으로 둘러싸인 영역의 색을 채우는 방식으로 동작한다.
나머지 기능들은 그림판에서 실제로 지원한다. 선택한 영역은 대칭(뒤집기)으로 이동시킬 수 있고, 그린 그림은 다른 문서에 붙여넣거나 바탕 화면 배경으로 지정할 수 있으며, JPG·GIF·BMP 같은 그림 파일도 열어서 편집할 수 있다.
부호를 포함한 모든 비트를 반전(1→0, 0→1)시키는 방식은 1의 보수이며, '0의 보수'라는 명칭의 표현 방식은 존재하지 않으므로 이 설명은 옳지 않다.
부호화 절대치는 부호 비트만 따로 두고 나머지 비트로 크기를 그대로 표현하는 방식이고, 부호화 1의 보수는 부호 비트를 제외한 나머지 비트를 반전시키는 방식이며, 부호화 2의 보수는 1의 보수에 1을 더해 표현하는 방식으로, 이 세 가지 설명은 모두 옳다.
RAID는 여러 개의 하드디스크를 묶어 하나의 디스크처럼 사용하는 기술로, 미러링과 스트라이핑 기법을 결합해 데이터의 안정성(중복 저장을 통한 자동 백업)과 처리 속도를 함께 향상시킨다.
다만 RAID는 하드디스크(저장장치) 간의 결합 기술이며, CD-ROM이나 스캐너처럼 서로 다른 종류의 주변기기를 통합적으로 연결해 주는 기술은 아니므로 이 설명은 옳지 않다.
캐시 메모리는 CPU와 주기억장치 사이의 속도 차이를 줄이기 위해 SRAM처럼 속도가 빠른 소자로 구성되며, 프로그램 명령어와 데이터를 모두 저장할 수 있고, 메인 메모리와 내용이 완전히 일치하지 않을 수도 있다.
다만 캐시 적중률(히트율)은 높을수록 CPU가 캐시에서 곧바로 데이터를 찾는 비율이 높아져 성능이 우수해지는 것이므로, 적중률이 낮아야 성능이 우수하다는 설명은 옳지 않다.
서브넷 마스크는 IP 주소를 네트워크 부분과 호스트 부분으로 나누어, 어느 비트까지가 네트워크 주소이고 어느 비트부터가 호스트 주소인지 구별해 주는 역할을 한다.
도메인 이름을 IP 주소로 변환해 주는 서버를 지정하는 것은 DNS 서버 항목의 역할이며, 호스트의 연결 방식 식별이나 연결된 사용자들의 IP 식별은 서브넷 마스크의 기능이 아니다.
표준 BCD 코드는 2개의 Zone 비트와 4개의 Digit 비트로 구성되어 최대 64개의 문자를 표현할 수 있지만, 영문 대문자만 표현할 수 있고 소문자는 표현할 수 없다는 한계가 있어 대소문자를 모두 표현한다는 설명은 옳지 않다.
EBCDIC은 4개의 Zone 비트와 4개의 Digit 비트로 256개의 문자를 표현하고, 해밍 코드는 오류를 검출하고 정정까지 할 수 있는 코드이며, 유니코드는 전 세계 문자를 2바이트로 표현하는 국제 표준 코드라는 나머지 설명은 옳다.
Windows 7의 [로컬 영역 연결 속성] 창에서 '설치' 버튼을 눌러 추가할 수 있는 네트워크 기능의 유형은 클라이언트, 서비스, 프로토콜 세 가지이다.
어댑터(네트워크 카드)는 이 창에서 설치하는 항목이 아니라 이미 장착되어 연결의 대상이 되는 하드웨어이므로, 어댑터를 설치 가능한 유형으로 든 설명은 옳지 않다.
Windows 7의 [작업 표시줄 및 시작 메뉴 속성] 창에서는 화면에서의 작업 표시줄 위치, 시작 메뉴의 사용자 지정, 알림 영역의 사용자 지정 등을 설정할 수 있다.
다만 '작업 표시줄 항상 위 표시'는 이전 버전(Windows XP 등)에 있던 항목으로, Windows 7의 이 속성 창에서 별도로 설정하는 항목이 아니므로 이 설명은 옳지 않다.
[장치 관리자] 창에서는 컴퓨터에 설치된 장치들의 드라이버를 식별하고 정보를 확인하며, 드라이버를 업데이트하거나 하드웨어가 정상적으로 작동하는지 확인할 수 있다.
반면 가상 메모리에 대한 정보 확인 및 설정 변경은 [시스템 속성]의 고급 설정에서 이루어지는 기능으로, 장치 관리자에서 할 수 있는 작업이 아니므로 이 설명은 옳지 않다.
레지스트리 편집기(regedit)를 실행해 레지스트리 폴더와 각 항목의 설정 값을 확인할 수 있고, 문제가 생겼을 때는 고급 부팅 옵션에서 '마지막으로 성공한 구성'을 선택해 복원할 수 있다.
그러나 레지스트리의 정보는 수정뿐 아니라 삭제도 가능하며, 백업이 없는 상태에서 삭제되면 언제든지 복원할 수 있다고 보장할 수 없으므로 이 설명은 옳지 않다.
셰어웨어는 일정 기간이나 일부 기능을 제한한 상태로 무료 배포하여 사용해 보게 한 뒤, 마음에 들면 정식 제품을 구매하도록 유도하는 형태의 소프트웨어이다.
정식 대가를 지불하고 사용하는 프로그램은 상용 소프트웨어, 기간 제한 없이 무료로 쓰고 배포할 수 있는 것은 프리웨어, ROM에 저장되어 BIOS와 관련된 것은 펌웨어에 해당해 나머지 설명은 셰어웨어와 다른 개념이다.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | 거래일자 | 거래처명 | 제품명 | 수량 | 단가 | 금액 |
| 2 | 12-01-02 | 대한전자 | LED TV | 10 | 1,230,000 | 12,300,000 |
| 3 | 12-01-05 | 현대전자 | 세탁기 | 15 | 369,000 | 5,535,000 |
| 4 | 12-01-12 | 현대전자 | 전자 레인지 | 20 | 95,000 | 1,900,000 |
| 5 | 12-01-15 | 대한전자 | 캠코더 | 25 | 856,000 | 21,400,000 |
| 6 | 12-01-20 | 현대전자 | 세탁기 | 15 | 369,000 | 5,535,000 |
| 7 | 12-01-25 | 한국전자 | 전자 레인지 | 10 | 139,000 | 1,390,000 |
| 8 | 12-01-26 | 미래전자 | LED TV | 10 | 1,230,000 | 12,300,000 |
| 9 | 12-02-03 | 한국전자 | 식기세척기 | 30 | 369,000 | 11,070,000 |
| 10 | 12-02-06 | 대한전자 | 캠코더 | 25 | 265,000 | 6,625,000 |




고급 필터에서 함수나 수식으로 만든 조건은 조건 범위의 첫 행에 원본 데이터의 필드명을 그대로 쓰면 안 되고, 원본에 없는 이름을 쓰거나 비워 두어야 한다. 그래서 '거래일자', '수량' 대신 '거래월', '평균' 같은 다른 이름을 붙인 조건 범위라야 수식 조건이 제대로 작동한다.
수량 조건 =$D2>AVERAGE($D$2:$D$10)에서, 비교되는 각 행의 수량은 아래로 내려가며 바뀌어야 하므로 상대적으로 이동하는 $D2를 쓰고, 비교 기준인 전체 평균의 범위는 고정되어야 하므로 절대참조 $D$2:$D$10으로 써야 한다. D2:D10처럼 상대참조로 두면 행이 내려갈 때 평균 범위까지 함께 밀려 전체 평균이 아닌 값과 비교된다.
거래일자 조건 =MONTH($A2)=1은 날짜에서 월만 뽑아 1월인지 판정한다. 두 조건을 같은 행에 나란히 놓았으므로 AND로 결합되어, 표의 수량 전체 평균(10+15+20+25+15+10+10+30+25=160, 160÷9 ≒ 17.8)보다 크면서 1월에 거래된 레코드만 추출된다.
자동 필터는 같은 열에서 여러 항목을 동시에 선택해 데이터를 추출할 수 있고, 숫자로만 구성된 열에서는 색 기준 필터와 숫자 필터를 함께 적용할 수 없으며, 필터링된 결과는 항상 레코드(행) 단위로 표시된다.
다만 같은 열에 날짜·숫자·텍스트가 섞여 있을 때는 그 열에서 가장 많이 나타나는(우세한) 데이터 형식을 기준으로 필터 종류가 결정되며, 항상 텍스트 필터가 기본으로 적용되는 것은 아니므로 이 설명은 옳지 않다.

그림의 [데이터 유효성] 대화상자 '설정' 탭을 보면 유효성 조건이 제한 대상: 정수, 제한 방법: 해당 범위, 최소값: 10, 최대값: 20으로 지정되어 있다. 즉 [B2:B5]에는 10 이상 20 이하의 정수만 입력할 수 있다.
따라서 10과 20은 경계값이므로 허용되고 15도 범위 안이라 문제없이 입력된다. 반면 0은 최소값 10보다 작아 범위를 벗어나므로 입력이 거부된다.
참고로 '공백 무시'가 체크되어 있는데, 이는 셀을 비워 두는 것을 허용한다는 뜻일 뿐 지정한 범위 밖의 숫자를 허용한다는 의미가 아니다.
피벗 테이블 필드 목록에서 텍스트나 논리값 형식의 필드를 보고서에 추가하면 기본적으로 '행 레이블' 영역으로 옮겨지며, 값 영역에 필드가 2개 이상 추가되면 값 필드가 행 또는 열 레이블 영역에 함께 표시된다.
이때 행 또는 열 레이블에 표시된 값 필드는 값 영역에 추가된 필드들이 나열되는 방향을 결정한다.
그러나 피벗 테이블 보고서를 만든 뒤 원본 데이터를 수정해도 피벗 테이블에는 자동으로 반영되지 않으며, 새로 고침을 해야 변경 내용이 반영되므로 이 설명은 옳지 않다.
엑셀에서 날짜는 하이픈(-)이나 슬래시(/)로 년, 월, 일을 구분해 입력하며, 연도를 생략하고 월과 일만 입력하면 현재 컴퓨터 시스템 날짜의 연도가 자동으로 채워진다.
두 자리로 연도를 입력할 때는 29 이하이면 2000년대, 30 이상이면 1900년대로 인식하는 규칙이 적용된다.
오늘 날짜를 입력하는 단축키는 Ctrl+;(세미콜론)이며, Ctrl+Shift+;(세미콜론)은 현재 시각을 입력하는 단축키이므로 이 설명은 옳지 않다.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 이름 | 컴퓨터일반 | 스프레드시트 | 데이터베이스 |
| 2 | 함초롱 | 89 | 65 | 92 |
| 3 | 강원철 | 68 | 76 | 58 |
| 4 | 김무진 | 75 | 68 | 52 |
| 5 | 민수현 | 87 | 82 | 80 |
| 6 | 신해철 | 54 | 78 | 48 |
| 7 | 안철진 | 98 | 68 | 94 |
조건부 서식의 수식 규칙은 선택 범위의 첫 셀(여기서는 [A2]) 기준으로 작성한 뒤 나머지 셀에 상대적으로 복사되어 적용된다. 그러므로 검사 대상은 범위 전체가 아니라 셀 하나(A2)여야 하고, 상대참조로 써야 A3, A4… 로 내려가며 각자 자기 셀을 검사한다. 범위 A2:A7을 넣으면 모든 셀이 같은 판정을 받아 원하는 결과가 나오지 않는다.
특정 글자가 들어 있는지 판정하려면 와일드카드 조건 "*철*"을 쓸 수 있어야 하는데, 조건을 인수로 받는 함수는 COUNTIF이다. COUNT는 범위 안의 숫자 개수만 세는 함수라 조건을 지정할 수 없다.
따라서 규칙은 =COUNTIF(A2,"*철*") 형태가 된다. 이름에 '철'이 있으면 1이 되어 참으로 인식되고 없으면 0이 되어 거짓이 되므로, 강원철·신해철·안철진이 들어 있는 세 셀에만 노랑 채우기와 굵은 기울임꼴이 적용된다.
[고급]-[이 통합 문서의 계산 대상]에 있는 '다른 문서에 대한 링크 업데이트' 옵션은 워크시트가 다른 통합 문서와 연결되어 있을 때, 파일을 열 때마다 그 외부 문서의 최신 값으로 갱신할지 여부를 설정하는 기능이다.
즉 이 옵션은 외부 문서에 포함된 결과 값의 복사본을 저장하는 기능이 아니라 연결된 데이터를 최신 상태로 갱신할지를 정하는 것이므로, 해당 설명은 옳지 않다.
나머지 보기들은 각각 실시간 미리 보기, 표 이름을 이용한 수식 참조, 기본 저장 파일 형식 지정 기능을 올바르게 설명하고 있다.
표시 형식 "₩#,###;-₩#,##0"은 양수 구간;음수 구간으로 나뉘며, 입력값 6345.678은 양수이므로 앞쪽 서식인 "₩#,###"이 적용된다.
서식 맨 앞의 통화 기호(₩)는 입력값 앞에 그대로 붙어 표시되고, 이 서식에는 소수 자리 표시가 없으므로 소수점 이하는 반올림되어 정수로 표시된다. 따라서 6345.678은 6346으로 반올림된다.
여기에 천 단위 구분 기호가 적용되어 ₩6,346으로 표시된다.
매크로 작성 시 지정한 바로 가기 키는 이후 [매크로] 대화상자의 옵션을 통해 언제든지 변경하거나 삭제할 수 있다.
바로 가기 키는 매크로 작성 시 반드시 지정해야 하는 항목이 아니라 선택 사항이며, 엑셀에 이미 지정된 단축키라도 매크로용 바로 가기 키로 다시 지정하면 매크로 실행이 우선된다.
또한 대문자로 지정하면 Ctrl에 Shift가 함께 조합되는 것이며 Alt가 자동으로 붙는 것은 아니다.
Sub Macro1()
For i = 1 To 10 Step 2
ActiveCell.FormulaR1C1 = i
Selection.Font.ColorIndex = 5
ActiveCell.Offset(1, 0).Range("A1").Select
Next i
End Sub
매크로 안의 Selection.Font.ColorIndex = 5는 선택된 셀의 글꼴 색을 색 번호 5번, 즉 파랑으로 지정하는 명령이다. 이 문장이 반복문 안에 있으므로 셀을 옮겨 갈 때마다 글자색이 파랑으로 바뀐다.
For i = 1 To 10 Step 2는 i가 1, 3, 5, 7, 9로 증가하며 다섯 번 실행된다. 끝값이 10이라고 해서 열 번 도는 것이 아니다.
ActiveCell.FormulaR1C1 = i는 그 시점의 활성 셀에 i 값을 하나 입력하고, 이어지는 ActiveCell.Offset(1, 0).Range("A1").Select가 한 행 아래 셀로 이동시킨다. 따라서 한 셀에 "1,3,5,7,9"가 통째로 들어가는 것이 아니라 다섯 개 셀에 1, 3, 5, 7, 9가 차례로 입력되며, 기준도 [A1] 셀이 아니라 매크로를 실행할 때의 활성 셀이다.
| A | B | C | |
|---|---|---|---|
| 1 | 자격증 응시 결과 | ||
| 2 | 응시자 | 과목 | 점수 |
| 3 | 강선미 | 1과목 | 80 |
| 4 | 2과목 | 86 | |
| 5 | 이수진 | 1과목 | 90 |
| 6 | 2과목 | 80 | |
| 7 | 김예린 | 1과목 | 78 |
| 8 | 2과목 | 88 | |
| 9 | |||
| 10 | 과목 | 평균 | |
| 11 | 1과목 | ||
| 12 | 2과목 | ||
[C11]에 넣을 값은 1과목 점수만의 평균이다. 시트에서 1과목 점수는 [C3], [C5], [C7]에, 2과목 점수는 [C4], [C6], [C8]에 있으므로 행 번호가 홀수인 행만 골라내면 1과목만 남는다.
ROW 함수는 인수로 준 범위의 각 행 번호를 배열로 돌려준다. ROW(C3:C8)은 {3;4;5;6;7;8}이 되고, 이를 2로 나눈 나머지가 1인 위치가 바로 3행, 5행, 7행, 즉 1과목이다. 반면 ROWS는 범위의 행 개수 하나(6)만 돌려주므로 행마다 구분할 수 없어 조건이 모든 행에 똑같이 적용되어 버린다.
따라서 {=AVERAGE(IF(MOD(ROW(C3:C8),2)=1,C3:C8))}를 Ctrl+Shift+Enter로 입력해야 하며, 결과는 (80+90+78)÷3 ≒ 82.7이 된다. 참고로 나머지가 0인 조건으로 바꾸면 2과목 평균 (86+80+88)÷3이 구해진다.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 1 | 2 | 1 | 2 | |
| 2 | 3 | 4 | 3 | 4 | |
| 3 | |||||
| 4 | |||||
| 5 |
배열 수식 =A1:B2+D1:E2는 크기가 같은 두 범위를 같은 자리끼리 더해 2행 2열짜리 결과 배열을 만들고, 그 배열을 선택해 둔 [A4:B5]에 그대로 채워 넣는다.
시트 값은 [A1]=1, [B1]=2, [A2]=3, [B2]=4이고 [D1]=1, [E1]=2, [D2]=3, [E2]=4이다. 따라서 결과 배열의 첫 행은 1+1=2와 2+2=4, 둘째 행은 3+3=6과 4+4=8이 된다.
[A4]에는 2, [B4]에는 4, [A5]에는 6이 들어가고, [B5]는 결과 배열의 둘째 행 둘째 열이므로 [B2]와 [E2]를 더한 4+4 = 8이 표시된다.
=SUMPRODUCT((A1:A100=C1)*(B1:B100=D1))
=SUMPRODUCT((A1:A100=C1)*(B1:B100=D1))에서 각 비교식은 행마다 TRUE(1) 또는 FALSE(0)으로 이루어진 배열을 만든다. 두 배열을 곱하면 두 조건을 모두 만족하는 행만 1이 되고 나머지는 모두 0이 된다.
SUMPRODUCT는 그렇게 만들어진 값을 전부 더하므로, 최종 결과는 A열 값이 [C1]과 같으면서 동시에 B열 값이 [D1]과 같은 행의 개수가 된다. 즉 다중 조건을 만족하는 셀의 개수를 세는 계산이다.
같은 일을 전용으로 하는 함수가 COUNTIFS여서 =COUNTIFS(A1:A100,C1,B1:B100,D1)가 동일한 값을 돌려준다. 조건에 맞는 값의 합계나 평균을 구하는 SUMIFS·AVERAGEIFS는 개수와 다른 값을 내놓고, SUBTOTAL은 조건별 집계가 아니라 필터된 목록의 부분합을 구하는 함수라 성격도 인수 형식도 맞지 않는다.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 사원명 | 부서명 | 직위 | 급여 |
| 2 | 홍길동 | 개발1부 | 부장 | 3500000 |
| 3 | 이대한 | 영업1부 | 과장 | 2800000 |
| 4 | 한민국 | 인사1부 | 대리 | 2500000 |
| 5 | 이계레 | 개발1부 | 과장 | 3000000 |
| 6 | 김국수 | 영업2부 | 부장 | 3700000 |
| 7 | 벅미나 | 영업2부 | 대리 | 2800000 |
| 8 | 최신호 | 개발2부 | 부장 | 3300000 |
| 9 | ||||
| 10 | 부장의 평균 급여 : |
조건에 맞는 값의 평균을 배열 수식으로 구할 때는 IF의 조건에 판정할 범위를, 참일 때 값으로 평균을 낼 범위를 각각 지정해야 한다. 여기서 조건을 판정할 곳은 직위가 든 [C2:C8]이고, 실제로 평균을 낼 대상은 급여가 든 [D2:D8]이다.
조건 범위와 값 범위를 모두 C2:C8로 쓰면 직위라는 문자 데이터의 평균을 구하려는 셈이 되어 원하는 급여 평균이 나오지 않는다.
또한 배열 수식은 Ctrl+Shift+Enter로 입력해 중괄호 { }가 붙어야 범위 전체가 한꺼번에 계산된다. 그냥 Enter로 입력하면 IF가 배열로 동작하지 않아 올바른 결과를 얻지 못한다. 결국 {=AVERAGE(IF(C2:C8="부장", D2:D8))}가 되며, 부장인 홍길동·김국수·최신호의 급여 3500000, 3700000, 3300000의 평균인 3500000이 [C10]에 표시된다.
Excel 2007에서 리본 메뉴를 최소화하거나 원래 상태로 되돌리는 단축키는 Ctrl+F1이며, Ctrl+F10이 아니므로 해당 설명은 옳지 않다.
활성 탭 이름을 두 번 클릭해 리본을 최소화하고 다시 두 번 클릭해 복원하는 방법, 탭·그룹·명령의 3요소 구성, Alt 키로 바로 가기 키 문자를 표시하는 기능은 모두 리본 메뉴에 대한 올바른 설명이다.
시트 탭에서 마우스 오른쪽 단추를 눌러 [삭제]를 선택하면 워크시트를 삭제할 수 있으며, 삭제된 시트는 실행 취소(Undo)로 되살릴 수 없으므로 주의가 필요하다.
워크시트를 복사할 때는 Ctrl 키를 누른 채 드래그해야 하며(Alt 키가 아님), 연속된 여러 시트를 선택할 때는 Shift 키를, 떨어져 있는 여러 시트를 선택할 때는 Ctrl 키를 사용한다.
차트 제목에 셀 값을 연결하려면 먼저 차트에서 차트 제목을 클릭해 선택한 다음, 수식 입력줄에 등호(=)를 입력하고 원하는 셀(B1)을 선택한 후 Enter를 눌러 마무리한다.
차트 제목을 직접 클릭한 상태에서 곧바로 등호를 입력하거나, 수식 입력줄에서 셀만 선택하고 등호를 생략하는 방법으로는 셀 연결이 이루어지지 않는다.
하나의 데이터 계열에는 두 개 이상의 추세선을 동시에 표시할 수 있으므로, 이를 불가능하다고 설명한 부분이 옳지 않다.
추세선은 지수, 선형, 로그, 다항식, 거듭제곱, 이동 평균의 6종류가 있고, 차트 종류를 3차원으로 바꾸면 추세선이 사라지며, 추세선을 선택한 후 Delete 키나 바로 가기 메뉴의 [삭제]로 제거할 수 있다는 설명은 모두 옳다.
[페이지 설정] 대화상자의 [페이지] 탭에 있는 자동 맞춤에서 용지 너비와 용지 높이를 각각 1로 지정하면, 워크시트 전체가 한 페이지에 들어가도록 확대/축소 배율이 자동으로 조정되어 출력된다.
인쇄 배율은 10%에서 400%까지 수동 설정이 가능하며, 셀 구분선과 행/열 머리글도 [시트] 탭에서 인쇄되도록 설정할 수 있고, 메모는 '시트에 표시된 대로' 인쇄하는 것도 가능하다는 점에서 나머지 보기는 옳지 않다.
틀 고정은 선택한 셀의 왼쪽 열과 바로 위 행을 기준으로 고정되며, 표의 제목 행이나 제목 열을 고정해 두고 스크롤할 때 유용하다.
다만 틀 고정으로 생긴 구분선은 일반 창 나누기 구분선과 달리 마우스로 드래그하여 이동시킬 수 없다는 점에서 해당 설명이 옳지 않다.
첫 행 고정을 실행하면 현재 선택된 셀 위치와 상관없이 항상 첫 번째 행이 고정된다는 설명은 올바르다.
Recordset 개체에서 현재 레코드의 필드 값을 편집한 후 그 변경 내용을 데이터베이스에 반영(저장)하는 메서드는 Update이다.
AddNew는 새 레코드를 추가할 때, Delete는 현재 레코드를 삭제할 때 사용하는 메서드로 현재 레코드의 수정과는 다른 기능이며, Insert는 Recordset 개체가 제공하는 메서드가 아니다.
Access의 모듈은 사용자 정의 개체를 만드는 데 사용하는 클래스 모듈과, 여러 프로시저를 모아 놓은 표준(일반) 모듈로 분류되며, '응용 모듈, 기타 모듈'로 나누지 않으므로 해당 설명은 옳지 않다.
모듈은 선언부와 실행부(프로시저)로 구성되며, 이벤트 프로시저는 특정 개체(폼, 컨트롤 등)에서 발생하는 이벤트에 대응해 실행되는 Sub 프로시저라는 설명은 올바르다.
데이터베이스는 여러 사용자가 서로 다른 목적으로 동일한 데이터를 공유하고, 효과적인 처리를 위해 구조화된 형태로 필요한 정보를 저장하는 것을 특징으로 한다.
다만 검색과 갱신을 효율적으로 하기 위해서는 데이터의 중복을 최소화하는 것이 데이터베이스의 목적이며, 중복을 최대화한다는 설명은 옳지 않다.
데이터 보안 및 회복, 무결성 유지, 병행 수행 제어 등을 정의하여 데이터베이스 관리자(DBA)가 데이터를 관리할 목적으로 사용하는 언어는 데이터 제어어(DCL)이다. GRANT, REVOKE 등의 명령이 이에 해당한다.
데이터 정의어(DDL)는 테이블 등 개체의 구조를 정의하는 언어이고, 데이터 조작어(DML)는 데이터의 검색·삽입·수정·삭제에 사용되는 언어이며, 데이터 부속어(DSL)는 응용 프로그램 속에 삽입되어 사용되는 데이터 조작 언어를 가리키는 것으로 관리 목적의 언어와는 역할이 다르다.
거래처별로 그룹이 설정된 보고서에서 그룹마다 순번을 1부터 새로 매기려면, 텍스트 상자의 컨트롤 원본을 '=1'로 설정하고 누적 합계 속성을 '그룹'으로 지정해야 한다.
누적 합계를 '그룹'으로 설정하면 그룹이 바뀔 때마다 값이 다시 1부터 누적되며, '모두'로 설정하면 그룹 구분 없이 보고서 전체에서 순번이 계속 이어지므로 원하는 결과와 다르다.
보고서 마법사에서 숫자 필드의 요약값을 지정할 때는 합계, 평균, 최대, 최소 중에서 여러 항목을 동시에 선택할 수 있으므로, 한 가지만 선택할 수 있다는 설명은 옳지 않다.
요약 옵션은 그룹 수준이 지정되어 있어야 사용할 수 있고, 정렬 순서와는 무관하게 사용할 수 있으며, 그룹화 수준에서 문자열 필드의 앞의 몇 글자만으로 그룹화를 지정하는 것도 가능하다.

그림의 보고서는 맨 위에 제목 줄이 있고, 그 아래에 네 개의 열 제목이 한 줄에 나란히 놓인 뒤 가로 구분선이 그어져 있다. 그리고 데이터 부분을 보면 그룹 수준의 값과 세부 데이터가 모두 같은 가로줄에서 시작해 네 열이 위아래로 곧게 이어지는 하나의 격자 형태를 이룬다. 즉 그룹이 바뀔 때만 왼쪽 열에 값이 한 번 찍히고, 오른쪽 두 열의 세부 레코드는 그 줄부터 계속 이어져 내려간다.
이렇게 그룹 머리글과 세부 구역이 별도의 줄로 분리되지 않고 표처럼 한 덩어리(블록)로 이어지는 배치가 보고서 마법사의 블록 모양이다. 마법사에서 그룹 수준을 지정한 뒤 모양 단계에서 블록을 고르면 그림과 같은 결과가 만들어진다.
비교하면 단계는 그룹 수준마다 한 단씩 오른쪽으로 들여쓰기가 되고, 그룹 값이 자기 줄을 혼자 차지한 뒤 세부 레코드가 다음 줄부터 시작한다. 외곽선 계열은 그룹 필드가 세부 구역 위에 별도의 줄로 떨어져 나오고 세부 데이터는 그 아래에 들여써서 배치되므로, 그림처럼 모든 열의 값이 같은 줄에 가지런히 놓이지 않는다.
디자인 보기 화면에서 삽입된 하위 보고서는 다른 컨트롤과 마찬가지로 크기를 조절할 수 있으며, 크기 조절이 불가능하다는 설명은 옳지 않다.
하위 보고서 컨트롤에 붙은 레이블은 삭제가 가능하고, 일대다 관계에서 하위 보고서에는 '다' 쪽 데이터가 표시되며, 하위 보고서 마법사를 이용해 작성할 수 있다는 나머지 설명은 모두 옳다.
UPDATE 사원
( ) 연봉=연봉*1.03
( ) 호봉=6;
제시된 문장은 UPDATE 사원으로 시작하므로 사원 테이블의 기존 레코드 값을 바꾸는 갱신 질의다. 갱신 질의의 기본 형식은 UPDATE 테이블 SET 필드=바꿀값 WHERE 조건; 이므로, 바꿀 값을 지정하는 연봉=연봉*1.03 앞에는 SET이, 대상 레코드를 걸러 내는 호봉=6 앞에는 WHERE가 들어가야 한다.
계산식 연봉*1.03은 기존 연봉에 3%를 더한 값(100%+3%=103%)을 뜻한다. 따라서 완성된 문장은 UPDATE 사원 SET 연봉=연봉*1.03 WHERE 호봉=6; 이 되어 호봉이 6인 사원만 연봉이 3% 인상된다.
FROM은 조회할 원본 테이블을 지정하는 SELECT문 구성 요소라 UPDATE문에는 쓰이지 않고, INTO와 VALUES는 새 레코드를 추가하는 INSERT INTO ~ VALUES ~ 형식에서 쓰인다. 기존 값을 바꾸는 질의에는 맞지 않는다.
동호회 : 테이블
| 회원ID | 사번 | 이름 |
|---|---|---|
| M101 | B117 | 이상태 |
| M102 | K230 | 강칠구 |
| M103 | K300 | 박차고 |
| 사번 | 이름 | 주소 |
|---|---|---|
| K230 | 강칠구 | 서울 |
| K300 | 박차고 | 부산 |
| K400 | 김치국 | 대전 |
| 회원ID | 동호회.사번 | 동호회.이름 | 사원.사번 | 사원.이름 | 주소 |
|---|---|---|---|---|---|
| M102 | K230 | 강칠구 | K230 | 강칠구 | 서울 |
| M103 | K300 | 박차고 | K300 | 박차고 | 부산 |
FROM 동호회 INNER JOIN 사원 ON 동호회.사번 =
사원.사번;
FROM 동호회 LEFT JOIN 사원 ON 동호회.사번 =
사원.사번;
FROM 동호회 RIGHT JOIN 사원 ON 동호회.사번 =
사원.사번;
FROM 동호회 OUTER JOIN 사원 ON 동호회.사번 =
사원.사번;
두 테이블의 사번을 견주어 보면 동호회의 B117(이상태)은 사원 테이블에 없고, 사원의 K400(김치국)은 동호회에 없다. 그런데 질의 결과에는 K230(강칠구)과 K300(박차고) 두 건만 나타나고 짝이 없는 이 두 행은 어느 쪽도 나오지 않았다.
이처럼 조인 필드 값이 양쪽 테이블에 모두 존재하는 레코드만 결과에 포함되는 조인이 내부 조인(INNER JOIN)이다. 결과표에 동호회.사번과 사원.사번이 나란히 같은 값으로 찍혀 있는 것도 두 테이블이 사번으로 정확히 맞물린 행만 남았음을 보여 준다.
왼쪽 우선 조인이었다면 짝이 없는 B117(이상태) 행이 사원 쪽 필드가 빈 채로 함께 나와 3행이 되고, 오른쪽 우선 조인이었다면 K400(김치국) 행이 동호회 쪽 필드가 빈 채로 나온다. 또한 Access의 질의문에서는 OUTER JOIN을 단독으로 쓸 수 없고 LEFT/RIGHT를 붙인 형태로만 사용한다.
Where 재학생.학번 = 졸업생.학번;
JOIN Select 학번, 이름, 전화번호 From 졸업생;
OR Select 학번, 이름, 전화번호 From 졸업생;
UNION Select 학번, 이름, 전화번호 From 졸업생;
필드 구성이 동일한 두 테이블을 하나로 합쳐서 나타내려면 두 SELECT문의 결과를 결합하는 UNION 연산자를 사용한다.
JOIN이나 OR로 두 SELECT문을 직접 연결하는 구문은 문법상 성립하지 않으며, 같은 필드로 조인하는 방식은 두 테이블에 모두 존재하는(교집합) 데이터만 나타내는 방식으로 재학생과 졸업생을 단순히 통합하는 목적과는 다르다.
SELECT 도서명, 저자, 출판년도, 가격
FROM 도서
WHERE ______________________ ;
도서 테이블에서 도서명·저자·출판년도·가격을 조회하면서 도서명 안에 '액세스'라는 단어가 들어 있기만 하면 뽑아 오려는 질의다. 이렇게 값의 일부만 일치시키는 부분 일치(패턴) 검색에는 LIKE 연산자를 쓰고, 임의의 문자열을 대신하는 만능 문자 *를 찾을 단어 앞뒤에 붙여 "*액세스*"와 같이 작성한다.
등호(=)는 값이 완전히 똑같은 경우에만 참이 되므로, 도서명이 글자 그대로 별표를 포함한 문자열이 아닌 한 원하는 결과를 얻지 못한다.
IN은 IN ("값1","값2")처럼 나열된 값 목록 중 하나와 같은지를 따지는 연산자이고, BETWEEN은 BETWEEN A AND B 형태로 범위를 지정하는 연산자여서 뒤에 값 하나만 오는 문장 자체가 성립하지 않는다. 둘 다 만능 문자를 이용한 포함 검색에는 쓸 수 없다.
Access에서는 이미 데이터가 입력되어 있는 필드라도 그 필드에 중복이나 Null 값이 없다면 기본 키로 지정할 수 있다.
기본 키는 테이블에 반드시 설정해야 하는 것은 아니며, 단일 필드나 일련번호 필드뿐 아니라 여러 필드를 조합한 복합 키로도 지정할 수 있다는 점에서 나머지 보기는 옳지 않다.
쿼리를 텍스트 파일로 내보내면 텍스트 파일에는 쿼리의 실행 결과(레코드 데이터)가 저장되는 것이며, 쿼리를 구성하는 SQL문 자체가 저장되는 것은 아니므로 해당 설명은 옳지 않다.
Access 데이터는 Excel, Word 등 다양한 형식으로 내보낼 수 있고, 테이블·쿼리·폼·보고서 모두 텍스트 파일로 내보낼 수 있으며, 전체 개체를 내보내거나 서식 없이 데이터만 내보내도록 선택할 수 있다는 나머지 설명은 옳다.
입력 마스크에서 & 기호는 필수 요소로서 단일 문자나 공백을 입력받는 기호이다.
0은 필수 요소로서 0~9의 숫자만 입력받고, 9는 선택 요소로서 숫자나 공백을 입력받으며, #은 선택 요소로서 숫자, 공백, +/- 기호를 입력받는 기호이므로 나머지 설명은 옳지 않다.
| 필드 크기 | 실수(Single) |
| 형식 | 표준 |
| 소수 자릿수 | 1 |
| 입력 마스크 | |
| 캡션 | |
| 기본값 | 0 |
| 유효성 검사 규칙 | <>1 And <>-1 |
| 유효성 검사 텍스트 | |
| 필수 | 예 |
속성표에서 형식이 '표준'으로 지정되어 있는 점이 핵심이다. 숫자 필드의 표준 형식은 천 단위마다 자리 구분 기호(쉼표)를 넣어 표시하므로, 1234를 입력하면 화면에는 1,234.0으로 나타난다. 쉼표 없이 '1234.0'으로 표시된다는 설명은 이 형식 설정과 맞지 않는다.
나머지 설정도 함께 확인해 보면, 유효성 검사 규칙이 <>1 And <>-1이므로 1이나 -1은 규칙을 어겨 저장되지 않고 경고가 뜬다. 두 값 모두 입력이 거부된다는 설명은 규칙 그대로다.
또 기본값이 0이고 소수 자릿수가 1로 지정되어 있으므로, 아무 값도 입력하지 않으면 0이 들어가고 소수 한 자리까지 표시되어 0.0으로 나타난다. 소수 자릿수 1은 저장된 값을 바꾸는 것이 아니라 표시 자릿수만 정한다는 점도 함께 기억해 두면 좋다.
- 그룹 틀, 확인란, 옵션 단추, 토글 단추 등으로 구성
- 필드 크기가 정수인 숫자 데이터 형식이나 '예/아니요'로 설정된 필드에 설정
- 원하는 값을 클릭하여 쉽게 내용을 선택
- 몇 개의 컨트롤을 그룹으로 하여 제한된 선택 조합을 표시할 때 사용
설명의 첫 줄이 결정적이다. 그룹 틀 안에 확인란·옵션 단추·토글 단추를 묶어 놓은 형태의 컨트롤은 옵션 그룹뿐이다. 옵션 그룹은 미리 정해 둔 몇 가지 보기를 한 틀 안에 모아 두고, 사용자가 그중 하나를 클릭해 고르게 하는 컨트롤이다.
각 보기에는 정수 값이 자동으로 매겨지므로 필드 크기가 정수인 숫자 형식이나 '예/아니요' 형식 필드에 연결해 쓴다. 선택지 수가 적고 값이 고정된 항목(성별, 등급 등)을 제한된 선택 조합으로 제시할 때 적합하다.
콤보 상자와 목록 상자는 여러 값이 들어 있는 목록에서 값을 고르거나 직접 입력하는 컨트롤로, 그룹 틀·옵션 단추 같은 하위 컨트롤을 묶어 구성하지 않는다. 명령 단추는 클릭했을 때 매크로나 프로시저를 실행시키는 컨트롤이어서 값을 선택하는 용도가 아니다.
폼에서 테이블의 필드와 직접 연결되어 그 값을 화면에 표시하고 사용자가 값을 수정하면 원본 데이터에도 반영되는 컨트롤을 바운드 컨트롤이라고 한다.
언바운드 컨트롤은 데이터 원본과 연결되지 않은 컨트롤(레이블, 선 등)이고, 계산 컨트롤은 식의 결과를 표시할 뿐 데이터를 직접 수정할 수 없으며, 탭 컨트롤은 여러 페이지를 묶어 보여주는 컨테이너 컨트롤이라는 점에서 나머지 보기와 구분된다.
폼 머리글은 인쇄할 때 맨 처음 페이지의 상단에 한 번만 표시되는 구역이며, 모든 페이지 상단에 매번 표시되는 것은 폼 머리글이 아니라 페이지 머리글의 특징이므로 해당 설명은 옳지 않다.
하위 폼은 폼 안에 삽입된 또 다른 폼을 의미하고, 폼 바닥글은 요약 정보 등을 표시하는 구역이며, 본문은 보기 형식에 따라 하나 또는 여러 레코드를 표시하는 구역이라는 나머지 설명은 옳다.
특정 조건을 만족하는 레코드의 개수를 구할 때는 DCount 함수를 사용하며, 문법은 DCount(필드 또는 "*", "테이블/쿼리명", "조건식") 형태로 필드·도메인·조건식을 모두 큰따옴표로 감싼 문자열로 지정해야 한다.
따라서 =DCount("*", "학생", "학년=1")과 같이 인수를 모두 큰따옴표로 묶은 식만 올바른 문법이며, 따옴표를 생략한 식이나 개수를 구하는 데 DLookup 함수를 사용한 나머지 보기는 문법 또는 용도가 맞지 않다. DLookup은 조건에 맞는 특정 필드의 값을 하나 찾아오는 함수이다.