셰어웨어(Shareware)는 일정 기간이나 일부 기능만 무료로 제공한 뒤 계속 사용하려면 정식 등록·결제를 요구하는 소프트웨어로, 체험판인 데모버전과 성격이 가장 비슷하다.
프리웨어는 기간이나 기능 제한 없이 전부 무료로 배포되는 소프트웨어이고, 포스트카드웨어는 저작자에게 엽서를 보내는 것으로 사용 대가를 대신하는 특수한 형태, 상용 소프트웨어는 처음부터 값을 지불해야 정식으로 사용할 수 있는 프로그램이므로 체험 목적의 데모버전과는 거리가 있다.
텔레매틱스는 차량에 부착된 센서와 통신 장치로 위치·상태 정보를 실시간으로 주고받는 서비스로, 사물에 센서를 달아 정보를 수집·활용하는 유비쿼터스 센서 네트워크(USN)의 대표적인 활용 분야다.
테더링은 스마트폰의 인터넷 회선을 다른 기기와 공유하는 기능, 블루투스는 근거리 기기 간 무선 연결 규격, 고퍼는 초창기 인터넷의 문서 검색 프로토콜로 모두 센서 네트워크 활용과는 관련이 없다.
마이크로프로세서는 제어장치와 연산장치를 하나의 반도체 칩에 집적한 장치이며, 주기억장치는 별도의 메모리 소자(RAM)로 구성되므로 마이크로프로세서 칩 안에 포함되지 않는다.
클럭 주파수와 내부 버스의 비트 수로 성능을 평가하고, 집적된 트랜지스터 수에 따라 처리 속도가 좌우되며, 임베디드 기기부터 슈퍼컴퓨터까지 폭넓게 쓰인다는 설명은 모두 마이크로프로세서의 특징과 일치한다.
ASCII 코드는 7비트로 문자를 표현하며, 필요할 때 패리티 비트 1개를 덧붙여 전송 오류를 검출할 수 있을 뿐, 오류를 스스로 고치는 오류 교정 비트는 갖고 있지 않다. 따라서 에러 검출 비트 2개와 교정 비트 1개를 포함한다는 설명은 옳지 않다.
3개의 Zone 비트와 4개의 Digit 비트를 더한 7비트로 하나의 문자를 표현해 128가지 문자를 나타낼 수 있고, 데이터 통신용으로 쓰이며, 확장 ASCII는 8비트로 문자를 표현하므로 나머지 설명은 모두 옳다.
BIOS는 부팅과 하드웨어 제어를 담당하는 펌웨어 프로그램으로 ROM(플래시 메모리)에 저장되며, CMOS는 이 BIOS 코드가 아니라 부팅에 필요한 하드웨어 설정값·시간 정보를 저장하는 별도의 반도체다.
부팅 시 Delete나 F2 키로 CMOS 셋업 화면을 열 수 있고, BIOS가 POST·시스템 초기화·부트 과정을 제어하며, CMOS가 하드웨어 정보를 담고 있다는 설명은 모두 옳다.
애드웨어(Adware)는 프로그램 안에 광고를 넣어 이를 보는 대가로 무료로 사용할 수 있게 만든 소프트웨어다.
- 스파이웨어는 사용자 동의 없이 정보를 몰래 수집하는 악성 프로그램으로 광고 시청과는 무관하다.
- 프리웨어는 광고 없이도 완전히 무료로 배포되는 소프트웨어다.
- 셰어웨어는 광고가 아니라 체험 기간이나 기능 제한을 통해 사용 여부를 유도하는 방식이다.
VOD(Video-On-Demand)는 다양한 영상 정보를 데이터베이스로 구축해 두고 사용자가 원하는 시간에 원하는 콘텐츠를 볼 수 있게 하는 주문형 멀티미디어 서비스다.
- 폴링은 여러 단말을 순서대로 검사해 전송할 데이터가 있는지 확인하는 통신 회선 제어 방식이다.
- P2P는 서버를 거치지 않고 개인 컴퓨터끼리 직접 자료를 주고받는 방식이다.
- VCS는 원격지 사람들이 화면과 음성으로 동시에 회의하는 화상 회의 시스템이다.
와이브로(Wibro)는 이동 중에도 사용할 수 있는 휴대용 광대역 무선 인터넷 서비스로, '고정된 장소에서만' 이용한다는 설명은 와이브로의 이동성이라는 핵심 특징과 어긋난다.
IoT가 사물에 센서를 달아 사물 간 정보를 주고받는 기술이라는 점, VoIP가 음성을 인터넷 프로토콜로 전송해 통화를 가능하게 하는 기술이라는 점, RFID가 전파로 정보를 인식하는 기술이라는 점은 모두 옳은 설명이다.
디지털 워터마크는 이미지·오디오·비디오 파일 안에 저작권 정보를 식별할 수 있는 특정 비트 패턴을 삽입해 두는 기술이다.
디지털 인증서는 공개키와 신원 정보를 증명하는 전자 문서이고, 디지털 서명은 작성자를 인증하고 위·변조를 막기 위한 암호화 기술이며, 단순한 디지털 기록은 저작권 식별과 직접 관련이 없는 저장 개념이라는 점에서 워터마크와 구분된다.
무선 액세스 포인트(WAP)는 유선 네트워크와 무선 단말을 연결해 주는 브리지 역할만 수행할 뿐, 라우터 기능뿐 아니라 방화벽이나 스위치 기능도 기본적으로 갖고 있지 않다.
무선 LAN을 구성하려면 AP가 있어야 하고, 전파가 닿는 거리는 안테나 성능과 장애물의 영향을 받으며, 사용자가 늘어나면 확장 포인트를 추가해 처리 용량을 늘릴 수 있다는 설명은 모두 옳다.
앨리어싱(Aliasing)은 곡선이나 사선을 화면에 표현할 때 생기는 계단 현상 그 자체를 가리키는 용어이며, 이를 부드럽게 없애는 작업은 안티앨리어싱이라고 부른다.
렌더링이 3차원 형상에 명암과 질감을 입혀 입체감 있는 화면을 만드는 작업이고, 모핑이 두 이미지를 자연스럽게 연결해 변화시키는 기법이며, 디더링이 제한된 색상을 섞어 새로운 색을 표현하는 기법이라는 설명은 모두 옳다.
일반적으로 Ultra-3 SCSI 방식은 IDE 방식보다 전송 속도가 빠른 고성능 인터페이스이므로, SCSI 하드디스크를 IDE 방식으로 바꾸는 것은 오히려 속도가 느려지는 결과를 가져와 업그레이드로 볼 수 없다.
그래픽 카드를 가속 기능이 있는 제품으로 바꾸면 화면 표시 속도가 빨라지고, RAM 용량을 늘리는 것이 메모리 업그레이드이며, 클록 속도는 헤르츠(Hz) 단위로 높을수록 처리 속도가 빠르다는 설명은 모두 옳다.
스트리밍(Streaming) 기술은 동영상 파일을 전부 내려받을 때까지 기다리지 않고 전송되는 데이터를 순차적으로 바로 재생할 수 있게 해 준다.
- 필터링은 유해 정보를 걸러내는 기술로 실시간 재생과는 관련이 없다.
- 모핑은 두 이미지를 부드럽게 변형·연결하는 그래픽 기법이다.
- 렌더링은 3차원 모델에 명암과 질감을 입혀 화면에 표현하는 과정이다.
공유 폴더를 통한 감염을 막으려면 불필요한 공유를 해제하거나 접근 권한·암호를 설정해야 하며, 단순히 폴더 속성을 숨김으로 지정하는 것은 네트워크를 통한 바이러스 감염을 막는 실질적인 방법이 되지 못한다.
외부 파일을 받으면 바이러스 검사를 먼저 수행하고, 발신자가 불분명한 전자우편은 열지 않고 삭제하며, 백신 프로그램을 주기적으로 업데이트해 검사하는 것은 모두 올바른 예방 수칙이다.
다음 중 스마트 TV, 자동차 내비게이션, 셋톱박스와 같이 특정 기능을 수행하는 기기에 내장되어 하드웨어를 제어하는 임베디드 운영체제로 가장 적절한 것은?
임베디드 리눅스는 스마트 TV, 자동차 내비게이션, 셋톱박스 같은 특정 기기에 내장되어 하드웨어를 직접 제어하는 임베디드 운영체제로 널리 쓰인다.
Java는 운영체제가 아니라 프로그래밍 언어이자 실행 플랫폼이고, IIS는 웹 서버 소프트웨어, Microsoft SQL Server는 데이터베이스 관리 시스템(DBMS)으로 모두 하드웨어를 제어하는 운영체제가 아니다.
다음 중 Windows 10의 [휴지통]에 대한 설명으로 옳지 않은 것은?
휴지통에 담긴 파일의 총량이 지정된 최대 크기를 넘으면 먼저 삭제되어 오래 보관된 파일부터 자동으로 지워지는 것이지, 파일 용량이 큰 것부터 지워지는 것이 아니다.
휴지통 속성에서 드라이브별로 최대 크기를 MB 단위로 따로 지정할 수 있고, Shift+Delete로 지우거나 이동식 디스크·네트워크 드라이브에서 지운 파일은 휴지통을 거치지 않고 바로 삭제되며, 휴지통 안의 실행 파일은 더블클릭해도 실행되지 않고 원래 위치로 복원한 뒤에야 실행하거나 이름을 바꿀 수 있다는 설명은 모두 옳다.
다음 중 Windows 10의 [파일 탐색기]에서 직접 수행할 수 있는 작업으로 옳지 않은 것은?
파일 탐색기의 리본 메뉴에는 컴퓨터를 다시 시작하거나 시스템을 종료하는 명령이 없으므로, 리본 메뉴에서 직접 재시작·종료를 수행할 수 있다는 설명은 옳지 않다.
여러 파일을 선택해 [공유] 탭에서 압축하거나 압축을 풀 수 있고, [내 PC]의 [컴퓨터] 탭에서 설정 앱을 열거나 네트워크 드라이브를 연결할 수 있으며, 주소 표시줄에 '휴지통'을 입력해 휴지통 도구 탭에서 비우기·복원을 수행할 수 있다는 설명은 모두 옳다.
다음 중 MPEG 규격별 특징과 용도에 대한 설명으로 옳지 않은 것은?
콘텐츠의 제작부터 유통·소비까지 전 과정을 관리하고 지식재산권 관리(DRM) 체계를 포함하는 통합 프레임워크는 MPEG-21이며, MPEG-7은 멀티미디어 콘텐츠를 검색·식별하기 위한 메타데이터(내용 기술) 표준이다.
MPEG-1이 CD 저장 매체용 동영상·오디오 압축 표준으로 비디오 CD와 MP3의 기반이 되고, MPEG-2가 DVD와 디지털 TV 방송에 쓰이는 고화질 압축 표준이며, MPEG-4가 낮은 전송률에서도 동영상을 전송할 수 있어 인터넷 스트리밍과 모바일 기기에 널리 쓰인다는 설명은 모두 옳다.
다음 중 컴퓨터에서 사용하는 자료 표현 단위에 대한 설명으로 옳지 않은 것은?
워드(word)의 크기는 컴퓨터(CPU 아키텍처)마다 16비트·32비트·64비트 등으로 달라지는 처리 단위이며, 모든 컴퓨터에서 항상 4바이트로 고정되어 있는 것은 아니다.
비트가 0 또는 1을 나타내는 정보의 최소 단위로 n개의 비트가 2의 n제곱 가지 상태를 표현한다는 점, 니블이 4비트로 구성되어 16진수 한 자리를 표현한다는 점, 바이트가 8비트로 구성되어 256가지 상태를 표현하는 문자 표현의 기본 단위라는 점은 모두 옳은 설명이다.
다음 중 GPU(Graphics Processing Unit)에 대한 설명으로 옳지 않은 것은?
GPU는 그래픽 카드처럼 별도의 부품으로도 제공되지만, CPU 안에 함께 들어간 내장 그래픽 형태로도 널리 쓰이고 있으므로 그래픽 카드 형태로만 존재한다는 설명은 옳지 않다.
수백~수천 개의 작은 코어로 같은 연산을 대량의 데이터에 동시에 처리하는 병렬 처리 장치라는 점, 3D 렌더링뿐 아니라 딥러닝 학습 등 범용 연산(GPGPU)에도 활용된다는 점, CPU는 소수의 고성능 코어로 순차 처리에 강하고 GPU는 단순 연산의 대량 병렬 처리에 강하다는 대비는 모두 옳은 설명이다.
[DBNum2] 표시 형식은 숫자를 갖은자(한자 대문자)로 표시하므로, 14500에 [DBNum2]G/표준을 적용하면 壹萬四阡伍百으로 나타나 결과가 옳다.
- 24678에 #.## 형식을 적용하면 소수 자릿수가 없어도 소수점은 표시되므로 결과는 '24678.'이 된다.
- 2005-04-05에 mm-dd 형식을 적용하면 월과 일이 두 자리 숫자로 표시되어 '04-05'가 된다.
- 0.457에 0% 형식을 적용하면 백분율의 소수 이하가 반올림되어 '46%'가 된다.
페이지 구분선과 페이지 번호가 화면에 표시되는 것은 페이지 나누기 미리 보기 상태이며, [기본] 보기에서는 이러한 표시가 나타나지 않는다.
워크시트 일부만 인쇄 영역으로 지정할 수 있고, 인쇄가 시작되는 페이지 번호를 지정할 수 있으며, 눈금선이나 행/열 머리글을 인쇄하도록 설정할 수 있다는 설명은 모두 옳다.

