[컴퓨터활용능력 1급 필기] 12년 1회차 시험지 PDF 다운로드
12년 1회차
라우터는 네트워크에서 데이터를 목적지까지 보내는 데 가장 적합한 경로를 선택하여 전송하고, 그 과정에서 데이터의 흐름을 제어하는 장치이다.
여러 회선을 통합 관리하여 여러 대의 컴퓨터를 연결하는 장치는 허브, 신호를 재생하거나 출력 전압을 높여 장거리 전송을 돕는 장치는 리피터, 서로 다른 네트워크 간 데이터 출입구 역할을 하는 장치는 게이트웨이에 해당하므로 라우터에 대한 설명과는 구별된다.
ASP(Active Server Pages)는 서버 측에서 동적으로 처리되어 실행 결과만 클라이언트로 전달되는 언어이며, 클라이언트 측에서 동적으로 수행된다는 설명은 옳지 않다.
JSP가 자바 기반으로 서버 측에서 동작하는 언어라는 설명, PHP가 다양한 운영체제에서 사용 가능하다는 설명, XML이 문서의 구조적 특성을 고려해 상호 교환 가능하도록 설계된 언어라는 설명은 모두 옳다.
웹 사이트 접속 기록과 사용자의 기본 설정 정보를 저장하는 텍스트 파일은 쿠키(Cookie)이다.
스팸은 불필요하게 대량으로 발송되는 메시지, 패스워드는 인증에 사용하는 비밀번호, 애플릿은 웹 브라우저에서 실행되는 작은 프로그램을 가리키는 용어로 쿠키와는 구별된다.
USB(Universal Serial Bus)는 이름 그대로 직렬(Serial) 버스 방식의 인터페이스이며, 범용 병렬 버스 장치를 위한 것이라는 설명은 옳지 않다.
플러그 앤 플레이를 지원하는 외부 버스라는 설명, 컴퓨터를 끄거나 재시작하지 않고도 장치를 연결·해제할 수 있다는 설명, 카메라·CD-ROM 드라이브·스캐너 등 주변기기를 연결할 수 있다는 설명은 모두 USB의 실제 특징과 일치한다.
ASF는 마이크로소프트가 개발한 통합 멀티미디어 형식으로, 파일 용량이 작으면서도 음질이 우수해 인터넷 방송 등 스트리밍 서비스에 주로 사용된다.
애플이 개발해 Quick Time으로 재생하는 방식은 MOV, 동화상 전문가 그룹이 제정한 국제 표준 압축 규격은 MPEG 계열의 설명이며, Windows Media Player로만 재생 가능한 형식이라는 설명은 ASF의 실제 재생 환경과 다르므로 구별된다.
보조기억장치를 주기억장치처럼 사용하여 실제 주기억장치 용량보다 더 큰 기억 공간을 사용할 수 있게 하는 것은 가상기억장치(Virtual Memory)의 특징이다. 연관 메모리는 주소가 아니라 저장된 내용(데이터)을 기준으로 검색하는 메모리를 의미하므로, 이 설명은 연관 메모리가 아니라 가상기억장치에 대한 설명이다.
RAM이 DRAM과 SRAM으로 구분되는 읽고 쓰기가 가능한 반도체 메모리라는 설명, 하드디스크 인터페이스 방식에 EIDE·SATA·SCSI 등이 있다는 설명, 캐시 메모리가 CPU와 주기억장치 사이에서 속도 차이를 줄여준다는 설명은 모두 옳다.
스풀(SPOOL) 기능은 상대적으로 느린 프린터 출력 작업을 하드디스크에 임시로 저장한 뒤 처리하여, 프린터가 인쇄하는 동안에도 다른 작업을 계속할 수 있게 해 주는 기능이다.
다만 인쇄할 내용을 디스크에 저장했다가 다시 읽어 출력하는 과정을 거치므로, 인쇄가 완료되기까지 걸리는 실제 출력 속도 자체는 스풀을 사용하지 않을 때보다 오히려 느려질 수 있다. 스풀의 이점은 속도 향상이 아니라 프린터 작업과 다른 작업을 동시에 처리할 수 있는 효율성에 있다.
문서 전체를 스풀한 뒤 인쇄를 시작할지, 일부만 스풀한 뒤 시작할지를 선택할 수 있다는 설명은 스풀 옵션의 실제 동작과 일치한다.
점과 점을 연결한 직선·곡선으로 이미지를 표현하는 방식은 벡터(Vector) 방식의 특징이며, 비트맵 방식은 픽셀(점)의 집합으로 이미지를 표현한다.
비트맵은 다양한 색상을 표현할 수 있어 사진과 같은 사실적인 이미지 표현에 적합하지만, 이미지를 확대하면 픽셀 단위가 그대로 커져 테두리가 거칠게(계단현상) 보인다는 단점이 있다.
BMP, TIF, GIF, JPEG 등은 대표적인 비트맵 파일 형식이다.
NTFS는 대용량 볼륨 지원, 파일 및 폴더 단위의 보안(액세스 제어), 압축, 자동 오류 복구 등을 제공하는 파일 시스템이지만, 최소 볼륨 크기 요건 등으로 인해 플로피 디스크와 같은 소용량 저장장치에는 사용할 수 없어 모든 디스크 드라이브에서 범용으로 쓸 수 있는 시스템은 아니다.
이론적으로 지원 가능한 최대 볼륨 크기가 매우 크고, 파일 및 폴더에 대한 액세스 제어와 제한된 계정 지원, 그리고 파일 크기가 볼륨 크기 이내로 제한된다는 설명은 NTFS의 특징과 일치한다.
셰어웨어(Shareware)는 정식 프로그램의 구매를 유도하기 위해 기능이나 사용 기간 등에 제한을 두어 무료로 배포하는 프로그램을 말한다.
모든 기능을 정식 대가를 지불하고 사용하는 것은 상용 소프트웨어, 오류 수정이나 성능 향상을 위한 프로그램은 패치(업데이트) 프로그램, 배포 전 테스트 목적으로 제작하는 프로그램은 베타 버전에 해당한다.
디스크 조각 모음은 디스크에 흩어져 저장된 파일 조각들을 재배치하여 접근 속도를 향상시키는 기능일 뿐, 파일을 삭제하거나 압축하는 것이 아니므로 디스크의 여유 공간 자체를 늘려주지는 않는다.
휴지통 비우기, 디스크 정리를 통한 임시 파일 삭제, 사용하지 않는 프로그램 제거는 모두 불필요한 데이터를 실제로 삭제하여 여유 공간을 확보하는 방법이다.
Anonymous FTP는 별도의 개인 계정 없이 'anonymous' 등의 공용 계정으로 로그인하여 공개된 파일을 다운로드할 수 있도록 지원하는 서비스이므로, 자신만의 계정이 있어야 한다는 설명은 옳지 않다.
FTP는 인터넷을 통해 컴퓨터 간 파일을 주고받는 서비스이며, 파일을 제공하는 컴퓨터를 FTP 서버라 하고, 파일의 형식에 따라 문자(아스키) 모드와 이진(바이너리) 모드로 구분하여 전송한다.
시스템에 방화벽이 있는 경우 외부와의 통신을 위해 만들어 놓은 것으로, 방화벽 안쪽에 있는 서버들의 외부 연결은 이것을 통하여 이루어지며, 연결 속도를 올리기 위해서 다른 서버로부터 목록을 캐시하는 시스템이다.
제시된 설명은 두 가지 기능을 말하고 있다. 하나는 방화벽 안쪽 서버들이 외부와 통신할 때 반드시 거쳐 가는 중계 역할이고, 다른 하나는 다른 서버에서 받아온 내용을 캐시해 두었다가 같은 요청에 빠르게 응답하는 역할이다. 이 둘을 함께 수행하는 것이 프록시 서버다.
프록시 서버는 내부 사용자를 대신해 외부에 요청을 보내므로 내부 주소를 감추는 방화벽 보조 기능을 하고, 자주 쓰이는 자료를 저장해 두어 응답 시간을 줄이는 캐시 기능도 한다.
웹 서버는 웹 문서를 제공하는 서버, FTP 서버는 파일 전송을 담당하는 서버이며, 클라이언트/서버는 특정 서버의 이름이 아니라 작업을 요청하는 쪽과 처리하는 쪽으로 나눈 처리 구조를 가리키는 개념이므로 설명과 맞지 않는다.
유니코드(Unicode)는 세계 각국의 문자를 하나의 코드 체계로 통일하기 위해 만들어졌지만, 2바이트(16비트) 체계를 기본으로 하므로 4바이트 체계라는 설명은 옳지 않다.
BCD 코드는 6비트로 64가지 문자를 표현하며 영문 소문자를 표현할 수 없고, ASCII 코드는 7비트로 128가지 문자를 표현하여 데이터 통신이나 PC에서 널리 쓰이며, EBCDIC 코드는 8비트로 256가지 문자를 표현할 수 있다.
와이브로(Wibro)는 이동 중에도 초고속 인터넷 접속이 가능한 무선 휴대 인터넷 서비스로, 고정된 장소에서만 사용할 수 있다는 설명은 와이브로의 특징과 맞지 않는다.
유비쿼터스는 시간과 장소에 구애받지 않고 네트워크에 접속할 수 있는 환경을 의미하며, VoIP는 음성 데이터를 인터넷 프로토콜 패킷으로 변환해 데이터망에서 통화를 가능하게 하는 기술, RFID는 전파를 이용해 정보를 인식하는 기술로 출입·주차 관리 등에 활용된다.
크래커는 시스템에 불법으로 침입해 피해를 주는 대상이므로, 이를 지속적으로 양성하는 것은 컴퓨터 범죄에 대한 대비책이 아니라 오히려 범죄를 조장하는 행위이다.
바이러스 예방·치료 프로그램의 지속적 개발, 방화벽과 해킹 방지 시스템 설치, 정기적인 보안 검사는 모두 실제 컴퓨터 범죄 예방을 위한 대비책에 해당한다.
여러 개의 실행 중인 프로그램(창) 사이에서 활성 창을 전환하는 바로 가기 키는 [Alt]+[Tab]이며, [Ctrl]+[Tab]은 같은 프로그램 안에서 탭이나 문서를 전환할 때 사용하므로 설명이 옳지 않다.
[Alt]+[Enter]는 선택한 개체의 속성(등록 정보) 창을 표시하고, [Shift]+[F10]은 바로 가기 메뉴를 표시하며, [Ctrl]+[Esc]는 시작 메뉴를 여는 기능으로 각각 올바른 설명이다.
메모장은 서식 없는 순수한 텍스트만 편집할 수 있는 프로그램이므로, 문서에 그림을 삽입하는 기능은 제공하지 않는다.
문자·단어 찾기 및 바꾸기, 텍스트의 잘라내기·복사·붙여넣기·삭제, 글꼴 스타일과 크기 변경 등은 메모장에서 지원하는 기본 기능이다.
Windows 작업 관리자는 실행 중인 프로그램과 프로세스, CPU·메모리 사용량 확인 및 강제 종료, 시스템 종료·다시 시작 등을 수행하는 도구이며, 사용자 계정을 추가하거나 삭제하는 기능은 제공하지 않는다.
계정 추가·삭제는 작업 관리자가 아닌 별도의 사용자 계정 관리 항목에서 처리하는 작업이다.
다음번에 실행할 명령어의 번지를 기억하는 프로그램 카운터(Program Counter)는 제어장치(Control Unit)의 구성 요소이며, 연산장치(ALU)에 포함되는 레지스터가 아니다.
연산장치는 산술·논리·관계·이동 연산을 수행하며, 뺄셈을 위해 값을 보수로 바꾸는 보수기와 덧셈을 수행하는 가산기를 가지고, 연산 결과를 임시로 저장하는 누산기를 포함한다.
| A | |
|---|---|
| 1 | 54,832,820 |
워크시트의 [A1] 셀 값은 54,832,820이다. 앞의 세 수식이 쓰는 자릿수 인수 3-LEN(INT(A1))은 INT(A1)이 54832820으로 8자리이므로 3-8 = -5가 되어, 마지막 수식이 직접 적어 준 -5와 같은 값이 된다. 즉 네 수식 모두 십만 단위에서 자리를 처리한다.
ROUND(A1, -5)는 그 아래 자리인 만 자리 숫자가 3이므로 내림되어 54,800,000이고, ROUNDDOWN(A1, -5)은 무조건 버리므로 역시 54,800,000, TRUNC(A1, -5)도 십만 미만을 잘라 내 54,800,000이 된다.
반면 ROUNDUP(A1, -5)은 아래 자리 값과 관계없이 무조건 올리므로 54,900,000이 되어 혼자 다른 값을 낸다. 따라서 무조건 올림하는 ROUNDUP 수식이 결과가 다른 수식이다.
같은 열에 날짜, 숫자, 텍스트 등 서로 다른 형식의 데이터가 섞여 있는 경우 자동 필터는 항상 텍스트 필터가 아니라, 해당 열에서 가장 많은 비중을 차지하는 데이터 형식을 기준으로 필터 메뉴를 표시한다.
같은 열에서 여러 항목을 동시에 선택해 데이터를 추출할 수 있고, 필터로 추출된 데이터는 항상 레코드(행) 단위로 표시되며, 숫자로만 이루어진 열에는 색 기준 필터와 숫자 필터를 동시에 적용할 수 없다.
Option Base 1
Dim No(3, 4, 2) As Integer
선언문은 Option Base 1과 Dim No(3, 4, 2) As Integer 두 줄이다. Option Base 1은 배열 첨자의 시작 번호를 1로 바꾸므로 각 차원의 첨자 범위는 1~3, 1~4, 1~2가 된다.
따라서 이 배열의 첫 번째 요소는 No(1, 1, 1)이며, 첨자가 0부터 시작한다고 본 설명은 옳지 않다. No(0, 0, 0)이 첫 요소가 되는 것은 Option Base 선언이 없거나 Option Base 0일 때다.
나머지 설명은 모두 맞다. 괄호 안에 숫자가 셋이므로 3차원 배열이고 요소 수는 3×4×2 = 24개이며, As Integer로 선언했으므로 모든 요소의 데이터 형식은 Integer다. 구조로 보면 4행 2열 테이블이 3면으로 겹쳐진 모양이다.
마우스 포인터를 열 머리글의 오른쪽 경계선에 놓고 더블 클릭하면 해당 열의 내용 길이에 맞춰 너비가 자동으로 조정되는 것이며, 왼쪽 경계선에서 더블 클릭했을 때 열 너비가 기본값으로 복원되는 것은 아니다.
채우기의 연속 데이터 유형에는 선형, 급수, 날짜, 자동 채우기가 있고, 키보드로 연속된 셀 범위를 선택할 때는 [F8](확장 모드)을 사용하며, 열 머리글을 선택해 숨기면 해당 열의 너비는 0으로 표시된다.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 학년 | 성명 | 국어 | 영어 | 수학 |
| 2 | 1학년 | 홍길동 | 80 | 90 | 80 |
| 3 | 2학년 | 김기동 | 80 | 80 | 90 |
| 4 | 1학년 | 황길동 | 50 | 60 | 71 |
| 5 | |||||
| 6 | 1학년 국어 평균 | ||||
시트에는 1학년 홍길동의 국어 80점, 2학년 김기동의 국어 80점, 1학년 황길동의 국어 50점이 들어 있다. 구해야 할 값은 1학년 두 명의 국어 평균, 즉 (80+50)÷2 = 65다.
{=AVERAGE(IF(A2:A4="1학년",C2:C4))}는 조건에 맞지 않는 항목이 FALSE가 되고 AVERAGE가 논리값을 무시하므로 80과 50만 평균해 65를 낸다. AVERAGEIF와 AVERAGEIFS는 애초에 조건을 만족하는 셀만 평균하는 함수이므로 역시 65를 반환한다.
그러나 {=AVERAGE((A2:A4="1학년")*(C2:C4))}는 조건 비교 결과를 1과 0으로 바꿔 점수와 곱하므로 {80, 0, 50}이라는 배열이 만들어지고, AVERAGE가 0까지 포함해 세 값을 평균한다. 결과는 130÷3 ≒ 43.3으로 1학년 평균이 아니다. 조건에 맞지 않는 행이 0으로 남아 분모에 들어가는 것이 잘못된 이유다.
사용자가 작성한 서식(템플릿) 파일은 기본적으로 'Templates' 폴더에 저장된다.
일반 서식 파일의 확장자는 'xltx'이고 매크로가 포함된 서식 파일은 'xltm'이며, 'xlam'은 추가 기능 파일의 확장자이다. 기본 서식 파일을 새로 만들 때는 워크시트는 'Sheet', 통합 문서는 'Book'이라는 이름으로 저장해야 하며, 행·열·시트 숨기기나 통합 문서 보호를 적용한 상태로도 서식 파일을 작성할 수 있다.
사용자 지정 표시 형식에서 별표(*) 바로 뒤에 오는 문자는 남는 열 너비를 채우는 반복 문자를 지정하는데, 서식 코드가 '*0#,##0'이라면 반복해서 채워야 할 문자는 '0'이다. 그런데 결과가 별표(*)로 채워진 형태로 표시되어 있어, 서식 코드가 지시하는 채움 문자와 실제 표시된 결과가 일치하지 않는다.
'*-#,##0'은 '-' 문자로, '**#,##0'은 '*' 문자 자체로 남는 공간을 채우도록 지정한 것이므로, 이 서식들이 각각 하이픈과 별표로 채워진 결과를 보이는 것은 서식 코드와 부합한다.
자동 페이지 나누기의 위치는 용지 크기, 여백, 배율뿐 아니라 행 높이와 열 너비의 변경에 따라서도 다시 계산되어 달라지므로, 변경하더라도 위치가 변하지 않는다는 설명은 옳지 않다.
[페이지 나누기 미리보기]에서 사용자가 수동으로 삽입한 페이지 나누기는 실선으로 표시되고, 이를 제거하려면 미리 보기 영역 밖으로 끌어내면 되며, 용지 크기나 여백·배율 설정에 따라 자동 페이지 나누기가 삽입된다는 설명은 모두 옳다.
기본 차트로 지정된 차트를 삽입할 때 [F11]을 누르면 별도의 차트 시트에 삽입되고, 현재 워크시트에 삽입하려면 [Alt]+[F1]을 눌러야 한다. [Alt]+[F11]은 차트 삽입과 무관하게 Visual Basic Editor를 여는 바로 가기 키이므로, 이 설명은 옳지 않다.
차트는 차트 영역, 그림 영역, 계열, 항목 축, 값 축, 범례, 제목 등의 구성 요소로 이루어지며, 자주 사용하는 차트를 기본 차트로 지정해 활용할 수 있다. 또한 거품형 차트와 대부분의 3차원 차트는 다른 차트 종류와 혼합하여 혼합형 차트로 만들 수 없다.
머리글/바닥글에서 페이지 번호를 나타내는 항목은 '&[페이지 번호]' 형태의 필드 코드로 삽입되며, 이 코드 앞뒤에 원하는 문자를 그대로 입력하면 그 문자가 페이지마다 고정으로 함께 표시된다. '-&[페이지 번호] Page -'와 같이 입력하면 하이픈과 'Page', 하이픈 사이에 실제 페이지 번호가 표시되는 형태로 출력된다.
'[페이지 번호]' 앞에 '&' 기호 없이 대괄호만 입력하면 필드 코드로 인식되지 않아 문자 그대로 표시되며, 코드 뒤에 불필요한 '&' 기호가 추가로 들어가면 형식이 깨져 의도한 페이지 번호가 올바르게 표시되지 않는다.
| A | B | |
|---|---|---|
| 1 | 상품 | 개수 |
| 2 | 바나나 | 1 |
| 3 | 오렌지 | #N/A |
| 4 | 사과 | 3 |
| 5 | 배 | TRUE |
| 6 | 귤 | 5 |
시트의 [B3]에는 #N/A 오류, [B4]에는 숫자 3, [B5]에는 논리값 TRUE가 들어 있다.
ISERR는 여러 오류 중 #N/A만 제외하고 나머지 오류를 TRUE로 판정하는 함수다. 따라서 =IFERROR(ISERR(B3),"ERROR")에서 ISERR(#N/A)는 FALSE가 되고, 그 자체가 오류값이 아니므로 IFERROR는 대체값을 쓰지 않고 FALSE를 그대로 표시한다.
나머지 세 수식은 모두 TRUE를 표시한다. ISERROR는 #N/A를 포함한 모든 오류에 TRUE를 돌려주고, [B5]의 TRUE는 논리값이므로 ISLOGICAL이 TRUE, [B4]의 3은 숫자이므로 ISNUMBER가 참이 되어 IF의 참일 때 값인 TRUE가 나온다. 결국 #N/A를 ISERR로 검사한 수식만 FALSE로 다른 결과가 된다.
Sub range연습()
Range("B1", "B5").Value = 10
End Sub
프로시저의 본문은 Range("B1", "B5").Value = 10 한 줄이다. Range 개체에 인수를 두 개로 나누어 주면 두 셀을 양쪽 모서리로 하는 사각 범위를 뜻하므로 이는 Range("B1:B5")와 같다.
따라서 [B1] 셀부터 [B5] 셀까지 다섯 개 셀 모두에 10이 입력된다. 두 셀에만 값을 넣으려면 Range("B1, B5")처럼 큰따옴표 하나 안에 쉼표로 나열해야 하며, 인수를 콤마로 분리한 이번 형식과는 의미가 다르다.
지정된 범위가 B열에만 걸쳐 있으므로 1행부터 5행 전체가 채워지지도 않고, 문법상 문제가 없는 구문이라 오류도 발생하지 않는다.

