[컴퓨터활용능력 1급 필기] 13년 2회차 시험지 PDF 다운로드
13년 2회차
레지스트리는 윈도우즈의 환경 설정과 시스템 관련 정보를 저장하는 데이터베이스이며, [시작]-[실행]에서 “regedit”을 입력해 레지스트리 편집기를 실행할 수 있고, 레지스트리에 이상이 생기면 운영체제에 치명적인 손상이 발생할 수 있다는 설명은 옳다.
레지스트리는 부팅 관련 파일이나 시스템 프로그램의 설정 파일 자체로 구성된 것이 아니라, 하드웨어·소프트웨어·사용자 등에 대한 각종 설정값과 정보를 담고 있는 데이터베이스이므로 해당 설명은 옳지 않다.
캐시 메모리는 중앙처리장치(CPU)와 주기억장치 사이에 위치하여 두 장치 간의 속도 차이를 줄여 컴퓨터의 처리 속도를 향상시키는 역할을 한다.
캐시 메모리로는 속도가 빠른 SRAM이 사용되며(DRAM이 아님), 보조기억장치를 주기억장치처럼 사용하거나 큰 프로그램을 로딩하기 위한 방식은 가상 메모리에 대한 설명이다.
쿠키는 특정 웹 사이트에 접속할 때 반복적으로 사용되는 접속 정보(로그인 상태, 방문 기록 등)를 담아 사용자 컴퓨터에 저장해 두는 파일이다.
네트워크 접속을 위한 프로그램이나 브라우저의 부가 기능을 설치하는 것은 쿠키와 무관하며, 자료를 저장했다가 자동으로 불러오는 캐시 기능과도 성격이 다르다.
바이오스(BIOS)는 하드웨어 작동에 필요한 기본 입출력 프로그램으로, 전원이 꺼져도 내용이 유지되는 ROM에 저장되며 RAM에 위치하지 않는다.
칩셋에 사우스·노스 브리지가 있고, 메인보드의 버스에 내부·외부·확장 버스가 있으며, 포트에 직렬·병렬·PS/2·USB 등이 있다는 나머지 설명은 모두 옳다.
DHCP는 클라이언트가 인터넷에 접속할 때 동적으로 IP 주소를 할당해 주는 프로토콜이다.
WWW는 인터넷의 하이퍼텍스트 정보 서비스, HTML은 웹 문서 작성 언어, WINS는 NetBIOS 이름을 IP 주소로 변환해 주는 서비스로 동적 IP 할당과는 관련이 없다.
Tracert는 목적지 서버까지의 경로와 각 구간의 응답 속도를 확인하여, 특정 사이트 접속 지연이나 인터넷 정체 구간을 파악하는 데 사용하는 명령어이다.
현재 자신의 컴퓨터에 연결된 다른 컴퓨터의 IP 주소나 포트 정보를 확인하는 것은 netstat 등 다른 명령으로 하는 작업이며, Tracert의 기능이 아니다.
비트맵 방식은 픽셀 단위로 이미지를 저장하기 때문에 벡터 방식보다 메모리를 더 많이 차지하지만, 픽셀을 그대로 옮겨 표시하므로 화면에 보여주는 속도는 벡터 방식보다 빠르다.
벡터 방식은 점과 점을 연결한 선으로 이미지를 표현하여 확대·축소해도 화질 손상이 거의 없다는 설명은 옳다.
네트워크 프린터를 기본 프린터로 설정하는 데 스풀링 설정이 반드시 필요한 것은 아니다. 스풀링은 인쇄 데이터를 임시로 저장해 인쇄와 다른 작업을 동시에 처리할 수 있게 하는 기능으로, 기본 프린터 지정 여부와는 별개의 설정이다.
프린터 추가 마법사로 새 프린터를 설치할 수 있고, 여러 프린터를 한 컴퓨터에 설치하거나 네트워크로 공유할 수 있으며, 기본 프린터는 한 대만 지정되지만 삭제할 수도 있다는 나머지 설명은 옳다.
Windows 시작 시 자동 실행되는 프로그램 목록은 msconfig(시스템 구성 유틸리티)를 실행하여 [시작프로그램] 탭에서 확인하고, 개별 항목의 실행 여부를 선택적으로 해제할 수 있다.
taskmgr는 현재 실행 중인 프로세스를 관리하는 작업 관리자이고, format은 디스크를 포맷하는 명령, winver는 Windows 버전 정보를 표시하는 명령으로 시작프로그램 설정과는 관련이 없다.
Windows Update는 운영체제 자체의 보안 패치와 하드웨어 드라이버 업데이트, 자동 업데이트 설정 등을 제공하는 기능이다.
하지만 바이러스 백신 소프트웨어의 업데이트는 별도의 백신 프로그램을 통해 이루어지는 것으로 Windows Update의 범위에 포함되지 않는다.
보안 관련 최신 정보 업데이트, 자동 업데이트 설정, 하드웨어 드라이버 업데이트는 모두 Windows Update가 실제로 지원하는 기능이다.
운영체제의 일반적인 목적은 처리 능력(처리량) 증대, 신뢰도 향상, 응답 시간 단축, 사용 가능도 향상 등이다.
파일 전송은 운영체제 자체의 목적이라기보다 네트워크·통신 기능의 한 요소에 가까우므로, 제시된 항목 중 운영체제의 목적과 가장 거리가 먼 것이다.
[제어판]-[시스템]의 [시스템 등록 정보] 창은 컴퓨터 이름, 하드웨어, 원격 설정 등을 다루는 곳으로, 컴퓨터 이름 변경에는 관리자 권한이 필요하고 바탕 화면의 [내 컴퓨터] 바로 가기 메뉴의 [속성]으로도 열 수 있다.
그러나 시작 메뉴의 등록 정보는 작업 표시줄 및 시작 메뉴 속성에서 별도로 설정하는 항목으로, [시스템 등록 정보] 창에서 다룰 수 있는 내용이 아니다.
인쇄 관리자(인쇄 대기열)에서는 인쇄 작업을 일시 중지했다가 재개할 수 있고, 여러 출력 파일의 대기 상태 확인과 순서 조정도 가능하다.
또한 이미 프린터에서 인쇄가 시작된 작업이라도 인쇄 관리자에서 강제로 취소할 수 있으며, 반드시 프린터 전원을 꺼야만 중단되는 것은 아니다.
동배간처리(Peer-To-Peer) 방식은 컴퓨터들이 대등한 관계로 연결되어 각 컴퓨터가 클라이언트인 동시에 서버 역할을 하며, 주로 소규모 네트워크에서 사용된다.
그러나 이 방식은 중앙 집중적인 관리 체계가 없어 유지보수가 어렵고 보안 수준이 상대적으로 낮으며, 대용량 데이터를 다루기보다는 소규모·개인적인 자원 공유에 적합하다.
사용자 인증, 방화벽, PGP·PEM과 같은 전자우편 보안 방법에 대한 설명은 모두 타당하다.
다만 암호화 방식에서 동일한 키로 암호화·복호화하는 것은 비밀키(대칭키) 암호화이고 서로 다른 키를 사용하는 것은 공개키(비대칭키) 암호화이므로, 두 방식의 명칭과 설명이 서로 뒤바뀌어 있다.
모핑(Morphing)은 한 이미지가 서서히 다른 이미지로 변형되어 가는 것처럼 보이게 하는 그래픽 기법으로, 영화의 특수 효과에서 자주 활용된다.
로토스코핑은 실사 영상을 바탕으로 애니메이션을 제작하는 기법이고, 셀 애니메이션은 투명한 셀에 그림을 그려 겹쳐 촬영하는 전통적 애니메이션 기법이며, 입자 시스템은 불꽃이나 연기 등을 표현하는 기법으로 이미지 변형과는 다르다.
시분할 시스템은 하나의 컴퓨터 자원을 여러 사용자가 공유하되, CPU 사용 시간을 짧은 단위로 분할해 각 사용자에게 순차적으로 할당함으로써 마치 각자 컴퓨터를 독점하는 것처럼 느끼게 하는 운영 방식이다.
일괄처리시스템은 작업을 모아 두었다가 한꺼번에 처리하는 방식이고, 다중프로그래밍은 여러 프로그램을 동시에 주기억장치에 적재해 처리 효율을 높이는 방식이며, 다중처리시스템은 여러 CPU가 동시에 작업을 처리하는 방식으로 시분할과는 개념이 다르다.
- 두 개의 근거리통신망(LAN) 시스템을 이어주는 접속장치이다.
- 양쪽방향으로 데이터의 전송만 해줄 뿐 프로토콜 변환 등 복잡한 처리는 불가능하다.
- 네트워크 프로토콜과는 독립적으로 작용하므로 네트워크에 연결된 여러 단말들의 통신 프로토콜을 바꾸지 않고도 네트워크를 확장할 수 있다.
제시된 설명은 두 개의 근거리통신망(LAN)을 서로 이어 주는 접속 장치이면서, 양방향 데이터 전송만 할 뿐 프로토콜 변환 같은 복잡한 처리는 하지 못하고, 네트워크 프로토콜과 독립적으로 동작해 단말들의 통신 프로토콜을 바꾸지 않고도 망을 확장할 수 있는 장비를 가리킨다.
이 특징은 브리지(Bridge)의 것이다. 브리지는 OSI 7계층 중 데이터 링크 계층에서 동작하며 MAC 주소를 보고 프레임을 그대로 전달하거나 걸러 내기만 하므로, 상위 계층의 프로토콜에는 관여하지 않은 채 두 LAN 을 하나의 망처럼 묶어 준다.
이에 비해 라우터는 네트워크 계층에서 IP 주소를 보고 최적 경로를 선택해 서로 다른 네트워크를 연결하므로 '복잡한 처리는 불가능하다'는 설명과 맞지 않고, 모뎀은 디지털 신호와 아날로그 신호를 서로 변환해 전화 회선으로 통신하게 해 주는 장치다. 스위칭 허브는 포트마다 회선을 교환해 대역폭을 나눠 주는 허브의 개량형으로, 두 LAN 을 이어 주는 접속 장치라는 위 설명과는 성격이 다르다.
데이터의 논리적 구성단위는 작은 것부터 필드 → 레코드 → 파일 → 데이터베이스 순으로 커진다.
필드는 하나의 항목을 나타내는 최소 단위이고, 여러 필드가 모여 레코드를, 여러 레코드가 모여 파일을, 관련된 파일들이 모여 데이터베이스를 구성한다. 비트·바이트·워드는 논리적 구성단위가 아니라 물리적 구성단위에 해당한다.
ALL-IP, UWB, 와이브로에 대한 설명은 모두 타당한 내용이다.
다만 지그비(Zigbee)는 2.4GHz 대역을 기반으로 하는 저전력·저비용·저속도의 근거리 무선 통신 규격으로, 실제 통신 반경은 수십 미터 수준이며 1Km에 이르는 장거리 전송을 지원하지 않는다.
| A | B | |
|---|---|---|
| 1 | 사원번호 | 매출액 |
| 2 | G1003 | 12548 |
| 3 | T2005 | 7580 |
| 4 | G2400 | 23587 |
| 5 | M1233 | 23882 |
| 6 | T3211 | 16839 |
워크시트에는 A열에 사원번호(G1003, T2005, G2400, M1233, T3211)가, B열에 매출액(12548, 7580, 23587, 23882, 16839)이 2행부터 6행까지 들어 있다. 첫 글자가 'G'인 것은 G1003과 G2400이므로 구하려는 합계는 12548+23587=36135이다.
조건에 맞는 값만 더하는 배열 수식은 조건식의 결과(TRUE/FALSE)에 더할 값을 곱한 뒤 SUM 으로 합치는 형태여야 한다. LEFT($A$2:$A$6,1)로 각 사원번호의 첫 글자를 떼어 "G"와 비교하면 {TRUE, FALSE, TRUE, FALSE, FALSE} 배열이 만들어지고, 여기에 $B$2:$B$6 을 곱하면 조건에 맞는 행만 매출액이 남고 나머지는 0이 되어 합계가 36135로 계산된다.
비교 연산자 =는 반드시 LEFT 함수의 바깥에 놓여야 한다. LEFT($A$2:$A$6,1="G") 처럼 괄호 안에 넣으면 글자 수를 지정하는 인수 자리에 비교 결과가 들어가 버려 의도한 계산이 되지 않는다. 또 곱하기 대신 쉼표로 두 범위를 나열하면 조건과 관계없이 값들을 모두 더하게 된다. 배열 수식은 Ctrl+Shift+Enter 로 입력하며, 이때 중괄호는 수식 전체를 감싸는 {=…} 모양으로 표시된다.
| A | B | |
|---|---|---|
| 1 | 우리나라 대한민국 | |
| 2 |
그림의 A1 셀 하나에 '우리나라'와 '대한민국'이 두 줄로 들어 있다. A2 셀은 비어 있으므로 두 줄이 서로 다른 셀에 나뉜 것이 아니라 한 셀 안에서 줄이 바뀐 것이다.
이렇게 셀 안에서 강제로 줄을 바꾸려면 데이터를 입력하는 도중 Alt+Enter 를 누른다. Enter 만 누르면 입력이 끝나고 아래 셀로 이동해 '대한민국'이 A2 셀에 들어가 버린다.
비슷한 조합들은 용도가 다르다. Ctrl+Enter 는 선택한 여러 셀에 같은 내용을 한꺼번에 입력하고, Ctrl+Shift+Enter 는 배열 수식을 입력할 때 사용하며, Shift+Enter 는 입력을 마친 뒤 위쪽 셀로 이동한다.
수식의 결과값을 값으로 고정하려면 셀의 Value 속성을 자기 자신의 Value 값으로 재대입하면 된다. 즉 Range("C1").Value = Range("C1").Value는 현재 계산된 결과값을 그대로 다시 값으로 저장하여 수식을 제거하고 값만 남기는 코드이다.
Formula 속성은 수식 문자열 자체를 다루므로 Value에 Formula를 대입하면 수식이 다시 입력될 뿐이고, Count는 셀 개수를 반환하는 속성이므로 수식을 값으로 바꾸는 동작과는 관련이 없다.
엑셀의 정렬 기준으로는 셀 값 외에도 셀 색, 셀 아이콘(조건부 서식 아이콘), 글꼴 색을 지정하여 정렬할 수 있다.
그러나 글꼴 크기는 정렬 기준으로 제공되는 항목에 포함되지 않는다.
데이터 레이블은 겹치지 않도록 위치를 조정할 수 있고, 기본적으로 워크시트 값과 연결되어 원본 값이 바뀌면 자동으로 갱신되며, 계열별로 선택 후 Delete 키로 제거할 수 있다.
다만 레이블 내용으로 선택할 수 있는 항목은 계열 이름, 항목 이름, 값 등이며, 차트 이름은 데이터 레이블 내용으로 선택할 수 있는 항목이 아니다.
부분합은 데이터를 그룹화할 항목을 기준으로 미리 정렬한 뒤, SUBTOTAL 함수를 이용해 합계·평균·개수 등 미리 정의된 요약 방식으로 값을 계산하며, 부분합을 제거하면 함께 삽입된 윤곽과 페이지 나누기도 제거된다.
그러나 부분합에서는 사용자가 임의의 계산식(사용자 지정 계산과 수식)을 직접 만들어 넣을 수는 없으며, 제공되는 요약 함수 목록 중에서 선택하는 방식으로만 동작한다. 사용자 지정 계산은 피벗 테이블에서 제공되는 기능이다.
매크로 기록 시에는 작업 중 발생한 동작이 틀리거나 불필요한 것까지 그대로 기록되며, 기록에 걸린 시간 자체는 매크로에 포함되지 않으므로 어떤 동작을 어떤 순서로 수행할지 미리 계획하고 기록하는 것이 바람직하다.
다만 매크로는 기본적으로 절대 참조 방식으로 기록되며, 상대적인 위치를 기준으로 기록하려면 [상대 참조로 기록]을 별도로 선택해야 한다. 즉 기본값과 전환 방법의 설명이 서로 반대로 되어 있다.
| A | B | |
|---|---|---|
| 1 | 성명 | 성적 |
| 2 | 김도훈 | 74.5 |
| 3 | 홍기태 | 54.5 |
| 4 | 성유나 | 79.0 |
| 5 | 강정훈 | 80.5 |
| 6 | 남도현 | 65.5 |
| 7 | 소병국 | 72.5 |
| 8 | 평균 | 71.1 |
| 9 | ||
| 10 | 성유나 | 평균 |
| 11 | 71.1 | |
| 12 | 50 | 66.3 |
| 13 | 60 | 67.9 |
| 14 | 70 | 69.6 |
| 15 | 80 | 71.3 |
| 16 | 90 | 72.9 |
| 17 | 100 | 74.6 |
이 워크시트에서 원본 데이터는 [A1:B8]이고, 성적 합계의 평균이 [B8]에 71.1로 계산되어 있습니다. 아래쪽 [A11:B17]이 데이터 표 영역으로, 성유나의 성적을 50·60·70·80·90·100으로 바꿔 넣었을 때의 평균 66.3·67.9·69.6·71.3·72.9·74.6이 표시됩니다. 실제로 성유나의 성적만 50으로 바꾸면 (74.5+54.5+50+80.5+65.5+72.5)/6 = 66.25 ≒ 66.3 으로 표의 값과 일치합니다.
데이터 표는 변화하는 값이 놓인 방향에 따라 입력 셀을 지정합니다. 이 문제에서 바뀌는 성적 값 50~100은 [A12:A17]에 세로(열 방향)로 나열되어 있으므로, [데이터 표] 대화상자에서 '열 입력 셀'에 성유나의 원래 성적이 있는 [B4]를 지정해야 합니다. '행 입력 셀'에 [B4]를 넣으라는 설명은 방향이 반대이므로 옳지 않습니다.
나머지 설명은 모두 맞습니다. 데이터 표의 결과 셀 [B11]에는 변화하는 값(성유나의 성적 [B4])을 참조하는 수식인 평균 수식([B8]의 수식 또는 =B8)을 그대로 넣어야 하며, 값 목록과 결과 수식을 모두 포함한 [A11:B17]을 선택한 뒤 [데이터]-[데이터 도구]-[가상 분석]-[데이터 표]를 실행합니다.
[데이터]-[외부 데이터 가져오기] 기능으로는 Access 데이터베이스, 웹 페이지, XML 데이터 등 다양한 형식을 가져올 수 있다.
그러나 MS-Word 문서(*.doc)는 표 형태의 구조화된 데이터 형식이 아니므로 외부 데이터 가져오기 대상에 포함되지 않는다.
| A | B | |
|---|---|---|
| 1 | 성명 | 부서 |
| 2 | 김남이 | 영업3부 |
| 3 | 이지훈 | 영업1부 |
| 4 | 김현철 | 영업2부 |
| 5 | 하나영 | 영업1부 |
| 6 | 유미진 | 영업1부 |
| 7 | 임진태 | 영업2부 |
| 8 | 현상국 | 영업2부 |
| 9 | 한동일 | 영업1부 |
| 10 | ||
| 11 | 영업1부 인원수 |
부서 범위 [B2:B9]에는 영업3부·영업1부·영업2부·영업1부·영업1부·영업2부·영업2부·영업1부가 들어 있어, 구해야 할 영업1부 인원수는 이지훈·하나영·유미진·한동일 4명입니다.
COUNTIF(B2:B9,"영업1부")는 조건을 만족하는 셀만 세므로 4를 반환합니다. 배열 수식 SUM((B2:B9="영업1부")*1)은 조건 비교 결과 TRUE/FALSE를 1/0으로 바꿔 더하므로 역시 4가 됩니다. SUM(IF(B2:B9="영업1부",1))도 조건을 만족할 때만 1을 돌려주고 나머지는 FALSE라 합계에서 제외되므로 4입니다.
반면 COUNT(IF(B2:B9="영업1부",1,0))은 IF의 거짓일 때 값으로 0을 지정했기 때문에, 조건에 맞지 않는 셀도 숫자 0을 돌려줍니다. COUNT 함수는 숫자의 개수를 세므로 0까지 포함해 8이 되어 인원수를 잘못 구합니다. COUNT 대신 SUM을 쓰거나, IF의 거짓 값을 생략해야 올바른 결과가 나옵니다.