옳은 수식은 {=INDEX($C$10:$C$13, MATCH(MONTH(A2)&B2, $B$10:$B$13&$A$10:$A$13, 0))*C2} 입니다. 찾을 값과 찾을 범위를 같은 순서(월&제품명)로 결합했기 때문입니다.
단가표 [A9:C13]은 허브차 10월 1,500원, 11월 2,000원, 아로마비누 10월 3,000원, 11월 4,000원입니다.
[D2] 계산 과정
① MONTH(A2)&B2 = "10허브차"
② $B$10:$B$13&$A$10:$A$13 = {"10허브차","11허브차","10아로마비누","11아로마비누"}에서 첫 번째 항목과 일치
③ INDEX 결과 1,500 × 수량 35 = 52,500
MONTH(A2),B2처럼 쉼표로 나누면 MATCH의 인수 구성이 달라져 원하는 결합값을 찾지 못합니다. $A$10:$A$13&$B$10:$B$13은 '허브차10'처럼 순서가 반대로 결합되어 '10허브차'와 일치하지 않습니다.





옳은 조건은 필드명을 '영어중간값'처럼 원본에 없는 이름으로 두고 =$D2>MEDIAN($D$2:$D$10)을 입력하는 것입니다. 성명 조건은 ="=?영*"로 입력합니다.
영어 점수 80·90·91·85·80·81·92·86·87을 오름차순으로 정렬하면 다섯 번째 값인 86이 중간값입니다. 수식을 쓰는 조건은 원본 필드명과 다른 이름을 제목으로 써야 하므로 '영어'를 제목으로 쓴 조건표는 올바르지 않습니다.
'?'는 한 글자, '*'는 여러 글자를 뜻하므로 ?영*은 두 번째 글자가 '영'인 이름입니다. 반면 *영*은 '영'이 어디에든 포함된 이름을 모두 찾아 조건과 다릅니다.