시트를 보면 성적 90이 [D2]에 있고, 바꿔 볼 값인 가중치 10%, 20%, 30%, 40%, 50%가 [B4:B8]에 세로로 나열되어 있다. 수식이 놓인 [C3]에는 =D2*A2가 들어 있는데 [A2]가 비어 있어 화면에는 0이 표시된 상태다.
데이터 표에서는 바꿀 값이 열 방향(세로)으로 나열되어 있으면 '열 입력 셀'에, 행 방향(가로)으로 나열되어 있으면 '행 입력 셀'에 수식이 참조하는 변수 셀 주소를 지정한다. 여기서 가중치가 대입되어야 할 자리는 수식 =D2*A2 안의 [A2]이므로 대화상자의 [열 입력 셀]에 $A$2를 입력해야 한다.
확인을 누르면 [C4:C8]에는 열 입력 셀만 채워진 형태의 배열 수식 {=TABLE(,A2)}가 설정된다. TABLE의 첫 인수 자리는 행 입력 셀, 쉼표 뒤 둘째 인수 자리는 열 입력 셀에 해당하므로 열만 지정한 경우 앞자리가 비고 쉼표 다음에 A2가 온다. 성적 셀인 $D$2는 바꿀 값이 아니라 고정된 값이므로 입력 셀로 지정하지 않는다.

