51~75번 · 총 100문제 · 정답과 해설 제공
AI·클라우드·프로그래밍·네트워크를 다루는 IT용어 상식 퀴즈 51~75번입니다. 각 문제의 정답 보기를 눌러 정답과 해설을 확인하고, 준비가 되면 실전 퀴즈로 실력을 점검해보세요.
IT용어 퀴즈 시작하기
100문제 중 랜덤 10문제 출제 · 15초 제한
Q51. 샤딩(Sharding)에 대한 설명으로 올바른 것은?
정답: 데이터를 여러 데이터베이스에 수평 분할하여 분산 저장하는 것
샤딩은 대량의 데이터를 여러 데이터베이스 노드에 수평 분할하여 저장하는 기법입니다. 각 샤드는 전체 데이터의 일부만 보유합니다. 레플리케이션은 같은 데이터를 복제, 파티셔닝은 단일 DB 내 테이블 분할입니다.
Q52. Redis의 자료구조에 해당하지 않는 것은?
정답: B-Tree
Redis는 String, List, Set, Sorted Set, Hash, Stream, Bitmap, HyperLogLog 등의 자료구조를 지원합니다. B-Tree는 Redis의 자료구조가 아니라 데이터베이스 인덱스에서 사용되는 트리 구조입니다.
Q53. 캐시 전략 중 Cache-Aside(Lazy Loading) 패턴의 동작 방식은?
정답: 캐시 미스 시 DB에서 조회하여 캐시에 적재
Cache-Aside 패턴은 캐시 히트 시 캐시에서 반환하고, 캐시 미스 시 DB에서 조회한 후 그 결과를 캐시에 저장합니다. 필요한 데이터만 캐싱되지만, 첫 요청은 항상 느리고 캐시와 DB 간 데이터 불일치가 발생할 수 있습니다.
Q54. ACID와 BASE의 비교로 올바른 것은?
정답: ACID는 강한 일관성, BASE는 최종적 일관성(Eventual Consistency)을 지향
ACID(원자성, 일관성, 격리성, 지속성)는 RDBMS에서 강한 일관성을 보장합니다. BASE(기본적 가용성, 연성 상태, 최종적 일관성)는 분산 NoSQL 시스템에서 가용성을 우선시하며 데이터가 결국에는 일관된 상태가 됨을 보장합니다.
Q55. 트랜잭션 격리 수준에서 "Dirty Read"가 발생할 수 있는 수준은?
정답: READ UNCOMMITTED만
Dirty Read는 다른 트랜잭션이 아직 커밋하지 않은 데이터를 읽는 현상으로, READ UNCOMMITTED 격리 수준에서만 발생합니다. READ COMMITTED 이상에서는 커밋된 데이터만 읽으므로 Dirty Read가 방지됩니다.
Q56. 데이터베이스에서 BCNF(Boyce-Codd Normal Form)의 조건은?
정답: 모든 결정자가 후보키(Candidate Key)여야 한다
BCNF는 3NF를 강화한 형태로, 모든 결정자(Determinant)가 후보키여야 한다는 조건입니다. 3NF에서 허용되는 일부 이상 현상(비주요 속성이 후보키의 일부를 결정하는 경우)을 추가로 제거합니다.
Q57. Write-Through 캐시 전략의 특징은?
정답: 쓰기 시 캐시와 DB를 동시에 갱신하여 일관성 보장
Write-Through는 데이터 쓰기 시 캐시와 DB를 동시에 갱신하는 전략입니다. 데이터 일관성이 보장되지만, 모든 쓰기에 두 곳을 갱신하므로 쓰기 지연이 증가합니다. Write-Behind(Write-Back)는 캐시만 먼저 갱신하고 DB는 비동기로 반영합니다.
Q58. 파티셔닝에서 수평 파티셔닝과 수직 파티셔닝의 차이는?
정답: 수평은 행을 나누고, 수직은 열을 나눈다
수평 파티셔닝은 같은 스키마의 테이블을 행(row) 단위로 분할합니다(예: 날짜별 분할). 수직 파티셔닝은 테이블의 열(column)을 분할하여 자주 접근하는 컬럼과 그렇지 않은 컬럼을 별도 테이블로 나눕니다.
Q59. SQL에서 HAVING과 WHERE의 차이는?
정답: WHERE는 그룹화 전 조건, HAVING은 그룹화 후 조건에 적용
WHERE는 GROUP BY 이전에 개별 행에 대해 조건을 적용하고, HAVING은 GROUP BY 이후에 그룹화된 결과에 대해 조건을 적용합니다. HAVING에서는 집계 함수(SUM, COUNT, AVG 등)를 사용할 수 있습니다.
Q60. 레플리케이션(Replication)에서 Master-Slave 구조의 특징은?
정답: Master에서만 쓰기, Slave에서는 읽기만 가능
Master-Slave(또는 Primary-Replica) 레플리케이션은 Master 노드가 쓰기를 처리하고 Slave 노드에 데이터를 복제하여, Slave에서 읽기 요청을 분산 처리합니다. 읽기 성능 향상과 고가용성을 제공하지만, 복제 지연이 발생할 수 있습니다.
Q61. OWASP Top 10 중 SQL Injection 공격을 방지하는 가장 효과적인 방법은?
정답: Prepared Statement(매개변수화 쿼리) 사용
Prepared Statement(매개변수화 쿼리)는 SQL 구문과 데이터를 분리하여 사용자 입력이 SQL 구문으로 해석되는 것을 원천 차단합니다. 입력값 검증도 보조적이지만, Prepared Statement가 가장 근본적인 방어책입니다.
Q62. XSS(Cross-Site Scripting)와 CSRF(Cross-Site Request Forgery)의 차이는?
정답: XSS는 악성 스크립트 삽입, CSRF는 인증된 사용자의 요청을 위조
XSS는 웹 페이지에 악성 스크립트를 삽입하여 다른 사용자의 브라우저에서 실행시키는 공격입니다. CSRF는 인증된 사용자의 브라우저를 이용하여 의도하지 않은 요청을 서버에 보내는 공격입니다. XSS는 출력 이스케이핑, CSRF는 토큰 검증으로 방어합니다.
Q63. 대칭키 암호화와 비대칭키 암호화의 차이로 올바른 것은?
정답: 대칭키는 같은 키로 암복호화, 비대칭키는 공개키/개인키 쌍을 사용
대칭키 암호화(AES 등)는 하나의 키로 암호화/복호화를 모두 수행하여 속도가 빠르지만 키 교환 문제가 있습니다. 비대칭키 암호화(RSA 등)는 공개키/개인키 쌍을 사용하여 키 교환이 안전하지만 속도가 느립니다.
Q64. JWT(JSON Web Token)의 세 가지 구성 요소는?
정답: Header, Payload, Signature
JWT는 Header(알고리즘, 토큰 타입), Payload(클레임 데이터), Signature(위변조 검증용 서명) 세 부분으로 구성되며, 각각 Base64Url로 인코딩되어 점(.)으로 연결됩니다. Signature는 Header+Payload를 비밀키로 서명하여 생성됩니다.
Q65. OAuth 2.0에서 Authorization Code Grant가 Implicit Grant보다 안전한 이유는?
정답: Authorization Code는 백엔드에서 토큰을 교환하여 토큰이 브라우저에 노출되지 않음
Authorization Code Grant는 인가 코드를 먼저 받고, 백엔드에서 이를 토큰으로 교환하므로 액세스 토큰이 브라우저(URL fragment 등)에 노출되지 않습니다. Implicit Grant는 토큰이 브라우저에 직접 전달되어 탈취 위험이 높습니다.
Q66. CORS(Cross-Origin Resource Sharing)에서 Preflight 요청이란?
정답: 실제 요청 전에 OPTIONS 메서드로 서버에 허용 여부를 확인하는 요청
CORS Preflight는 브라우저가 실제 요청 전에 OPTIONS 메서드로 서버에 "이 출처에서 이 메서드/헤더로 요청해도 되는가?"를 확인하는 사전 요청입니다. Content-Type이 application/json이거나 커스텀 헤더가 있는 경우 등에 발생합니다.
Q67. bcrypt가 MD5/SHA-256보다 비밀번호 해싱에 적합한 이유는?
정답: bcrypt는 의도적으로 느리게 설계되어 무차별 대입 공격에 강하다
bcrypt는 비용 인자(cost factor)를 통해 의도적으로 해싱 속도를 느리게 조절할 수 있어, 하드웨어 성능이 향상되어도 무차별 대입 공격(Brute Force)을 어렵게 만듭니다. MD5/SHA는 빠른 해싱을 목적으로 설계되어 비밀번호 저장에 부적합합니다.
Q68. OAuth 2.0에서 Refresh Token의 역할은?
정답: 만료된 Access Token을 재발급 받기 위한 토큰
Refresh Token은 Access Token이 만료되었을 때 사용자가 다시 로그인하지 않고도 새로운 Access Token을 발급받을 수 있게 합니다. 보안을 위해 Access Token은 짧은 유효기간(분~시간), Refresh Token은 긴 유효기간(일~주)을 가집니다.
Q69. HTTPS에서 사용되는 인증서의 역할이 아닌 것은?
정답: 데이터 압축
SSL/TLS 인증서는 서버의 신원을 확인하고, 서버의 공개키를 안전하게 전달하며, 인증 기관(CA)의 디지털 서명이 포함되어 신뢰성을 보장합니다. 데이터 압축은 인증서의 역할이 아니라 HTTP나 TLS 프로토콜의 별도 기능입니다.
Q70. SQL Injection에서 "Blind SQL Injection"이란?
정답: 쿼리 결과가 직접 보이지 않아 참/거짓 응답 차이로 정보를 추출하는 공격
Blind SQL Injection은 쿼리 결과가 화면에 직접 출력되지 않는 경우, 서버의 응답 차이(참/거짓에 따른 다른 페이지, 응답 시간 차이 등)를 이용하여 데이터베이스 정보를 한 비트씩 추출하는 공격 기법입니다.
Q71. 트랜스포머(Transformer) 아키텍처의 핵심 메커니즘은?
정답: 셀프 어텐션(Self-Attention)
트랜스포머의 핵심은 셀프 어텐션(Self-Attention) 메커니즘으로, 입력 시퀀스의 모든 위치 간 관계를 동시에 계산합니다. RNN의 순차적 처리 한계를 극복하여 병렬 처리가 가능하며, GPT, BERT 등 현대 LLM의 기반이 됩니다.
Q72. RAG(Retrieval-Augmented Generation)의 핵심 원리는?
정답: 외부 지식 소스를 검색하여 LLM의 응답 생성에 활용
RAG는 LLM이 응답을 생성할 때 외부 데이터베이스(벡터 DB 등)에서 관련 문서를 먼저 검색하고, 이를 컨텍스트로 활용하여 더 정확하고 최신 정보에 기반한 답변을 생성하는 기법입니다. 파인튜닝 없이 지식을 보강할 수 있습니다.
Q73. 파인튜닝(Fine-tuning)과 프롬프트 엔지니어링의 차이는?
정답: 파인튜닝은 모델의 가중치를 수정하고, 프롬프트 엔지니어링은 입력만 최적화
파인튜닝은 사전 학습된 모델에 특정 데이터로 추가 학습하여 모델의 가중치를 수정합니다. 프롬프트 엔지니어링은 모델을 변경하지 않고 입력(프롬프트)을 최적화하여 원하는 출력을 유도합니다. 파인튜닝이 더 많은 비용과 데이터가 필요합니다.
Q74. WebAssembly(Wasm)의 특징으로 올바른 것은?
정답: 브라우저에서 네이티브에 가까운 성능으로 실행되는 바이너리 포맷
WebAssembly는 브라우저에서 네이티브에 가까운 성능으로 실행되는 바이너리 명령 형식입니다. C/C++, Rust 등 다양한 언어로 작성된 코드를 컴파일하여 웹에서 실행할 수 있으며, JavaScript를 대체하는 것이 아니라 보완합니다.
Q75. GraphQL이 REST 대비 해결하는 주요 문제는?
정답: Over-fetching과 Under-fetching 문제 해결
GraphQL은 클라이언트가 필요한 필드만 지정하여 요청하므로, REST에서 발생하는 Over-fetching(불필요한 데이터 수신)과 Under-fetching(추가 API 호출 필요) 문제를 해결합니다. 단일 엔드포인트에서 유연한 쿼리가 가능합니다.