[C1] 셀에 입력하는 수식 =A1+B1+C1이 자기 자신인 C1을 참조하므로 순환 참조 경고 메시지 창이 표시됩니다.
그림에서 [A1]=0, [B1]=100이고 [C1]은 비어 있는 선택 셀입니다. 수식이 직접 또는 간접적으로 자신이 입력된 셀을 참조하면 계산이 끝나지 않으므로 엑셀이 경고를 표시합니다.
- #REF!는 삭제되었거나 존재하지 않는 셀을 참조할 때 나타납니다.
- #NUM!은 숫자 인수가 잘못되었거나 계산 결과가 너무 크거나 작을 때 나타납니다.
- 데이터 유효성 오류 메시지는 유효성 검사 규칙이 설정된 셀에 조건에 맞지 않는 값을 입력할 때 나타납니다.
셀에 입력된 내용을 수정하지 못하게 막는 기능은 시트 보호이며, 통합 문서 보호는 시트의 추가·삭제·이동·숨기기 등 통합 문서의 구조와 창 배치를 보호하는 기능이므로 암호를 지정해도 워크시트 내용 자체의 수정을 막지는 못한다.
시트 보호가 문서 전체가 아닌 특정 시트만을 대상으로 한다는 점, 공유된 통합 문서를 여러 사용자가 동시에 변경·병합할 수 있다는 점, 통합 문서 구조를 잠가 시트 추가·삭제나 숨겨진 시트 표시를 막을 수 있다는 점은 모두 옳은 설명이다.