시나리오 요약 보고서를 보면 변경 셀은 $B$2로 현재 값 1,250, '판매량 감소' 1,100, '판매량 증가' 1,400이 비교되어 있고, 결과 셀은 $D$2로 각각 ₩6,250,000 · ₩5,500,000 · ₩7,000,000이 표시되어 있다.
엑셀 시나리오에서 하나의 시나리오에 지정할 수 있는 변경 셀은 최대 32개다. 64개까지 지정할 수 있다는 설명은 옳지 않다.
나머지는 보고서의 내용 그대로다. 변경 셀 [B2]의 판매량이 바뀔 때 결과 셀 [D2]의 금액이 어떻게 달라지는지 예측하는 것이 시나리오이며, 그러려면 결과 셀은 수식이어야 하고 그 수식이 변경 셀을 참조하고 있어야 한다. 또 변경 셀로 지정한 셀에 수식이 들어 있으면 시나리오를 만들 때 그 값이 자동으로 상수로 바뀌어 저장된다.
개인용 매크로 통합 문서는 엑셀을 시작할 때마다 자동으로 함께 열리며 숨겨진 상태로 동작하는 특수한 통합 문서로, 파일 이름은 'PERSONAL.XLSB'로 저장된다.

제시된 대화상자는 통합 문서 보호의 '구조 및 창 보호'로, 보호할 대상에서 구조와 창이 모두 선택되어 있고 암호까지 지정된 상태다.
'구조'를 보호하면 시트의 삽입·삭제·이동·복사·이름 바꾸기·숨기기 같은 시트 구성 변경 작업을 할 수 없다. '창'을 보호하면 새 창·창 나누기·틀 고정·창 크기 조절 등 창을 다루는 작업이 막히고, 통합 문서를 열 때마다 창이 같은 크기와 위치로 유지된다.
그러나 통합 문서 보호는 시트 안의 데이터 작업까지 막지는 않는다. 셀에 값을 입력하거나 수식을 고칠 수 있고 피벗 테이블 보고서 작성이나 부분합 같은 데이터 분석도 그대로 실행할 수 있으므로, 이런 분석 작업을 할 수 없다는 설명은 옳지 않다. 데이터 입력 자체를 막으려면 워크시트 보호를 따로 설정해야 한다.
- 데이터의 불규칙한 간격이나 묶음을 보여주는 것으로, 주로 과학, 공학용 데이터 분석에 사용된다.
- 3차원 차트로 작성할 수 없다.
- 데이터 요소 간의 차이점보다는 큰 데이터 집합 간의 유사점을 표시하려는 경우에 사용한다.