제시된 차트는 동부·서부·남부·북부 네 계열이 가운데 구멍을 두고 고리 모양으로 배치된 도넛형 차트입니다. 도넛형 차트의 가운데 빈 공간 크기는 차트 종류 옵션이 아니라 데이터 계열 자체의 서식으로 조절합니다.
계열을 선택한 뒤 [데이터 계열 서식] 대화상자를 열고 [계열 옵션]의 '도넛 구멍 크기' 값을 조정하면 됩니다. 이 값은 백분율(0~90%)로 지정하며, 값을 작게 하면 구멍이 작아지고 값을 크게 하면 구멍이 커져 고리가 얇아집니다.
[차트 옵션] 대화상자에 '도넛형 차트' 탭이나 '직경', '내부 차트 크기' 같은 항목은 존재하지 않으며, [보기] 메뉴에도 차트 직경을 조정하는 명령은 없습니다. 도넛 구멍 크기는 오직 계열 서식에서만 바꿀 수 있다는 점을 기억해야 합니다.
메모는 바로 가기 키(Shift+F2)나 [검토] 탭의 '새 메모'로 작성할 수 있고, [검토] 탭의 '이전'/'다음'으로 여러 메모 사이를 탐색할 수 있으며, 통합 문서에 표시된 대로 인쇄하거나 시트 끝에 모아 인쇄할 수도 있다.
다만 셀을 이동하면 해당 셀에 삽입된 메모도 수식, 결과값, 셀 서식과 함께 그대로 이동하며, 메모만 예외적으로 남겨지는 것은 아니다.
[인쇄 미리 보기]에서는 마우스로 페이지 여백을 조정할 수 있고, [페이지 설정] 대화상자의 [페이지] 탭에서 확대/축소 배율을 지정할 수 있으며, '페이지 나누기 삽입'은 선택 영역의 위쪽과 왼쪽에 페이지 나누기를 넣는 기능이다.
다만 머리글과 바닥글을 화면에서 바로 확인하며 쉽게 삽입할 수 있는 보기 방식은 페이지 레이아웃 보기이며, '페이지 나누기 미리 보기'는 페이지 구분선을 조정하기 위한 보기로 머리글·바닥글 삽입에 특화된 기능은 아니다.
숨겨진 통합 문서는 [보기]-[창]-'숨기기 취소'로 다시 표시할 수 있고, [Excel 옵션]의 [고급] 탭에서 'IntelliMouse로 화면 확대/축소'를 설정하면 Ctrl 키 없이도 마우스 휠만으로 확대·축소가 가능하며, 확대/축소 배율은 선택된 시트에만 개별 적용된다.
그러나 틀 고정은 화면에서 특정 행·열을 고정해 보여주는 기능일 뿐이며, 인쇄 시 반복할 행/열은 [페이지 설정]에서 별도로 지정해야 하는 것으로 틀 고정에 의해 자동으로 설정되지는 않는다.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 번호 | 이름 | 발령부서 | 부서명 | |
| 2 | 1 | 황현아 | 기획팀 | 기획팀 | |
| 3 | 2 | 김지민 | 재무팀 | 재무팀 | |
| 4 | 3 | 정미주 | 총무팀 | 총무팀 | |
| 5 | 4 | 오민아 | 기획팀 | ||
| 6 | 5 | 김혜린 | 재무팀 | ||
| 7 | 6 | 김윤중 | 총무팀 | ||
| 8 | 7 | 박유미 | 기획팀 | ||
| 9 | 8 | 김영주 | 재무팀 | ||
| 10 | 9 | 한상미 | 총무팀 | ||
| 11 | 10 | 서은정 | 기획팀 |
부서명 목록 [E2:E4]에는 기획팀·재무팀·총무팀 세 개가 있고, 번호 1~10에 대해 발령부서가 기획팀→재무팀→총무팀 순으로 반복되고 있습니다. 즉 번호를 3으로 나눈 나머지에 따라 INDEX의 행 번호 1, 2, 3이 순환해야 합니다.
번호가 1, 2, 3, 4…로 1부터 시작하므로 MOD(A2-1,3)+1 형태로 만들어야 합니다. A2가 1이면 MOD(0,3)+1=1, 2이면 MOD(1,3)+1=2, 3이면 MOD(2,3)+1=3, 4이면 MOD(3,3)+1=1이 되어 1→2→3→1→2→3…으로 정확히 순환합니다. 따라서 =INDEX($E$2:$E$4, MOD(A2-1,3)+1)이 기획팀·재무팀·총무팀을 순서대로 반복 배정합니다.
MOD(A2,3)만 쓰면 번호 3에서 나머지가 0이 되어 INDEX의 행 번호 0은 오류를 일으키고, MOD(A2,3)+1은 1일 때 2(재무팀)가 되어 시작이 어긋납니다. MOD(A2-1,3)만 쓰면 첫 번호에서 0이 되어 역시 오류가 납니다. 부서명 범위는 아래로 채우기 해도 고정되도록 $E$2:$E$4로 절대 참조해야 합니다.
'표준' 셀 스타일은 기본 스타일로 삭제할 수 없으며, 셀 스타일에는 글꼴, 글꼴 크기, 표시 형식, 테두리, 음영 등의 서식이 정의되어 있고, 스타일을 삭제하면 적용되어 있던 영역은 '표준' 스타일로 되돌아간다.
다만 사용자가 새로 만든 셀 스타일은 기본적으로 해당 통합 문서에만 저장되며, 다른 통합 문서에서 사용하려면 스타일을 별도로 병합하거나 복사하는 과정이 필요하다.
Worksheets.Add ( ):=Sheets(1)
제시된 코드는 Worksheets.Add ( ):=Sheets(1) 형태로, 괄호 안에 들어갈 것은 Add 메서드의 명명된 인수 이름입니다. 즉 인수이름:=값 구문에서 값으로 Sheets(1), 다시 말해 통합 문서의 첫 번째 시트를 지정한 상태입니다.
Worksheets 컬렉션의 Add 메서드는 위치를 지정하는 인수로 Before와 After를 제공합니다. Before는 지정한 시트 앞에, After는 지정한 시트 뒤에 새 시트를 삽입합니다. 문제는 첫 번째 시트 뒤에 추가하는 것이므로 After가 들어가야 하며, 완성된 문장은 Worksheets.Add After:=Sheets(1) 이 됩니다.
Left와 Right는 위치 지정 인수가 아니라 문자열에서 왼쪽·오른쪽 일부를 잘라내는 문자열 함수이므로 시트 삽입 위치와는 관계가 없습니다. Before를 쓰면 첫 번째 시트 앞, 곧 맨 앞에 새 시트가 추가되어 요구 사항과 반대가 됩니다.
Sub TEST(단가, 수량, 이름)
Dim 합계 As Long
합계 = 단가 * 수량
MsgBox 이름 & "의 금액 : "& 합계
End Sub
제시된 코드는 Sub TEST(단가, 수량, 이름)으로 선언된 서브 프로시저로, 합계 = 단가 * 수량을 계산해 이름 & "의 금액 : " & 합계를 메시지 상자로 표시합니다. 매개변수가 세 개이므로 호출할 때도 인수 세 개를 넘겨야 합니다.
VBA에서 Sub 프로시저를 호출하는 방법은 두 가지입니다. Call 키워드를 쓰면 인수를 괄호로 묶어 Call TEST(200, 500, "이순신") 형태로 적고, Call을 생략하면 괄호 없이 인수만 쉼표로 나열해 TEST 200, 500, "이순신"과 같이 적습니다. 따라서 Call 없이 괄호를 빼고 인수를 나열한 호출이 올바릅니다.
Call을 생략하면서 괄호를 쓴 TEST(200, 500, "이순신")은 인수가 두 개 이상일 때 구문 오류가 나고, Call을 쓰면서 괄호를 뺀 Call TEST 200, 500, "이순신" 역시 오류입니다. 또 등호(=)로 시작하는 형태는 워크시트에서 값을 돌려받는 함수 호출 방식이라, 반환 값이 없는 Sub 프로시저에는 쓸 수 없습니다.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 이름 | 키 | 몸무게 | ||
| 2 | 홍길동 | 165 | 67 | 몸무게 | |
| 3 | 이대한 | 170 | 69 | >=60 | |
| 4 | 한민국 | 177 | 78 | ||
| 5 | 이우리 | 162 | 58 | ||
| 6 | 김상공 | 180 | 80 |
DMIN(데이터베이스, 필드, 조건범위)는 조건을 만족하는 레코드 중에서 지정한 필드의 최솟값을 구하는 데이터베이스 함수입니다. 여기서 데이터베이스는 머리글을 포함한 [A1:C6], 필드는 2번째 열인 '키', 조건 범위는 [E2:E3]으로 몸무게 >= 60 입니다.
조건을 적용하면 몸무게가 67인 홍길동, 69인 이대한, 78인 한민국, 80인 김상공이 남고, 몸무게가 58인 이우리는 제외됩니다. 이우리의 키 162는 표 전체에서 가장 작지만 조건을 만족하지 않으므로 계산에서 빠집니다.
남은 네 사람의 키는 165, 170, 177, 180이므로 최솟값은 165가 됩니다. 조건 범위를 무시하고 전체 최솟값을 구하면 162가 되지만, DMIN은 조건에 맞는 레코드만 대상으로 한다는 점이 이 문제의 핵심입니다.
웹 페이지로 저장할 때 데이터 막대·아이콘 집합 등의 조건부 서식은 지원되지 않고, 회전된 텍스트는 제대로 표시되지 않으며, 배경 이미지 등 관련 파일은 하위 폴더에 저장된다.
그러나 웹 페이지로 저장할 때 전체 통합 문서가 아니라 일부 시트나 선택 영역만 게시하도록 지정할 수 있으므로, 일부 시트만 선택해서 저장하는 것이 불가능하다는 설명은 옳지 않다.
Access의 외부 데이터 가져오기 기능으로는 다른 Access 데이터베이스, Excel 파일, Paradox 파일 등 지원되는 형식의 데이터를 테이블로 가져올 수 있다.
그러나 압축된 zip 파일 자체는 Access가 직접 인식하여 테이블로 가져올 수 있는 데이터 형식이 아니다.
Private Sub 실행_DblClick()
Dim strSearch As String
Dim intWhere As Integer
With Me!순번
strSearch = InputBox("입력")
' Find string in text.
intWhere = InStr(.Value, strSearch)
If intWhere Then
.SetFocus
.SelStart = intWhere - 1
.SelLength = Len(strSearch)
Else
MsgBox "String not found."
End If
End With
End Sub
이 프로시저는 '실행' 컨트롤을 더블클릭했을 때 실행되며, InputBox("입력")으로 받은 문자열을 strSearch에 저장한 뒤 InStr 함수로 그 위치를 찾습니다. 찾은 위치는 intWhere에 담기고, 값이 0이 아니면 해당 컨트롤에 포커스를 준 뒤 SelStart와 SelLength로 찾은 문자열을 선택 표시합니다.
핵심은 코드가 With Me!순번 … End With 블록으로 묶여 있다는 점입니다. With 블록 안에서 점(.)으로 시작하는 .Value, .SetFocus, .SelStart, .SelLength는 모두 Me!순번 컨트롤의 속성과 메서드를 가리킵니다. 따라서 InStr(.Value, strSearch)의 .Value는 순번 컨트롤에 들어 있는 값이며, 검색어인 strSearch 변수의 값이라는 설명은 옳지 않습니다. InStr은 앞 인수(찾을 대상 문자열) 안에서 뒤 인수(찾을 문자열)의 위치를 반환합니다.
나머지 설명은 모두 맞습니다. intWhere는 Integer로 선언되어 정수만 담을 수 있으므로 10.56 같은 실수는 그대로 저장되지 않고 반올림된 정수가 들어갑니다. strSearch에는 입력 상자로 받은 값이 저장되며, 찾는 문자열이 없으면 InStr이 0을 반환해 If 조건이 거짓이 되므로 Else 분기의 'String not found.' 메시지 상자가 나타납니다.
ⓐ 조작기능 ⓑ 제어기능 ⓒ 정의기능
- ㉮ 데이터의 정확성과 보안성을 유지하기 위한 무결성, 보안 및 권한 검사, 병행 제어 등의 기능을 정의하는 기능
- ㉯ 데이터 형(type), 구조, 데이터를 이용하는 방식을 정의하는 기능
- ㉰ 데이터의 검색, 삽입, 삭제, 변경 등을 처리하기 위한 접근 수단을 정의하는 기능
DBMS의 세 가지 필수 기능은 정의기능·조작기능·제어기능입니다. 각 설명에 쓰인 핵심 낱말을 보면 어느 기능인지 바로 갈립니다.
무결성, 보안 및 권한 검사, 병행 제어를 정의한다는 설명은 데이터를 올바르고 안전하게 유지하도록 통제하는 것이므로 제어기능입니다. 데이터 형(type), 구조, 데이터를 이용하는 방식을 정의한다는 설명은 데이터베이스의 틀과 스키마를 규정하는 것이므로 정의기능입니다. 검색·삽입·삭제·변경 등을 처리하기 위한 접근 수단을 정의한다는 설명은 사용자가 실제로 데이터를 다루는 인터페이스에 해당하므로 조작기능입니다.
따라서 조작기능은 검색·삽입·삭제·변경 설명(다), 제어기능은 무결성·보안·병행 제어 설명(가), 정의기능은 데이터 형·구조 설명(나)과 짝지어져 a-다, b-가, c-나가 됩니다. 나머지 조합은 조작기능에 제어나 정의의 설명을 붙이는 식으로 적어도 하나 이상의 짝이 어긋나 있습니다.
피벗 테이블 폼은 데이터를 요약·분석하기 위한 형식으로, 필드 목록을 드래그하여 필터·행·열 영역에 손쉽게 배치할 수 있으며 [만들기] 탭 [폼] 그룹의 '기타 폼'에서 '피벗 테이블'을 선택해 만든다.
다만 피벗 테이블 폼의 스타일(자동 서식) 변경 기능은 [피벗 테이블 도구]의 디자인 관련 탭에서 제공되는 것으로, '정렬' 탭에 있는 기능은 아니다.
입력 마스크에서 L은 영문자(A~Z)가 반드시 입력되어야 하는 자리, &는 공백을 포함한 어떤 문자든 반드시 입력되어야 하는 자리, A는 영문자나 숫자가 반드시 입력되어야 하는 자리를 의미한다.
따라서 'L&A' 마스크는 세 자리를 모두 채워야 하며, 첫째 자리는 영문자, 둘째 자리는 임의의 문자, 셋째 자리는 영문자 또는 숫자여야 한다. 첫 자리가 숫자이거나 자릿수가 모자란 값은 조건을 만족하지 못하고, 영문자-숫자-영문자로 이루어진 값은 세 자리 조건을 모두 충족한다.
보고서에서 그룹 머리글의 '반복 실행 구역' 속성을 '예'로 설정하면, 하나의 그룹이 페이지 경계를 넘어 여러 페이지에 걸쳐 표시될 때 각 페이지의 시작 부분마다 해당 그룹 머리글이 다시 표시되어 어떤 그룹의 데이터인지 계속 확인할 수 있게 해 준다.
이는 매 레코드마다 표시되거나 보고서의 시작·끝에만 표시되는 것과는 다른 개념이며, 매 그룹의 시작 부분에 표시되는 것은 이 속성과 무관한 그룹 머리글의 기본 동작이다.
ⓐ 하위 폼에는 기본 폼의 현재 레코드와 관련된 레코드만 표시된다.
ⓑ 하위 폼은 단일 폼으로 표시되며 연속 폼으로는 표시될 수 없다.
ⓒ 기본 폼과 하위 폼을 연결할 필드의 데이터 형식은 같거나 호환되어야 한다.
ⓓ 여러 개의 연결 필드를 지정하려면 콜론(:)으로 필드명을 구분하여 입력한다.
하위 폼은 기본 폼 안에 삽입되어 일대다 관계의 '다' 쪽 데이터를 보여 주는 폼입니다. 기본 폼과 하위 폼은 연결 필드로 묶이므로, 기본 폼에서 현재 선택된 레코드와 관련된 레코드만 하위 폼에 표시됩니다. 이 설명은 옳습니다.
또한 두 폼을 이어 주는 '기본 필드 연결'과 '하위 필드 연결'에 지정하는 필드는 데이터 형식이 같거나 호환되어야 값이 맞춰집니다. 필드 이름은 달라도 되지만 형식이 어긋나면 연결이 되지 않으므로, 이 설명도 옳습니다.
나머지 두 설명은 틀립니다. 하위 폼은 단일 폼뿐 아니라 연속 폼이나 데이터시트 형식으로도 표시할 수 있으며, '다' 쪽 레코드를 여러 건 보여 주기 위해 오히려 데이터시트나 연속 폼이 흔히 쓰입니다. 그리고 연결 필드를 여러 개 지정할 때는 콜론이 아니라 세미콜론(;)으로 필드명을 구분해 입력해야 합니다. 따라서 옳은 설명만 고르면 관련 레코드만 표시된다는 것과 연결 필드의 데이터 형식이 같거나 호환되어야 한다는 것 두 가지입니다.
기본 키는 하나의 필드로만 지정할 수 있는 것이 아니라, 여러 필드를 묶어 복합(구성) 기본 키로 지정할 수도 있다.
또한 기본 키를 다른 필드로 다시 지정하면 기존 기본 키는 자동으로 해제되고, 기본 키로 지정된 필드는 중복이 불가능한 인덱스로 자동 설정된다.
| 회원ID | 이름 | 성별 | 학과명 |
|---|---|---|---|
| cdpark | 유용범 | 남 | 경영 |
| chaehee | 은동건 | 남 | 컴퓨터과학 |
| hspark | 문지혁 | 여 | 회계 |
| ksjang | 고민종 | 여 | 경영 |
| lesomi | 강민용 | 여 | 컴퓨터과학 |
| shyeo | 백근일 | 남 | 회계 |
[동아리회원] 테이블은 회원ID·이름·성별·학과명 네 개의 필드로 이루어져 있고, 학과명 필드에는 경영·컴퓨터과학·회계 값이 들어 있다. 실행할 때마다 사용자에게 학과명을 물어보고 그 학과의 학생만 보여 주려면 매개 변수 쿼리를 만들어야 한다.
매개 변수 쿼리는 조건 자리에 대괄호 [ ]로 묶은 안내 문구를 적는다. 쿼리를 실행하면 대괄호 안의 문구가 그대로 표시되는 [매개 변수 값 입력] 대화 상자가 열리고, 사용자가 입력한 값이 그 자리에 대입되어 조건으로 쓰인다. 따라서 where 학과명 = [학과를 입력하시오] 형태가 옳다.
같은 문구를 큰따옴표로 묶으면 그것은 문자열 상수가 되므로, 학과명 값이 실제로 '학과를 입력하시오'인 레코드를 찾게 되어 아무것도 조회되지 않는다. like로 바꾸어도 와일드카드가 없으면 결과는 마찬가지다. 또 in 뒤 괄호 안에 따옴표도 대괄호도 없이 문구를 쓰면 값이 아니라 이름(식별자)으로 해석되어 오류가 난다.
DCount 함수는 DCount(집계할 필드, 도메인(테이블/쿼리), 조건식) 형식으로 사용하며, 조건을 만족하는 레코드의 개수를 구한다.
따라서 '[학번]'을 집계 대상 필드로, '[학생]'을 도메인으로, '[점수]>=60'을 조건식으로 지정한 식이 점수가 60 이상인 학생 수를 구하는 올바른 식이다. 인수 순서를 바꾸어 테이블 이름을 첫 인수에 쓰거나, 개수가 아닌 특정 값을 찾아오는 DLookUp 함수를 쓰면 인원수를 구할 수 없다.
우편물 레이블 마법사에서는 수신자 성명 뒤에 '귀하'와 같은 문구를 추가할 수 있고, 다양한 크기의 레이블 중 선택하거나 사용자가 직접 크기를 지정할 수 있으며, 낱장 용지나 연속 용지 형식을 선택할 수 있다.
다만 레이블 보고서를 만들 때 반드시 우편번호와 주소 필드가 있어야 하는 것은 아니며, 테이블에 존재하는 필드들을 레이블 레이아웃에 자유롭게 배치하여 사용할 수 있다.
폼에 삽입된 텍스트 상자 컨트롤의 이름을 변경하려면 해당 컨트롤을 선택한 뒤 속성 창을 열고 '이름' 항목에 원하는 이름을 입력하면 된다.
바로 가기 메뉴에는 '변경'이라는 이름 바꾸기 명령이 없고, 연결된 레이블에 입력하는 것은 화면에 보이는 표시 문구를 바꾸는 것일 뿐이며, 컨트롤 안에 직접 입력하는 것은 컨트롤 원본이나 표시 내용을 바꾸는 것이어서 컨트롤의 실제 이름(Name 속성)은 변경되지 않는다.
거래처번호를 기준으로 [거래처] 테이블에 아직 없는 데이터만 추가하려면, 부속 질의(서브쿼리)에서 대상 테이블인 [거래처]를 기준으로 존재 여부를 확인해야 한다.
즉 주소록의 레코드 중 거래처 테이블에 이미 있는 거래처번호를 제외하고 나머지를 추가하는 insert into ~ select ~ where 거래처번호 not in (select 거래처번호 from 거래처) 형태가 옳다. 조건절의 서브쿼리가 주소록 자신을 대상으로 하면 추가할 레코드가 하나도 남지 않게 되며, insert 구문에 set이나 values로 다른 테이블을 지정하는 형식은 문법상 성립하지 않는다.
group by절은 지정한 필드 값이 같은 레코드들을 하나로 묶어 SUM, COUNT 같은 집계 함수로 그룹별 요약 값을 계산하고 분석할 수 있게 해 준다.
다만 그룹화된 결과에 대한 조건을 지정할 때는 WHERE절이 아니라 HAVING절을 사용해야 한다. WHERE절은 그룹화 이전의 개별 레코드를 걸러내는 데 쓰인다.
연결 테이블로 가져온 테이블을 삭제하면 연결 정보만 삭제될 뿐 원본 데이터베이스의 실제 테이블은 그대로 남아 있으므로, 원본 테이블까지 함께 삭제된다는 설명은 옳지 않다.
새 테이블로 가져온 경우에도 복사본을 삭제하는 것일 뿐 원본에는 영향을 주지 않으며, 이렇게 가져온 테이블은 원본과 독립적인 별도의 데이터이므로 이를 바탕으로 폼이나 보고서를 자유롭게 생성할 수 있다.
업체별 판매금액 합계를 보고서로 작성할 때는 업체명이나 업체번호로 그룹화하고, 그룹 머리글·바닥글에 =Sum([판매금액])과 같은 함수로 요약값을 넣으며, 본문 영역의 간격을 0으로 좁혀 목록을 촘촘하게 배치할 수 있다.
다만 전체 업체를 아우르는 총 판매금액은 매 페이지마다 반복되는 페이지 바닥글이 아니라, 보고서 전체의 끝에 한 번 표시되는 보고서 바닥글에서 구성해야 한다.
정규화는 릴레이션의 속성 간 종속성을 분석하여 데이터 중복을 최소화하고 일관성을 보장하도록 릴레이션을 분해하는 과정이며, 이때 적용되는 규칙들을 정규형이라 부른다.
다만 제1정규형을 만족한다고 해서 자동으로 제2정규형이나 제3정규형까지 만족하는 것은 아니며, 각 정규형은 더 엄격한 조건을 단계적으로 추가 요구하는 개념이다. 또한 제1정규형을 대부분의 응용프로그램에 필요한 가장 높은 수준이라고 볼 수도 없다.
SELECT 필드목록 FROM 테이블1 ( ) JOIN 테이블2 ON 테이블1.필드=테이블2.필드;
제시된 구문은 SELECT 필드목록 FROM 테이블1 ( ) JOIN 테이블2 ON 테이블1.필드=테이블2.필드; 로, ON 절의 조건에 따라 두 테이블을 연결하는 조인문이다. 괄호는 JOIN 앞에 붙어 조인의 종류를 정하는 자리다.
조인 필드의 값이 양쪽 테이블에 모두 존재하는 레코드만 결합해 결과에 표시하는 조인은 내부 조인(INNER JOIN)이다. 짝이 없는 레코드는 결과에서 아예 빠지므로 문제의 설명과 정확히 일치한다.
OUTER는 한쪽 테이블의 레코드를 짝이 없어도 모두 포함시키는 외부 조인이므로 '일치하는 것만 결합한다'는 조건에 맞지 않는다. LEFT와 RIGHT는 그 외부 조인의 방향을 가리키는 말로, 각각 왼쪽 테이블과 오른쪽 테이블의 레코드를 짝이 없어도 모두 표시한다. 또한 이들은 LEFT OUTER JOIN·RIGHT OUTER JOIN처럼 OUTER와 함께 쓰는 것이 원칙이다.
그룹별로 초기화되는 일련번호를 표시하려면 텍스트 상자의 컨트롤 원본에 '=1'을 지정하고, 누적 합계 속성을 '그룹'으로 설정해야 한다.
컨트롤 원본을 '=1'로 두면 각 레코드마다 1이라는 값이 산출되고, 누적 합계 속성이 이 값을 그룹 단위로 누적시켜 그룹이 바뀔 때마다 순번이 다시 1부터 시작하도록 만든다.
누적 합계를 '모두'로 지정하면 그룹 구분 없이 보고서 전체에서 연속된 일련번호가 매겨지므로 그룹별 순번을 원하는 경우에는 적합하지 않으며, 컨트롤 원본을 '+1'로 지정하는 방식도 올바른 설정이 아니다.
매크로에서 외부 응용 프로그램을 실행할 때 사용하는 함수는 RunApp이다. 실행할 프로그램의 경로와 인수를 지정해 액세스 밖의 외부 프로그램을 구동할 수 있다.
RunCommand는 액세스 내장 명령을 실행하는 함수이고, RunMacro는 다른 매크로를 실행하는 함수이며, RunSQL은 SQL 문을 실행하는 함수로 외부 프로그램 실행과는 관련이 없다.