결과가 다른 수식은 =ROUNDUP(A1,3-LEN(INT(A1)))이며, 이 수식만 54,900,000을 반환합니다.
[A1] 셀 값은 54,832,820입니다.
INT(A1)=54832820 → LEN(…)=8 → 자릿수 인수 3-8=-5입니다(십만 자리까지 남김).
- ROUND(A1,-5): 만 자리 3이 5 미만이라 버림 → 54,800,000
- ROUNDDOWN(A1,-5): 무조건 내림 → 54,800,000
- TRUNC(A1,-5): 지정 자릿수 아래를 버림 → 54,800,000
- ROUNDUP(A1,-5): 무조건 올림 → 54,900,000

옳지 않은 수식은 {=AVERAGE((A2:A4="1학년")*(C2:C4))}입니다. 조건 불일치 행도 0으로 평균에 포함되기 때문입니다.
시트에서 1학년은 홍길동(국어 80)과 황길동(국어 50)이고, 2학년 김기동은 국어 80입니다. 올바른 1학년 국어 평균은 (80+50)÷2=65입니다.
곱셈 배열식은 {80, 0, 50}을 만들어 (80+0+50)÷3≒43.33이 되어 틀립니다. 반면 AVERAGE(IF(…))는 조건이 거짓인 행을 FALSE로 제외하고, AVERAGEIF(A2:A4,"1학년",C2:C4)와 AVERAGEIFS(C2:C4,A2:A4,"1학년")도 조건에 맞는 값만 평균하므로 모두 65를 구합니다.
숫자와 문자가 함께 있는 텍스트 데이터를 채우기 핸들로 드래그하면 숫자 부분만 1씩 증가하고 문자 부분은 그대로 복사되어 채워진다.
- 일반 문자 데이터는 그대로 복사되지만 날짜 데이터는 그대로 복사되지 않고 하루씩 증가하며 채워진다.
- 숫자 데이터 한 셀만 채우기 핸들로 드래그하면 값이 증가하지 않고 그대로 복사되는 것이 기본 동작이다.
- 숫자가 입력된 두 셀을 블록 설정해 드래그하면 두 값이 단순 반복되는 것이 아니라 두 값의 차이만큼 일정하게 증가·감소하는 계열로 채워진다.

그림은 부분합을 실행한 뒤 윤곽 기호로 하위 수준을 접어 냉장고 요약(재고량 90, 주문량 90), 세탁기 요약(270, 250), 전자레인지 요약(270, 265), 총합계(630, 605)만 화면에 보이게 한 상태이며(행 번호가 1, 4, 9, 13, 14로 건너뛴다), 이 요약 행만 아래쪽에 복사한 결과를 함께 보여 준다.
윤곽을 접어도 숨겨진 상세 행은 여전히 선택 범위 안에 남아 있다. 그래서 [A1:C14]를 그냥 복사해 붙여넣으면 보이지 않는 상세 행까지 함께 붙여넣어진다. 요약 행만 옮기려면 범위를 선택한 다음 [찾기 및 선택]-[이동 옵션]에서 '화면에 보이는 셀만'을 골라 표시된 셀만 선택 대상으로 만든 뒤 복사·붙여넣기 해야 한다.
'현재 셀이 있는 영역'은 인접한 데이터 블록 전체를 선택하는 옵션이라 숨은 행이 그대로 포함되고, 선택하여 붙여넣기의 '내용 있는 셀만 붙여넣기'는 원본의 빈 셀이 대상 값을 덮어쓰지 않게 하는 기능, '값'은 수식을 결과 값으로 바꾸는 기능이어서 어느 것도 숨겨진 행을 걸러 내지 못한다.
)'를 클릭한다.리본 메뉴는 창 오른쪽 위의 리본 메뉴 축소 단추를 클릭하거나, 활성 탭 이름을 더블 클릭하거나, 단축키 Ctrl+F1을 눌러 최소화(축소)할 수 있고, 같은 방법으로 다시 펼칠 수 있다.
Alt+F1은 리본 메뉴와 관계없는 단축키로, 선택한 데이터 범위로 현재 시트에 기본 차트를 삽입하는 기능이다. 따라서 Alt+F1을 누른다는 설명이 옳지 않다.
R1C1 참조 방식에서 RC[-2]는 현재 셀 기준으로 같은 행에서 왼쪽으로 두 번째 셀을, RC[-1]은 바로 왼쪽 셀을 가리키므로, ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]" 이 두 셀을 곱하는 수식을 올바르게 지정한다.
대괄호 안의 숫자가 양수(RC[2], RC[1])이면 왼쪽이 아니라 오른쪽 셀을 가리키므로 문제의 조건과 방향이 반대가 된다. 또한 R1C1 표기는 FormulaR1C1 속성에 따옴표로 묶은 수식 문자열로 지정해야 하며, 따옴표 없이 Value 속성에 RC[-2]*RC[-1]처럼 대입하면 VBA가 이를 셀 참조로 해석하지 못해 원하는 수식을 셀에 넣을 수 없다.
날짜 데이터를 채우기 핸들로 드래그했을 때 나타나는 자동 채우기 옵션에는 일 단위, 평일 단위, 월 단위, 연 단위 채우기가 있을 뿐, 주 단위 채우기라는 옵션은 제공되지 않는다.
일 단위는 하루씩, 평일 단위는 토·일요일을 건너뛰고 하루씩, 월 단위는 같은 날짜를 유지한 채 한 달씩, 연 단위는 같은 날짜를 유지한 채 한 해씩 증가시키는 방식으로 날짜를 채워 준다.