제시된 특징은 데이터의 불규칙한 간격이나 묶음을 보여 주고 과학·공학용 데이터 분석에 주로 쓰이며, 3차원 차트로는 작성할 수 없고, 데이터 요소 간의 차이보다 큰 데이터 집합 간의 유사점을 나타낼 때 쓴다는 것이다. 이는 분산형(XY) 차트에 대한 설명이다.
분산형 차트는 가로축과 세로축이 모두 값 축이어서 두 변수의 상관관계를 점의 분포로 보여 준다. 보기 그림 가운데 축 안쪽에 선 없이 표식(점)만 흩어져 찍힌 차트가 여기에 해당한다.
표식을 선으로 이어 항목별 추세를 나타내는 꺾은선형, 세로 선과 짧은 가로 표식으로 고가·저가·종가의 변동을 나타내는 주식형, 꺾은선 아래를 색으로 채워 크기의 누적을 강조하는 영역형은 모두 위 특징과 맞지 않는다.

그림은 부분합을 실행한 뒤 윤곽 기호로 하위 수준을 접어 냉장고 요약(재고량 90, 주문량 90), 세탁기 요약(270, 250), 전자레인지 요약(270, 265), 총합계(630, 605)만 화면에 보이게 한 상태이며(행 번호가 1, 4, 9, 13, 14로 건너뛴다), 이 요약 행만 아래쪽에 복사한 결과를 함께 보여 준다.
윤곽을 접어도 숨겨진 상세 행은 여전히 선택 범위 안에 남아 있다. 그래서 [A1:C14]를 그냥 복사해 붙여넣으면 보이지 않는 상세 행까지 함께 붙여넣어진다. 요약 행만 옮기려면 범위를 선택한 다음 [찾기 및 선택]-[이동 옵션]에서 '화면에 보이는 셀만'을 골라 표시된 셀만 선택 대상으로 만든 뒤 복사·붙여넣기 해야 한다.
'현재 셀이 있는 영역'은 인접한 데이터 블록 전체를 선택하는 옵션이라 숨은 행이 그대로 포함되고, 선택하여 붙여넣기의 '내용 있는 셀만 붙여넣기'는 원본의 빈 셀이 대상 값을 덮어쓰지 않게 하는 기능, '값'은 수식을 결과 값으로 바꾸는 기능이어서 어느 것도 숨겨진 행을 걸러 내지 못한다.
=FACT(TRUNC(PI()))에서 TRUNC(PI())는 원주율(약 3.14159…)의 소수점 이하를 버려 3이 되고, FACT(3)은 3의 계승(3×2×1)이므로 결과는 6이 되어야 한다. 결과가 3이라는 설명은 계산이 맞지 않는다.
=FIXED(40899.4928,-2,TRUE)는 소수점 왼쪽 두 자리(백의 자리)로 반올림하여 40900을 반환하고, =ROUNDUP(PI(),0)은 원주율을 정수 자리에서 올림하여 4를 반환하므로 이 결과들은 올바르다.

