[말랑 퀴즈] 26/03/26 해답
카테고리: MallangQuiz
태그: Quiz
제 말랑말랑 퀴즈 생성기는 이곳에서 확인하실 수 있습니다.
말랑말랑 퀴즈 — 해답지 ✅
날짜: 2026-03-20 문제 수: 5문제
Q1. 🟢 쉬움
문제: 다음 명제가 참(O)인지 거짓(X)인지 판단하라.
게임 서버 개발에서는 새로운 기술이라도 현장 프로덕션에 적극적으로 도입하는 ‘진보적인 현장 적용’이 권장된다.
정답: X
해설:
게임 서버 개발 지침에서는 연구는 진보적으로, 현장 적용은 보수적으로 해야 한다. 서버는 실패에 민감한 미션 크리티컬(mission-critical) 시스템이므로, 검증되지 않은 최신 기술을 성급하게 현장에 도입하면 안 된다. 안정성을 최우선으로, 한 줄 한 줄 신중하게 개발하는 것이 원칙이다.
출처:
server/game_server/4/2026-02-12-game_server_4_9.md
Q2. 🟡 보통
문제: 논블록 소켓과 Overlapped I/O를 비교한 설명 중 옳은 것은?
- A. Overlapped I/O는 크로스 플랫폼을 지원하여 Linux에서도 동작한다.
- B. 논블록 소켓은 would block 발생 시 재시도 호출이 필요하지 않다.
- C. Overlapped I/O는 사용자 데이터 블록을 버퍼로 직접 사용하므로, 소켓 버퍼로의 메모리 복사가 발생하지 않는다.
- D. 논블록 소켓은 I/O completion port와 조합하면 최고 성능의 서버를 구현할 수 있다.
정답: C
해설:
- C (정답): Overlapped I/O는 소켓 API에 넘긴 데이터 블록 자체를 버퍼로 사용한다. 이 덕분에 사용자 프로세스의 데이터를 소켓 버퍼로 복사하는 연산이 없어 RAM 복사 비용이 제거된다.
- A (오답): Overlapped I/O는 Windows 전용 기능이다. Linux 등 다른 플랫폼에서는 사용할 수 없다.
- B (오답): 논블록 소켓은 would block이 발생하면 재시도 호출이 필요하다. 이것이 논블록 소켓의 대표적인 단점이다.
- D (오답): I/O completion port와 조합하여 최고 성능을 내는 것은 Overlapped I/O이다.
출처:
server/game_server/3/2026-02-05-game_server_3_7.md
Q3. 🟢 쉬움
문제: 빈칸을 채우시오.
아래는 MongoDB에서 자주 사용하는 성능 분석 및 인덱스 관련 함수들이다.
-- ① 쿼리 성능 분석
db.coll1.find().①___("executionStats")
-- ② 인덱스 추가
db.coll1.②___({"a":1})
-- ③ 특정 인덱스 제거
db.coll1.③___({"a":1})
정답:
① explain
② ensureIndex
③ DropIndex
해설:
MongoDB에서 쿼리 성능을 분석하려면 find() 뒤에 .explain("executionStats")을 붙여 실행 통계를 확인한다. 인덱스 추가는 ensureIndex({"필드명": 1})으로 하고, 특정 인덱스를 제거할 때는 DropIndex({"필드명": 1}), 모든 인덱스를 한 번에 제거할 때는 DropIndexes()를 사용한다. 이 기능들은 데이터베이스 과부하, 병목, 막대한 연산이 발생할 때 원인을 파악하고 개선하는 데 활용된다.
출처:
server/game_server/8/2026-03-13-game_server_8_7.md
Q4. 🔴 어려움
문제: TCP 통신에서 recv()가 0바이트를 반환하는 것이 어떤 의미인지 설명하고, UDP에서는 왜 이것이 다르게 해석되는지를 TCP와 UDP의 데이터 형식 차이(스트림 vs 데이터그램)와 연관 지어 서술하시오.
정답:
[TCP에서 0바이트 수신의 의미]
TCP는 데이터를 스트림(stream) 형식으로 전송한다. 스트림에서는 데이터가 연속적으로 흐르므로, 상대방이 더 이상 보낼 데이터가 없어 연결을 종료한 경우에만 0바이트 수신이 발생한다. 즉, TCP에서 recv()가 0을 반환하면 상대방이 연결을 종료했다는 신호이며, 수신 루프를 빠져나와 소켓을 닫는 처리를 해야 한다.
[UDP에서 다르게 해석되는 이유]
UDP는 데이터를 데이터그램(datagram) 형식으로 전송한다. 데이터그램은 메시지 단위로 독립적으로 취급되며, 0바이트 메시지도 유효한 메시지로 허용된다. 또한 UDP는 연결 개념이 없는 비연결형 프로토콜이므로, ‘연결 종료’라는 개념 자체가 존재하지 않는다. 따라서 UDP에서 0바이트를 수신하더라도 이는 정상적인 빈 메시지를 받은 것일 뿐, 종료 신호로 해석하지 않는다.
출처:
server/game_server/2/2025-12-04-game_server_2_6.md
Q5. 🟡 보통
문제: 다음 명제가 참(O)인지 거짓(X)인지 판단하라.
인터넷이란 동일한 종류의 스위치와 라우터들이 균일하게 연결된 망을 의미한다.
정답: X
해설:
인터넷은 ‘다른 종류’의 스위치와 라우터가 연결된 망이다. OSI 계층 3(네트워크 계층)의 IP 규약을 따르기만 하면 통신 회선과 기기의 종류에 관계없이 통신이 가능하다. 이 덕분에 이기종(異機種) 네트워크 장비들이 혼재할 수 있으며, 그렇게 연결된 거대한 망 전체가 인터넷이다.
출처:
server/game_server/2/2025-07-10-game_server_2_2.md
댓글남기기