[수정 전] 차트는 ‘전반기 매출 실적’의 세로 축이 0부터 800,000까지 100,000씩 일정한 간격으로 매겨져 있다. 그래서 약 690,000인 3월만 크게 솟고 수만 원 수준인 1월·2월 막대는 바닥에 붙어 거의 보이지 않아 값의 차이를 읽을 수 없다.
[수정 후] 차트의 세로 축 눈금은 1, 10, 100, 1,000, 10,000, 100,000, 1,000,000으로 10배씩 커지는 로그 눈금으로 바뀌었다. 축 서식의 축 옵션에서 로그 눈금 간격을 10으로 설정하면 이렇게 되며, 자릿수 차이가 큰 자료도 작은 값의 막대까지 함께 비교할 수 있게 된다.
최소값·최대값을 바꾸거나 주 단위를 조정하는 것은 눈금이 여전히 등간격이므로 작은 값이 묻히는 문제가 해결되지 않는다. 표시 단위를 백만으로 지정하는 것도 축에 적히는 숫자 표기만 간단해질 뿐 막대 길이의 비율은 그대로여서 [수정 후]와 같은 모양이 되지 않는다.
매크로에 지정한 바로 가기 키가 엑셀의 기본 바로 가기 키와 겹치면 매크로 바로 가기 키가 우선 적용되므로, 엑셀 고유의 바로 가기 키가 우선한다는 설명은 옳지 않다.
매크로 기록 시 셀 참조는 기본적으로 절대 참조로 기록되고 상대 참조로 기록하려면 별도로 '상대 참조로 기록'을 선택해야 하며, 매크로 레코더는 작업 완료에 필요한 모든 단계를 기록하되 리본 메뉴 탐색 자체는 기록 대상에 포함되지 않는다는 설명은 옳다. 개인용 매크로 통합 문서에 저장한 매크로는 엑셀을 시작할 때마다 자동으로 로드되어 다른 통합 문서에서도 사용할 수 있다는 설명 역시 옳다.

실행 결과 화면에는 [A1]에 Name, [B1]에 Address가 입력되어 있고 마지막에 [B2] 셀이 선택된 상태이다. 코드는 Sub Macro1() 안에서 [ⓐ]("A1").Select → ActiveCell.[ⓑ] = "Name" → [ⓐ]("B1").Select → ActiveCell.[ⓑ] = "Address" → [ⓐ]("B2").[ⓒ] 순으로 실행된다.
ⓐ는 "A1"·"B1"·"B2"처럼 셀 주소 문자열을 인수로 받는다. Range는 Range("A1") 형태로 주소 문자열을 그대로 쓰지만, Cells는 Cells(1, 1)처럼 행 번호와 열 번호를 숫자로 받으므로 여기에 올 수 없다.
ⓑ는 활성 셀에 값을 대입하는 속성 자리로, 매크로 기록기가 자동으로 만들어 내는 FormulaR1C1이 들어간다. R1C1은 참조 스타일의 이름일 뿐 속성이 아니어서 대입식에 쓸 수 없다.
ⓒ는 [B2]에 대해 수행할 동작인데, 결과 화면에서 [B2]가 선택되어 있으므로 Select가 들어간다. 따라서 순서대로 Range - FormulaR1C1 - Select이다.
꺾은선의 선 색상이나 표식 스타일을 바꾸려면 해당 선(데이터 계열)을 선택한 뒤 바로 가기 메뉴에서 데이터 계열 서식을 실행해 서식 창을 열어야 한다.
차트 종류 변경은 그래프의 형태 자체(막대·꺾은선 등)를 바꾸는 기능이고, 데이터 선택은 차트에 사용할 데이터 범위를 조정하는 기능이며, 추세선 추가는 데이터의 추세를 나타내는 별도의 선을 삽입하는 기능으로 선이나 표식의 서식과는 관련이 없다.
다음 중 Excel 2021에서 통합 문서를 저장할 때 사용하는 파일 형식에 대한 설명으로 옳지 않은 것은?
Excel 97-2003 형식(*.xls) 파일을 열어 편집한 뒤 저장하면 원래 형식인 xls로 그대로 저장되며, 별도로 [다른 이름으로 저장]에서 형식을 바꾸지 않는 한 xlsx로 자동 변환되지 않는다.
VBA 매크로가 포함된 통합 문서를 xlsx로 저장하면 매크로 코드가 사라지므로 매크로를 보존하려면 xlsm으로 저장해야 하고, 서식 파일은 xltx, 매크로 포함 서식 파일은 xltm으로 저장하며, xlsb(바이너리) 형식은 대용량 문서를 XML 기반 형식보다 빠르게 열고 저장할 수 있다는 설명은 모두 옳다.
다음 중 Excel 에서 이름을 정의하고 [이름 관리자]로 관리하는 방법에 대한 설명으로 옳지 않은 것은?
이름의 범위(scope)를 특정 워크시트로 지정해도 다른 워크시트의 수식에서 '시트명!이름' 형태로 지정하면 그 이름을 참조할 수 있으므로, 어떤 방법으로도 참조할 수 없다는 설명은 옳지 않다.
이름의 첫 글자는 문자·밑줄·백슬래시 중 하나여야 하고 셀 주소와 같은 형태는 이름으로 쓸 수 없다는 점, 이름이 대·소문자를 구분하지 않아 대소문자만 다른 이름을 추가로 정의할 수 없다는 점, [이름 관리자]에서 참조 대상을 편집·삭제하거나 필터로 오류가 있는 이름만 표시할 수 있다는 점은 모두 옳은 설명이다.
다음 중 Excel 2021에서 수식을 입력했을 때 표시되는 오류 값과 그 발생 원인의 연결이 옳지 않은 것은?
공백 연산자로 지정한 두 셀 범위가 서로 겹치지 않아 교차 영역을 찾지 못할 때 발생하는 오류는 #NULL!이며, #NUM!은 수식의 인수나 계산 결과가 유효한 숫자 범위를 벗어나거나 잘못된 숫자 인수를 사용했을 때 발생하는 오류다.
숫자가 필요한 자리에 텍스트를 지정하는 등 데이터 형식이 맞지 않을 때 #VALUE!가, 동적 배열 수식의 결과가 펼쳐질 범위에 이미 값이 있는 셀이 있을 때 #SPILL!이, 함수 이름을 잘못 입력하거나 정의되지 않은 이름을 사용했을 때 #NAME?이 발생한다는 설명은 모두 옳다.
기본 키로 지정된 필드도 중복되지 않고 Null이 아니라는 조건만 지키면 값을 변경(수정)할 수 있으며, 한 번 입력한 값을 아예 바꿀 수 없다는 제약은 기본 키의 특징이 아니다.
기본 키는 널 값을 허용하지 않고 중복된 값을 입력할 수 없으며, 두 개 이상의 필드를 묶어 하나의 기본 키(복합 키)로 설정할 수 있다는 설명은 모두 옳다.
액세스 질의문에서 나눗셈의 몫만 구하는 산술 연산자는 백슬래시(\)이며, 소수점 이하를 버리고 정수 몫만 반환한다.
빗금(/)은 소수점까지 포함한 일반 나눗셈 결과를 구하고, &는 문자열을 연결하는 연산자이며, Mod는 나눗셈의 나머지를 구하는 연산자로 몫과는 다른 값을 반환한다.