그림의 [매크로 기록] 대화상자에는 매크로 이름에 'Macro3', 바로 가기 키에 'Ctrl+Shift+E', 매크로 저장 위치에 '현재 통합 문서'가 지정되어 있고 설명란은 비어 있습니다. 각 항목의 입력 규칙을 정확히 알고 있어야 풀 수 있는 문항입니다.
바로 가기 키 입력란에 넣을 수 있는 문자는 영문자 한 글자뿐입니다. 숫자나 특수문자, 한글은 지정할 수 없으며, 소문자를 넣으면 Ctrl+영문자, 대문자를 넣으면 그림처럼 Ctrl+Shift+영문자 조합이 됩니다. 따라서 '영문자와 숫자만 가능하다'는 설명은 숫자를 허용한다는 점에서 잘못된 서술입니다.
나머지 항목의 규칙은 모두 옳습니다. 매크로 이름은 첫 글자가 반드시 문자여야 하고 두 번째 글자부터 문자·숫자·밑줄(_)을 쓸 수 있으며 공백은 쓸 수 없습니다. 저장 위치는 개인용 매크로 통합 문서·새 통합 문서·현재 통합 문서 세 가지 중에서 고릅니다. 또한 Ctrl+C처럼 엑셀에 이미 할당된 바로 가기 키도 지정할 수 있는데, 이때는 매크로의 바로 가기 키가 엑셀 기본 기능보다 우선합니다.
FindNext 매크로 함수는 이전에 지정한 조건식(예: FindRecord)을 만족하는 레코드 중 현재 위치 다음에 오는 레코드를 찾아 이동하는 기능이며, 조건을 만족하는 첫 번째 레코드를 찾는 것이 아니므로 이 설명은 옳지 않다.
ApplyFilter는 쿼리나 테이블에서 조건에 맞는 레코드를 검색·표시하고, CancelEvent는 진행 중인 이벤트를 취소하며, GotoControl은 활성화된 폼에서 포커스를 지정한 컨트롤로 이동시키는 기능으로 각각의 설명은 옳다.
데이터 보안, 무결성, 회복 등에 관한 사항을 정의하는 것은 데이터 제어어(DCL)의 역할이며, 데이터 조작어(DML)는 데이터의 검색·삽입·삭제·변경과 같은 조작을 담당하므로 이 설명은 DML의 특징으로 옳지 않다.
DML은 사용자와 DBMS 사이에서 데이터를 처리하는 인터페이스를 제공하는 언어이며, 절차를 직접 명시하는 절차적 언어와 결과만 명시하는 비절차적 언어로 구분된다.
[상황]
- [제품] 테이블의 '분류코드'는 [분류] 테이블의 '분류코드'를 참조한다.
- '분류코드' 체계를 변경하기 위해 [분류] 테이블의 '분류코드' 필드 값을 변경하려 하였더니 "관련 레코드가 제품' 테이블에 있으므로 레코드를 삭제하거나 변경할 수 없습니다.'라는 오류 메시지가 나타났다.
제시된 상황은 [분류] 테이블의 '분류코드'를 [제품] 테이블이 참조하고 있고, 두 테이블 사이에 참조 무결성이 설정된 관계가 맺어져 있음을 보여 줍니다. 이 상태에서 부모 쪽인 [분류]의 '분류코드' 값을 바꾸려 하면 자식 쪽 [제품]에 짝이 맞지 않는 값이 남게 되므로 "관련 레코드가 있으므로 레코드를 삭제하거나 변경할 수 없습니다"라는 오류가 발생합니다.
이런 경우 관계 편집 창에서 '관련 필드 모두 업데이트'를 체크하면, 기본 키 쪽인 [분류] 테이블의 '분류코드'를 수정할 때 이를 참조하는 [제품] 테이블의 '분류코드' 값이 자동으로 함께 갱신됩니다. 따라서 두 테이블에 변경 내용이 한 번에 반영됩니다.
관계를 아예 해제하고 수정하면 참조 무결성이 사라져 [제품]의 값이 옛 코드 그대로 남아 데이터가 어긋나고, 자식 테이블인 [제품]의 '분류코드'를 먼저 고치는 방법도 [분류]에 없는 값을 넣는 셈이라 참조 무결성 위반으로 막힙니다. 코드 체계 변경은 부모 테이블의 기본 키를 고치고 자식이 따라오게 하는 것이 올바른 순서입니다.
select 사원명 from 사원
where 부서 = '영업부' and
거주지 in (select 거주지 from 사원
where 부서 = '개발부');
이 질의는 하위 질의(서브쿼리)를 사용한 형태입니다. 안쪽의 select 거주지 from 사원 where 부서 = '개발부'가 먼저 실행되어 개발부 사원들의 거주지 목록을 만들어 냅니다.
바깥 질의는 부서 = '영업부' 조건으로 대상을 영업부 사원으로 한정한 다음, 거주지 in (…) 조건으로 그 사원의 거주지가 앞서 구한 개발부 거주지 목록에 포함되는 경우만 남깁니다. 즉 두 조건이 AND 로 묶여 '영업부에 속하면서, 거주지가 개발부 사원의 거주지와 일치하는' 사원만 걸러집니다.
최종적으로 출력되는 열은 select 절에 적힌 사원명이므로, 결과는 개발부 사원들과 거주지가 같은 영업부 사원의 이름이 됩니다. IN 은 일치하는 값을 고르는 연산자이므로 '다른 거주지'로 해석하면 안 되고, 그런 결과를 얻으려면 NOT IN 을 써야 합니다. 또한 최종 조회 대상이 영업부라는 점(개발부가 아님)에 주의해야 합니다.
레이블(Label) 컨트롤은 값을 입력받거나 선택할 수 없는 정적인 텍스트 컨트롤로, 포커스를 받을 수 없어 탭 순서 설정 대상에서 자동으로 제외된다.
언바운드 개체 틀, 명령 단추, 토글 단추 등은 사용자와 상호작용하며 포커스를 받을 수 있는 컨트롤이므로 탭 순서에 포함된다.
'txt매출수량<500'이면 저조로 처리한 뒤, 이어지는 IIf에서 다시 'txt매출수량>=500'을 조건으로 검사하면 이미 500 이상인 값만 남은 상태이므로 이 조건은 항상 참이 되어 결과가 무조건 보통으로만 표시되고, 1,000 이상인 값을 우수로 분류하는 갈래는 실행될 수 없다. 따라서 이 컨트롤 원본은 의도한 평가 기준을 올바르게 반영하지 못한다.
500 미만을 먼저 걸러낸 뒤 1,000 이상 여부로 우수와 보통을 구분하거나, 1,000 이상을 먼저 우수로 판정한 뒤 500 이상 여부로 보통을 가리는 방식, 또는 500 이상을 먼저 걸러낸 뒤 그 안에서 1,000 미만 여부로 보통과 우수를 나누는 방식은 모두 1,000 이상은 우수, 500 이상 1,000 미만은 보통, 500 미만은 저조로 올바르게 분류한다.
폼에 연결할 데이터의 테이블 이름이나 쿼리를 입력하여 설정
폼이 어떤 데이터를 보여 줄지 결정하는 속성이 레코드 원본입니다. 여기에는 테이블 이름이나 쿼리 이름을 직접 입력할 수도 있고, SQL 문을 작성해 넣거나 작성기를 통해 만들 수도 있습니다. 레코드 원본이 지정되지 않은 폼은 데이터에 연결되지 않은 바운드되지 않은 폼이 됩니다.
나머지 속성은 성격이 다릅니다. 기본 보기는 폼을 열었을 때 단일 폼·연속 폼·데이터시트 등 어떤 모양으로 표시할지 정하고, 캡션은 폼 제목 표시줄에 나타날 문자열을 정합니다.
레코드 잠금은 여러 사용자가 동시에 편집할 때 레코드를 어떤 방식으로 잠글지(잠그지 않음, 모든 레코드, 편집한 레코드) 지정하는 속성으로, 데이터 원본을 연결하는 것과는 무관합니다.
회원 등급을 변경하는 SQL문은 대상을 준회원으로 한정해야 하므로 WHERE 절에 등급이 '준회원'인 조건을 포함해야 하며, 액세스에서 날짜 값을 조건에 사용할 때는 문자열이 아니라 '#날짜#' 형식으로 표기해야 한다. 가입일이 2010-10-16 이전이면서 등급이 준회원인 조건을 '#2010-10-16#'과 함께 명시한 문장이 이 요건을 모두 충족한다.
날짜를 따옴표로 감싼 문자열로 표기하거나 등급이 준회원이라는 조건을 빠뜨리면, 날짜 비교가 의도대로 동작하지 않거나 준회원이 아닌 회원까지 변경될 수 있다.
그룹 바닥글은 그룹화된 레코드들의 합계나 개수 같은 요약 정보를 각 그룹의 맨 아래에 표시하는 역할을 한다.
보고서 머리글은 모든 페이지가 아니라 보고서의 맨 처음(첫 페이지 상단)에 한 번만 표시되며, 실제 데이터가 레코드 단위로 반복해서 표시되는 부분은 페이지 머리글이 아니라 본문(세부 구역)이다. 또한 구역 선택기는 각 구역을 선택하여 그 구역의 속성을 지정할 때 사용하는 것으로, 보고서 전체를 선택하거나 보고서 속성을 지정할 때 사용하는 것은 보고서 선택기이다.
텍스트 상자: Text6 / [데이터] 탭
| 컨트롤 원본 | =[Pages] & "의" & [page] & "페이지" |
| 입력 마스크 | |
| 기본값 |
그림의 텍스트 상자(Text6) 속성 시트를 보면 컨트롤 원본이 =[Pages] & "의" & [page] & "페이지" 로 설정되어 있습니다. 여기서 [Pages] 는 보고서의 전체 페이지 수, [Page] 는 현재 페이지 번호를 돌려주는 내장 식이고, & 는 좌우 값을 이어 붙이는 문자열 연결 연산자입니다.
전체 페이지가 10페이지이고 현재가 3번째 페이지이므로 [Pages]에는 10, [Page]에는 3이 들어갑니다. 식을 순서대로 이어 붙이면 10 → "의" → 3 → "페이지" 가 되어 화면에는 10의3페이지 가 표시됩니다.
이 식은 [Pages]가 [Page]보다 앞에 놓여 있다는 점이 핵심입니다. 흔히 쓰는 '3의 10페이지' 형태를 얻으려면 =[Page] & "의 " & [Pages] & "페이지" 처럼 순서를 바꿔야 하고, 큰따옴표 안의 글자는 공백까지 적힌 그대로 출력되므로 식에 없는 공백이나 하이픈은 나타나지 않습니다.
[만들기] 탭의 [폼] 그룹에서 선택할 수 있는 명령에는 폼, 폼 디자인, 빈 폼, 여러 항목, 폼 마법사, 피벗 차트, 피벗 테이블, 탐색 등이 있으며, 매크로는 [폼] 그룹이 아니라 별도의 개체 그룹에서 만드는 항목이다.
[일반] 탭
| 필드 크기 | 10 |
| 형식 | |
| 입력 마스크 | |
| 캡션 | |
| 기본값 | |
| 유효성 검사 규칙 | Like "A????" |
| 유효성 검사 텍스트 | 유효성 확인입니다. |
| 필수 | 아니요 |
| 빈 문자열 허용 | 아니요 |
| 인덱스 | 예(중복 불가능) |
| 유니코드 압축 | 예 |
| IME 모드 | 영숫자 반자 |
| IME Sentence 모드 | 없음 |
| 스마트 태그 |
그림의 필드 속성에서 유효성 검사 규칙은 Like "A????", 유효성 검사 텍스트는 유효성 확인입니다. 로 설정되어 있습니다. Like 연산자에서 물음표(?)는 임의의 문자 한 개를 뜻하므로, 이 규칙은 첫 글자가 A 이고 그 뒤에 문자가 정확히 4개 더 붙은 총 5자인 값만 허용합니다.
물음표는 자릿수를 정확히 요구하기 때문에 'A12'처럼 5자보다 짧은 값은 통과하지 못합니다. 즉 '5자 이내'가 아니라 반드시 5자여야 하며, 글자 수에 제한 없이 A로 시작하기만 하면 되도록 하려면 별표를 쓴 Like "A*" 형태여야 합니다.
또한 유효성 검사 텍스트는 입력값이 규칙을 만족하지 못했을 때 사용자에게 보여 줄 경고 메시지를 담는 속성입니다. 규칙에 맞는 값을 넣으면 아무 메시지 없이 그대로 저장되고, 규칙을 어겼을 때만 "유효성 확인입니다."라는 메시지가 나타납니다.
액세스에서 테이블 이름에는 공백을 포함시킬 수 있으므로, 공백을 포함할 수 없다는 설명은 옳지 않다.
다만 같은 데이터베이스 안에서 테이블 이름과 쿼리 이름을 동일하게 설정할 수는 없고, 마침표(.)나 느낌표(!), 작은따옴표('), 대괄호([]) 같은 특수 문자는 개체 이름에 사용할 수 없으며, 테이블 이름과 필드 이름은 서로 같게 설정할 수 있다.
txt조회.AutoTab = True
End Sub
txt조회.SetFocus
End Sub
txt조회.AutoTab = True
End Sub
txt조회.SetFocus
End Sub
폼을 여는 시점에 실행되는 이벤트는 Form_Load이며, 여기서 특정 컨트롤에 SetFocus 메서드를 실행하면 폼이 열리자마자 그 컨트롤로 커서(포커스)가 자동으로 이동한다.
Click 이벤트는 사용자가 해당 컨트롤을 직접 클릭해야 실행되므로 폼이 열리자마자 자동으로 포커스를 이동시키는 용도로는 적절하지 않고, AutoTab 속성은 입력한 글자 수가 필드 크기에 도달했을 때 자동으로 다음 컨트롤로 이동시키는 기능으로 포커스 이동과는 다른 목적을 가진다.
정렬된 보고서에서 같은 그룹(지역) 안에 동일한 값이 반복될 때, 그 값을 그룹의 맨 처음에만 표시하고 이후 반복되는 값은 감추려면 해당 컨트롤의 '중복 내용 숨기기' 속성을 '예'로 설정하면 된다.
확장 가능 속성은 컨트롤의 내용에 맞춰 세로 크기를 늘릴지 여부를 지정하고, 누적 합계 속성은 값을 그룹별 또는 전체 누계로 표시할지를 지정하며, 표시 속성은 컨트롤 자체를 화면이나 인쇄물에 나타낼지 여부를 지정하는 것으로 각각 다른 기능이다.
직원(사번, 성명, 부서명, 주소, 전화, 이메일)
부서(부서명, 팀장, 팀원수)
두 릴레이션은 직원(사번, 성명, 부서명, 주소, 전화, 이메일) 과 부서(부서명, 팀장, 팀원수) 이며, 밑줄이 그어진 사번과 부서명이 각 테이블의 기본 키입니다.
외래 키는 한 테이블의 속성 중 다른 테이블의 기본 키를 참조하는 속성을 말합니다. 여기서 직원 테이블의 '부서명'은 부서 테이블의 기본 키인 '부서명'의 값을 그대로 가져다 쓰며, 이를 통해 어떤 직원이 어느 부서 소속인지 두 테이블이 연결됩니다. 따라서 외래 키는 직원 테이블의 부서명입니다.
직원 테이블의 사번과 부서 테이블의 부서명은 자기 테이블을 식별하는 기본 키일 뿐 다른 테이블을 참조하지 않고, 부서 테이블의 팀장·팀원수는 어느 테이블의 기본 키도 참조하지 않는 일반 속성이므로 외래 키가 될 수 없습니다.
SELECT 언어+수리 ( ) FROM 성적;
SQL 문은 SELECT 언어+수리 ( ) FROM 성적; 형태이고, 괄호는 계산식 바로 뒤 즉 필드 이름(별칭)을 붙이는 자리입니다.
SELECT 절에서 계산 결과나 함수 결과에 원하는 이름을 붙일 때는 AS 예약어를 사용합니다. 따라서 SELECT 언어+수리 AS 합계 FROM 성적; 로 작성하면 두 필드를 더한 값이 '합계'라는 이름의 열로 표시됩니다.
NAME IS, ALIAS, TO 는 SQL에서 별칭을 지정하는 예약어가 아니어서 문법 오류가 납니다. 참고로 AS 는 생략하고 SELECT 언어+수리 합계 처럼 이름만 이어 써도 되며, 별칭에 공백이 들어가는 경우에는 대괄호로 묶어 [총 합계] 와 같이 씁니다.
'영동1단지'에서 세 번째 글자인 '1'만 추출하려면 시작 위치와 추출할 글자 수를 지정할 수 있는 MID 함수를 사용해 mid("영동1단지", 3, 1)과 같이 쓰면 세 번째 글자부터 한 글자, 즉 '1'을 얻을 수 있다.
LEFT 함수는 문자열의 왼쪽에서부터, RIGHT 함수는 오른쪽에서부터 지정한 글자 수를 가져오므로 원하는 위치의 글자 하나만 정확히 추출할 수 없고, INSTR 함수는 특정 문자열이 나타나는 위치(숫자)를 반환하는 함수로 문자를 추출하는 함수가 아니다.
연결 테이블은 다른 데이터베이스에 있는 원본 테이블을 연결만 해서 사용하는 것이므로, 연결 테이블을 삭제해도 연결 정보만 없어질 뿐 원본 데이터베이스의 실제 테이블은 삭제되지 않는다.
새 테이블로 가져온 경우에는 원본과 독립된 별도의 테이블이 생성되므로 이를 삭제해도 원본 테이블에는 영향이 없으며, 이렇게 가져온 테이블을 바탕으로 폼이나 보고서를 만들 수 있다.
텍스트 필드를 그룹화할 때는 전체 값이 정확히 일치하는 경우뿐 아니라, 앞의 일정한 문자 수가 같은 경우로도 그룹화 기준을 지정할 수 있으므로, 전체 값이 일치할 때만 같은 그룹으로 인식한다는 설명은 옳지 않다.
그룹화된 레코드는 내부적으로 다시 하위 그룹으로 나눌 수 있고, 날짜/시간 필드는 연도·분기·월 등 세부 단위로 그룹화할 수 있으며, 그룹마다 머리글과 바닥글을 지정하여 요약 정보를 표시할 수 있다.