[말랑 퀴즈] 26/04/02 문제

게시:     수정

카테고리:

태그:

제 말랑말랑 퀴즈 생성기는 이곳에서 확인하실 수 있습니다.

말랑말랑 퀴즈 📝

날짜: 2026-04-02 문제 수: 5문제


Q1. 🔴 어려움

C++에서 iterator_traits와 함수 오버로딩을 결합해 advance 함수를 구현하려 한다.

아래는 잘못된 구현 예시이다.

template<typename IterT, typename DistT>
void advance(IterT& iter, DistT d) {
    if (typeid(typename iterator_traits<IterT>::iterator_category)
        == typeid(random_access_iterator_tag)) {
        iter += d;
    } else {
        if (d >= 0) { while (d--) ++iter; }
        else        { while (d++) --iter; }
    }
}
  1. typeid 기반 구현이 잘못된 이유를 설명하시오. (컴파일 시점과 런타임 시점의 차이에 주목하라)
  2. 올바른 해결책인 “작업자(worker) 함수 오버로딩 + 주작업자(master) 함수” 패턴이 어떻게 이 문제를 해결하는지 설명하시오.
  3. 반복자 태그 구조체들이 is-a 상속 관계로 설계된 이유는 무엇인지 설명하시오.

출처: game_dev/cpp/chapter7/2025-11-02-cpp_7_47.md

📝 내 풀이:

  1. 컴파일 시점에 iterator_traits<IterT>::iterator_category를 통해 가져올 수 없다.

무슨 내용이었는지 기억나지 않는다..
한번 더 살펴보아야겠다.


Q2. 🟢 쉬움

렌더링 파이프라인에서 3D 도형이 픽셀로 변환되는 단계는 무엇인가?

  • A. Vertex Shader — 정점을 하나의 공통 좌표계(View Space)로 변환한다
  • B. Tessellation — 저해상도 메시를 고해상도 메시로 세분화한다
  • C. Rasterization — 3D 도형이 픽셀로 변환되며, 색 보간이 이루어진다
  • D. Fragment Shader — 픽셀에 라이팅·텍스처 등의 색을 입힌다

출처: graphics/2023-10-05-graphics-pipeline.md

📝 내 선택: C, 이미 정답이 나와있다.


Q3. 🟡 보통

다음 명제가 참(O)인지 거짓(X)인지 판단하라.

템플릿 파생 클래스에서 기본 클래스 템플릿의 멤버를 호출할 때, MsgSender<Company>::sendClear(info)처럼 명시적 한정(explicit qualification) 방식을 사용하면 가상 함수에 대해서도 안전하게 동적 바인딩이 이루어진다.

출처: game_dev/cpp/chapter7/2025-10-30-cpp_7_43.md

📝 내 답: O


Q4. 🟢 쉬움

빈칸을 채우시오.

JSON은 데이터 트리를 문자열로 표현한 포맷으로, 아래와 같은 구조를 가진다.

{
    "name" : "Alice",
    "score" : 100,
    "info" : { "level" : 5 },
    "items" : [10, 20, { "id" : 3 }]
}
  • JSON에서 {} 구문을 ___①이라 한다.
  • ①의 내부에는 __②(Key)와 __③(Value)의 쌍이 들어간다.
  • ②는 반드시 ___④로 둘러싸야 한다.
  • ③으로 올 수 있는 종류: 문자열, ___⑤, 객체, 배열

출처: server/game_server/8/2026-03-09-game_server_8_4.md

📝 내 답: ① 객체 ② 이름 ③ 값 ④ 쌍따옴표 ⑤ 숫자


Q5. 🟡 보통

프라우드넷 기반 게임 서버에서 SendUserMessage()로 메시지를 전송할 때, 전송 방식에 대한 설명으로 옳지 않은 것은?

  • A. ReliableSend는 TCP 기반으로 전송을 보장하므로 아이템 획득·채팅 같은 중요한 데이터에 적합하다
  • B. UnreliableSend는 UDP 기반으로 전송 속도가 빠르므로 캐릭터 위치·상태 같은 실시간 데이터에 적합하다
  • C. RmiContext 구조체에는 reliable/unreliable 외에도 암호화, 압축, 오래된 메시지 건너뛰기 등의 옵션이 포함된다
  • D. SendUserMessage()는 단일 클라이언트에게만 전송할 수 있으며, 다수 클라이언트에게 동시 전송하려면 별도의 브로드캐스트 함수를 사용해야 한다

출처: server/game_server/6/2026-02-23-game_server_6_4.md

📝 내 선택: ( D ), ABC는 맞다고 확신하지만 D는 정확히 모르겠다.


✅ 결과

1 2 3 4 5

MallangQuiz 카테고리 내 다른 글 보러가기

댓글남기기