Access의 매개 변수 쿼리는 조건란에 대괄호 [ ]로 묶은 문구를 넣어 만든다. 쿼리를 실행하면 대괄호 안의 문구가 그대로 [매개 변수 값 입력] 대화상자의 안내 문구로 표시되고, 사용자가 입력한 값이 그 자리에 대입되어 조건이 완성된다.
그림의 디자인 눈금은 Customer 테이블의 Name과 Age 필드를 표시하도록 구성돼 있고, 실행하면 "조회할 최소 나이 입력"이라는 안내와 함께 값(20)을 받는 대화상자가 나타난다. 최소 나이 이상을 검색해야 하므로 Age 필드 조건란에는 비교 연산자를 붙여 >=[조회할 최소 나이 입력]과 같이 적어야 한다.
중괄호 { }나 소괄호 ( )로 묶은 문구는 매개 변수로 인식되지 않아 오류가 나고, 큰따옴표 " "로 묶으면 안내 문구가 아니라 그 문자열 자체를 값으로 비교하게 되어 원하는 결과를 얻을 수 없다.
하위 폼에서 새 레코드를 추가할 수 있게 하려면 폼 속성 중 '추가 가능'을 '예'로 설정해야 한다.
'필터 사용'은 필터 적용 여부, '편집 가능'은 기존 레코드 수정 가능 여부, '삭제 가능'은 레코드 삭제 가능 여부를 결정하는 속성으로 새 레코드 추가 기능과는 관련이 없다.
텍스트 상자 컨트롤의 이름은 속성 시트를 열고 이름 항목에 새 값을 입력해 바꾼다.
바로 가기 메뉴에는 이름을 바꾸는 '변경' 명령이 없다. 컨트롤 안에 직접 문자를 입력하면 이름이 아니라 표시되는 데이터 값이 바뀐다.
연결된 레이블 컨트롤에 문자를 입력해도 레이블의 캡션만 바뀔 뿐, 텍스트 상자 컨트롤 자체의 이름과는 별개다.
텍스트 가져오기 마법사로 기존 테이블에 데이터를 추가하려면 기본 키 값이 이미 고유해야 정상적으로 추가된다. 가져오는 과정에서 마법사가 값을 임의로 수정해 고유하게 맞춰주지는 않는다.
고유 키가 중복되는 레코드가 있으면 해당 레코드는 오류로 처리되어 가져오기에서 제외된다.
나머지 설명은 옳다. 엑셀 워크시트는 새 테이블이나 기존 테이블로 복사할 수 있고, 원본 필드가 255개를 넘으면 처음 255개 필드까지만 가져온다. 워크시트는 한 번에 하나씩만 가져올 수 있으므로 여러 시트를 가져오려면 가져오기를 반복해야 한다.
다음 중 아래 SQL 문에 대한 설명으로 옳은 것은?
UPDATE 학생 SET 주소='서울'
WHERE 학번=100;
이 SQL은 [학생] 테이블에서 학번이 100인 레코드의 주소를 '서울'로 갱신합니다.
SQL은 UPDATE 학생 SET 주소='서울' WHERE 학번=100;입니다. UPDATE는 기존 레코드를 수정하는 명령이고, SET 뒤의 필드(주소)가 바뀔 값이며, WHERE 뒤의 조건(학번=100)이 수정 대상을 정합니다.
- 레코드 추가는 INSERT INTO, 검색은 SELECT의 기능입니다.
- 학번을 100으로 바꾸려면 SET 학번=100 WHERE 주소='서울'이어야 하므로 조건과 변경 필드가 뒤바뀐 설명입니다.

