26~50번 · 총 100문제 · 정답과 해설 제공
AI·클라우드·프로그래밍·네트워크를 다루는 IT용어 상식 퀴즈 26~50번입니다. 각 문제의 정답 보기를 눌러 정답과 해설을 확인하고, 준비가 되면 실전 퀴즈로 실력을 점검해보세요.
IT용어 퀴즈 시작하기
100문제 중 랜덤 10문제 출제 · 15초 제한
Q26. 디자인 패턴 중 옵저버(Observer) 패턴의 설명으로 올바른 것은?
정답: 하나의 객체 상태 변화 시 의존 객체들에게 자동 통보하는 패턴
옵저버 패턴은 Subject의 상태가 변경되면 등록된 Observer들에게 자동으로 통지하는 일대다(1:N) 의존 관계 패턴입니다. 이벤트 시스템, pub/sub 모델의 기반이 됩니다. 팩토리는 객체 생성, 전략은 알고리즘 교환, 싱글톤은 단일 인스턴스 패턴입니다.
Q27. Big-O 표기법에서 O(n log n)과 O(n²)의 비교로 올바른 것은?
정답: n이 충분히 크면 O(n log n)이 항상 더 빠르다
O(n log n)은 O(n²)보다 점근적으로 더 빠릅니다. n=1000일 때 n log n ≈ 10,000이고 n² = 1,000,000으로 100배 차이납니다. 다만 상수 계수 등의 영향으로 매우 작은 n에서는 역전될 수 있습니다.
Q28. SOLID 원칙 중 "의존성 역전 원칙(DIP)"의 핵심은?
정답: 상위 모듈과 하위 모듈 모두 추상화에 의존해야 한다
의존성 역전 원칙(DIP)은 고수준 모듈이 저수준 모듈에 직접 의존하지 않고, 둘 다 추상화(인터페이스)에 의존해야 한다는 원칙입니다. 이를 통해 결합도를 낮추고 유연한 설계를 할 수 있습니다.
Q29. 클로저(Closure)에 대한 설명으로 올바른 것은?
정답: 자신이 선언된 환경(렉시컬 스코프)의 변수를 기억하는 함수
클로저는 함수가 자신이 선언된 렉시컬 환경(Lexical Environment) 밖에서 호출되더라도, 해당 환경의 변수에 접근할 수 있는 기능입니다. JavaScript, Python 등 많은 언어에서 지원하며, 데이터 은닉과 상태 유지에 활용됩니다.
Q30. 전략 패턴(Strategy Pattern)의 핵심 목적은?
정답: 알고리즘 군을 정의하고 런타임에 교체 가능하게 캡슐화
전략 패턴은 동일한 문제를 해결하는 여러 알고리즘을 각각 캡슐화하고, 이들을 런타임에 교체할 수 있게 하는 패턴입니다. 예를 들어 정렬 전략, 결제 수단, 인증 방식 등을 동적으로 변경할 수 있습니다.
Q31. AWS Lambda와 EC2의 가장 큰 차이점은?
정답: Lambda는 서버리스로 요청 시에만 실행되고 사용한 만큼 과금된다
AWS Lambda는 서버리스 컴퓨팅 서비스로, 코드를 업로드하면 이벤트 발생 시에만 실행되고 실행 시간과 요청 수에 따라 과금됩니다. EC2는 가상 서버를 직접 관리해야 하며 실행 시간과 관계없이 인스턴스 가동 시간만큼 과금됩니다.
Q32. Docker 컨테이너와 가상 머신(VM)의 핵심 차이는?
정답: 컨테이너는 호스트 OS 커널을 공유하여 더 가볍다
Docker 컨테이너는 호스트 OS의 커널을 공유하고 애플리케이션과 의존성만 패키징하므로 매우 가볍고 빠릅니다. VM은 각각 독립된 게스트 OS를 포함하여 더 강한 격리를 제공하지만, 리소스 오버헤드가 큽니다.
Q33. Kubernetes에서 Pod의 설명으로 올바른 것은?
정답: 배포 가능한 가장 작은 단위로 하나 이상의 컨테이너를 포함
Pod는 Kubernetes의 최소 배포 단위로, 하나 이상의 컨테이너를 포함합니다. 같은 Pod 내 컨테이너들은 네트워크(IP)와 스토리지를 공유합니다. Service는 로드밸런싱, PersistentVolume은 저장소를 담당합니다.
Q34. Kubernetes에서 Service의 역할은?
정답: Pod 집합에 대한 안정적인 네트워크 엔드포인트를 제공
Kubernetes Service는 동적으로 변하는 Pod 집합에 대해 고정된 IP와 DNS 이름을 부여하여 안정적인 네트워크 접근을 제공합니다. ClusterIP, NodePort, LoadBalancer 등의 타입이 있습니다.
Q35. CI/CD에서 CI(Continuous Integration)의 핵심 활동은?
정답: 코드 변경을 자주 통합하고 자동 빌드/테스트 수행
CI(Continuous Integration)는 개발자들이 코드 변경사항을 빈번하게 메인 브랜치에 통합하고, 자동화된 빌드와 테스트를 통해 통합 오류를 조기에 발견하는 실천법입니다. CD(Continuous Delivery/Deployment)는 배포 자동화를 다룹니다.
Q36. 마이크로서비스 아키텍처의 단점이 아닌 것은?
정답: 독립적인 배포가 불가능
독립적인 배포는 마이크로서비스의 핵심 장점입니다. 반면 서비스 간 네트워크 통신 복잡성, 분산 트랜잭션 관리, 서비스 디스커버리, 모니터링/로깅의 복잡도 증가 등이 단점입니다.
Q37. IaC(Infrastructure as Code) 도구인 Terraform의 특징은?
정답: 멀티 클라우드를 지원하며 선언적(Declarative) 방식으로 인프라를 정의
Terraform은 HashiCorp이 만든 IaC 도구로, HCL 언어를 사용하여 선언적으로 인프라를 정의합니다. AWS, Azure, GCP 등 멀티 클라우드를 지원하며, 에이전트 없이(agentless) 동작합니다. CloudFormation은 AWS 전용입니다.
Q38. 서버리스 아키텍처에서 "콜드 스타트(Cold Start)"란?
정답: 오래 미사용된 함수가 처음 호출될 때 초기화로 인한 지연
콜드 스타트는 서버리스 함수(예: AWS Lambda)가 일정 시간 호출되지 않아 컨테이너가 제거된 후, 다시 호출될 때 새로운 컨테이너 생성 및 런타임 초기화로 인해 발생하는 지연입니다. Provisioned Concurrency로 완화할 수 있습니다.
Q39. 블루/그린 배포(Blue/Green Deployment)의 특징은?
정답: 두 개의 동일한 프로덕션 환경을 유지하고 트래픽을 한 번에 전환
블루/그린 배포는 기존 환경(Blue)과 동일한 새 환경(Green)에 새 버전을 배포한 후, 로드밸런서로 트래픽을 한 번에 전환하는 방식입니다. 문제 발생 시 즉시 롤백이 가능하지만, 두 배의 인프라 비용이 필요합니다.
Q40. 카나리 배포(Canary Deployment)의 핵심 전략은?
정답: 새 버전을 전체 트래픽의 소수(예: 5%)에게만 먼저 배포하여 검증
카나리 배포는 새 버전을 전체 트래픽의 소수(예: 1~5%)에게만 먼저 노출하여 문제를 조기에 감지하는 전략입니다. 이상이 없으면 점진적으로 비율을 높이고, 문제 발견 시 빠르게 롤백합니다.
Q41. AWS ECS와 EKS의 차이로 올바른 것은?
정답: ECS는 AWS 자체 컨테이너 오케스트레이션, EKS는 관리형 Kubernetes
ECS(Elastic Container Service)는 AWS 자체 컨테이너 오케스트레이션 서비스이고, EKS(Elastic Kubernetes Service)는 관리형 Kubernetes 서비스입니다. ECS는 AWS 생태계에 깊이 통합되어 있고, EKS는 Kubernetes 표준을 따릅니다.
Q42. AWS Fargate의 특징으로 올바른 것은?
정답: 서버리스 컨테이너 실행 엔진으로 인프라 관리가 불필요하다
AWS Fargate는 ECS나 EKS와 함께 사용하는 서버리스 컨테이너 실행 엔진입니다. EC2 인스턴스를 프로비저닝하거나 관리할 필요 없이 컨테이너만 정의하면 자동으로 실행됩니다. Lambda는 함수 단위, Fargate는 컨테이너 단위입니다.
Q43. 롤링 배포(Rolling Deployment)의 특징은?
정답: 서버를 하나씩(또는 배치 단위로) 순차적으로 업데이트
롤링 배포는 전체 서버 중 일부씩 순차적으로 새 버전으로 업데이트하는 방식입니다. 블루/그린처럼 이중 인프라가 불필요하지만, 배포 중 구/신 버전이 공존하여 호환성 문제가 발생할 수 있습니다.
Q44. Docker 명령어 중 이미지를 빌드하는 명령어는?
정답: docker build
docker build는 Dockerfile에 정의된 명령어들을 순서대로 실행하여 Docker 이미지를 생성합니다. docker run은 이미지로 컨테이너 실행, docker pull은 레지스트리에서 이미지 다운로드, docker push는 이미지 업로드입니다.
Q45. Kubernetes Ingress의 역할은?
정답: 클러스터 외부에서 내부 Service로의 HTTP(S) 라우팅 규칙 정의
Kubernetes Ingress는 클러스터 외부에서 들어오는 HTTP(S) 트래픽을 내부 Service로 라우팅하는 규칙을 정의합니다. URL 경로 기반 라우팅, SSL 종료, 가상 호스팅 등을 지원하며, Ingress Controller(예: Nginx)가 이를 실행합니다.
Q46. CAP 정리에서 분산 시스템이 동시에 보장할 수 없는 세 가지 속성은?
정답: Consistency, Availability, Partition Tolerance
CAP 정리는 분산 시스템에서 일관성(Consistency), 가용성(Availability), 분할 허용성(Partition Tolerance) 세 가지를 동시에 완벽히 보장할 수 없다는 정리입니다. 네트워크 분할은 항상 발생할 수 있으므로 실질적으로 CP 또는 AP 중 선택합니다.
Q47. 트랜잭션 격리 수준 중 "Phantom Read"를 방지할 수 있는 최소 수준은?
정답: SERIALIZABLE
Phantom Read는 같은 조건의 쿼리를 두 번 실행했을 때 결과 행 수가 달라지는 현상입니다. SERIALIZABLE 격리 수준에서만 완전히 방지됩니다. MySQL InnoDB의 REPEATABLE READ는 갭 락(Gap Lock)으로 부분적으로 방지하지만, SQL 표준상으로는 SERIALIZABLE이 필요합니다.
Q48. 데이터베이스 정규화에서 제2정규형(2NF)의 조건은?
정답: 1NF를 만족하고 부분 함수 종속을 제거
제2정규형(2NF)은 1NF를 만족하면서 모든 비주요 속성이 기본키 전체에 완전 함수 종속해야 합니다. 즉, 복합키의 일부에만 종속되는 부분 함수 종속을 제거합니다. 3NF는 이행 종속 제거, BCNF는 모든 결정자가 후보키입니다.
Q49. ACID 속성 중 "Durability(지속성)"의 의미는?
정답: 커밋된 트랜잭션의 결과는 시스템 장애가 발생해도 영구 보존된다
Durability(지속성)는 트랜잭션이 성공적으로 커밋되면 그 결과가 영구적으로 저장되어, 이후 시스템 장애(정전, 크래시 등)가 발생해도 데이터가 손실되지 않음을 보장합니다. WAL(Write-Ahead Logging) 등으로 구현됩니다.
Q50. B-Tree 인덱스와 Hash 인덱스의 비교로 올바른 것은?
정답: B-Tree 인덱스는 범위 검색에, Hash 인덱스는 동등 검색에 적합하다
B-Tree 인덱스는 데이터가 정렬되어 있어 등호(=), 범위(<, >, BETWEEN), ORDER BY 등에 모두 효율적입니다. Hash 인덱스는 O(1)으로 동등 비교(=)에 매우 빠르지만, 정렬이 없어 범위 검색이나 정렬에는 사용할 수 없습니다.