[프로시저 추가] 대화상자는 이름 입력란과 형식 그룹(Sub, Function, Property), 범위 그룹(Public, Private), 그리고 '모든 지역 변수를 정적 변수로' 확인란으로 구성된다. 형식은 만들 프로시저의 종류를, 범위는 그 프로시저를 어디까지 공개할지를 정한다.
범위에서 Public은 모든 모듈의 모든 프로시저에서 호출·액세스할 수 있게 하고, Private는 선언된 모듈 안에서만 쓰도록 제한한다. 이 규칙은 Sub든 Function이든 똑같이 적용된다.
따라서 Function을 Private로 지정하면 그 Function은 모든 모듈이 아니라 선언된 모듈 내부의 다른 프로시저에서만 액세스할 수 있다. '모든 모듈의 프로시저에서 액세스할 수 있다'는 것은 Public을 선택했을 때의 설명이므로 Private와 짝지으면 앞뒤가 맞지 않는다.
다음 중 성적(학번, 이름, 학과, 점수) 테이블의 레코드 수가 10개, 평가(학번, 전공, 점수) 테이블의 레코드 수가 5개일 때, 아래 SQL의 결과에 대한 설명으로 옳은 것은?
SELECT 학번, 학과, 점수FROM 성적 UNION ALL
SELECT 학번, 전공, 점수FROM 평가 ORDER BY 학번
옳은 설명은 쿼리 실행 결과의 총 레코드 수는 15개라는 것입니다.
SQL은 SELECT 학번, 학과, 점수 FROM 성적 UNION ALL SELECT 학번, 전공, 점수 FROM 평가 ORDER BY 학번입니다. UNION ALL은 두 SELECT 결과를 중복 제거 없이 이어 붙이므로 10개+5개=15개 레코드가 됩니다.
- 결과 필드는 각 SELECT에서 고른 3개뿐이며, 모든 테이블의 필드를 더한 개수가 아닙니다.
- 결과 필드 이름은 첫 번째 SELECT를 따르므로 학번, 학과, 점수입니다(평가.전공이 아님).
- ORDER BY 학번에 DESC가 없으므로 기본값인 오름차순으로 정렬됩니다.
포커스를 받을 때 입력기를 '한글' 또는 '영숫자반자'로 자동 전환하려면 컨트롤의 입력 시스템 모드(IME Mode) 속성을 설정한다.
엔터키 기능은 Enter를 눌렀을 때 줄을 바꿀지를, 탭 인덱스는 Tab으로 이동하는 순서를, 상태 표시줄 텍스트는 상태 표시줄에 나타날 안내문을 지정하는 속성이다. 모두 입력기 전환과는 관련이 없다.

그림은 Table1을 데이터시트 보기로 연 화면으로, '반' 필드 칸 오른쪽의 화살표를 누르자 A, B, C가 나열된 드롭다운 목록이 펼쳐져 그중에서 값을 고르게 되어 있다. 이렇게 입력할 값을 목록에서 선택하도록 만드는 것은 필드의 조회 속성이다.
테이블 디자인 보기에서 해당 필드의 조회 탭을 열어 컨트롤 표시를 콤보 상자나 목록 상자로 바꾸고, 행 원본 유형을 '값 목록'으로 두고 A;B;C처럼 값을 나열하거나 '테이블/쿼리'로 지정하면 그림과 같은 목록이 만들어진다.
입력 마스크는 자릿수·기호 같은 입력 형식을 강제하는 속성, 캡션은 데이터시트나 폼에 보일 이름만 바꾸는 속성, 유효성 검사 규칙은 입력된 값이 조건에 맞는지 검사만 하는 속성이라 어느 것도 목록에서 고르게 해 주지는 못한다.
INSERT문 하나로는 단 하나의 테이블에만 레코드를 추가할 수 있으며, 여러 테이블에 동시에 삽입할 수는 없다.
값을 직접 지정하는 VALUES 절과 다른 테이블에서 추출한 레코드를 삽입하는 SELECT 절을 모두 사용할 수 있다. 전체 필드를 추가하는 경우에는 필드 이름 목록을 생략할 수 있다.
SELECT 절을 이용하면 한 문장으로 여러 레코드와 필드를 함께 삽입하는 것도 가능하다.
보고서 마법사에서는 하나의 테이블이나 쿼리뿐 아니라 여러 개의 테이블과 쿼리에서 함께 필드를 선택할 수 있다.
따라서 필드 선택을 '여러 테이블 또는 하나의 쿼리'로만 제한한다는 설명은 마법사의 실제 동작과 다르다.
나머지 설명은 맞다. 필드가 한 테이블에만 있으면 그 테이블을, 여러 테이블에 걸쳐 있으면 쿼리를 만들어 레코드 원본으로 쓴다. '보고서' 도구를 쓰면 정보를 입력하지 않아도 바로 보고서가 만들어진다.
통화는 숫자 형식의 필드 크기 옵션이 아니라 별도의 데이터 형식이다. 숫자 형식의 필드 크기에서는 바이트·정수·정수(Long)·실수(Single)·실수(Double) 등을 선택한다.
나머지 설명은 옳다. 텍스트 필드 크기는 최대 255자까지 지정할 수 있다. 날짜/시간에는 미리 정의된 형식과 사용자 지정 형식을 모두 쓸 수 있다. 입력 마스크는 데이터를 저장할 때 마스크 기호를 함께 저장할지를 설정할 수 있다.
다음 중 주어진 [학생] 테이블을 참조하여 아래의 SQL문을 실행한 결과로 옳은 것은?
SELECT AVG(나이) FROM 학생
WHERE 전공 NOT IN ('수학', '회계');
[학생] 테이블
| 학번 | 전공 | 학년 | 나이 |
|---|---|---|---|
| 100 | 국사 | 4 | 21 |
| 150 | 회계 | 2 | 19 |
| 200 | 수학 | 3 | 30 |
| 250 | 국사 | 3 | 31 |
| 300 | 회계 | 4 | 25 |
| 350 | 수학 | 2 | 19 |
| 400 | 국사 | 1 | 23 |
실행 결과는 25입니다.
SQL은 SELECT AVG(나이) FROM 학생 WHERE 전공 NOT IN ('수학', '회계');로, 전공이 수학·회계가 아닌 학생의 나이 평균을 구합니다.
[학생] 테이블에서 조건에 맞는 학생은 국사 전공의 학번 100(21세), 250(31세), 400(23세)입니다.
평균 = (21+31+23)÷3 = 75÷3 = 25
테이블의 필드 값을 보여 주고 그 값을 직접 수정할 수도 있는 컨트롤은 바운드 컨트롤이다.
언바운드 컨트롤은 데이터 원본과 연결되지 않은 컨트롤이다. 계산 컨트롤은 식의 결과를 표시할 뿐 값을 직접 수정할 수 없다. 탭 컨트롤은 화면을 여러 페이지로 나누는 컨테이너 컨트롤이다.

관계 창을 보면 부서 테이블(부서코드·부서이름·부서장)과 사원 테이블(사번·성명·성별·부서코드·근무년수)이 공통 필드인 부서코드로 일대다(1:∞) 관계를 맺고 있다. 즉 검색 조건인 부서이름은 부서 테이블에만 있고, 출력할 성명과 근무년수는 사원 테이블에만 있다.
그러므로 부서이름이 '영업부'인 부서의 부서코드를 부서 테이블에서 먼저 구한 뒤, 그 코드를 가진 사원만 골라 성명과 근무년수를 표시하면 된다. 이를 하위 질의로 표현한 SELECT 성명, 근무년수 FROM 사원 WHERE 부서코드 IN (SELECT 부서코드 FROM 부서 WHERE 부서이름 = '영업부'); 가 가장 적절하다.
FROM에 두 테이블을 나열하면서 부서코드끼리 연결하는 조인 조건을 넣지 않으면 모든 행이 짝지어지는 카티션 곱이 생겨 엉뚱한 결과가 대량으로 나오고, 사원 테이블에 있는 근무년수를 부서 테이블 별칭으로 참조하거나 left join에 ON 없이 WHERE만 쓰고 괄호까지 어긋난 구문은 아예 실행되지 않는다.
폼이 열려 있는 동안 다른 개체로 포커스가 넘어가지 않게 하려면 폼의 모달 속성을 '예'로 설정한다.
추가 기능은 확장 기능 연결을, 레코드 잠금은 동시 편집 시 레코드를 잠그는 방식을, 레코드 선택기는 레코드 선택기를 표시할지를 다루는 속성이다. 모두 포커스 유지와는 관련이 없다.
다음 중 아래의 [사원] 테이블에 대해 SQL 문을 실행했을 때의 결과에 대한 설명으로 옳은 것은?
SELECT 사번, 이름, 급여*1.1 AS 인상급여 INTO 영업사원
FROM 사원
WHERE 부서='영업';

옳은 설명은 [영업사원] 테이블이 새로 만들어져 2개의 레코드가 저장되며, [사원] 테이블의 데이터는 변경되지 않는다는 것입니다.
[사원] 테이블은 1 김민수(영업, 3000000), 2 이서연(총무, 2500000), 3 박지훈(영업, 2800000), 4 최유나(인사, 2600000)입니다. 부서가 '영업'인 김민수·박지훈 2건이 사번, 이름, 인상급여(3300000, 3080000)로 새 테이블에 저장됩니다.
- SELECT … INTO는 테이블 만들기 쿼리로, 원본 [사원] 테이블의 급여를 수정하지 않습니다.
- 같은 이름의 테이블이 이미 있으면 뒤에 추가하는 것이 아니라 기존 테이블을 대체해 새로 만듭니다(추가는 INSERT INTO).
- 인상급여는 실행 시점에 계산된 값이 저장될 뿐이며, 이후 원본 급여가 바뀌어도 자동으로 다시 계산되지 않습니다.
아래의 [회원] 테이블과 [우수회원] 테이블에 대해 다음 두 SQL 문을 순서대로 실행한 후, [우수회원] 테이블과 [회원] 테이블의 레코드 수를 순서대로 나열한 것으로 옳은 것은?
INSERT INTO 우수회원(회원번호, 이름)
SELECT 회원번호, 이름 FROM 회원 WHERE 포인트 >= 1000;
DELETE FROM 회원 WHERE 등급='휴면';

실행 후 레코드 수는 [우수회원] 4개, [회원] 3개이다.
[회원] 테이블은 101 김민수(일반, 1200), 102 이서연(휴면, 300), 103 박지훈(우수, 1500), 104 최유나(휴면, 1100), 105 정하늘(일반, 800)의 5건이고, [우수회원]에는 100 홍길동 1건이 있다.
INSERT 문은 포인트가 1000 이상인 101, 103, 104의 3건을 추가하므로 [우수회원]은 1+3=4개가 된다.
DELETE 문은 등급이 '휴면'인 102, 104를 [회원]에서 삭제하므로 5-2=3개가 남는다. 이미 복사된 [우수회원]의 104번 레코드는 영향을 받지 않는다.