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

게시:     수정

카테고리:

태그:

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

말랑말랑 퀴즈 📝

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


Q1. 🟢 쉬움

다음 중 관계형 데이터베이스(RDBMS)와 NoSQL의 차이에 대한 설명으로 옳은 것은?

  • A. RDBMS는 레코드가 트리나 구조체 형태를 가질 수 있어 유연한 스키마 변경에 강하다
  • B. RDBMS에서 레코드가 1억 개인 테이블에 새 필드를 추가하면, null을 허용하더라도 장시간 시스템이 멈출 수 있다
  • C. NoSQL은 리스트·배열 구조만 지원하며, 중첩된 계층형 데이터를 표현할 수 없다
  • D. NoSQL은 RDBMS보다 항상 더 빠른 읽기 성능을 보장한다

출처: server/game_server/8/2026-03-08-game_server_8_1.md

📝 내 선택: ( B )


Q2. 🟡 보통

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

아래처럼 clearCache(), clearHistory(), removeCookies()를 묶어 일괄 실행하는 기능은, 클래스의 데이터를 직접 다루는 동작이 없더라도 WebBrowser의 멤버 함수 clearEverything()으로 구현하는 것이 비멤버 함수보다 캡슐화 측면에서 더 바람직하다.

class WebBrowser {
public:
    void clearCache();
    void clearHistory();
    void removeCookies();

    void clearEverything(); // clearCache + clearHistory + removeCookies 호출
};

출처: game_dev/cpp/chapter4/2025-06-24-cpp_4_23.md

📝 내 답: X


Q3. 🔴 어려움

아래 코드는 메뉴 배경을 교체하는 함수이다.

void PrettyMenu::changeBackground(std::istream& imgSrc) {
    lock(&mutex);

    delete bgImage;
    ++imageChanges;
    bgImage = new Image(imgSrc);

    unlock(&mutex);
}
  1. 이 코드에서 발생할 수 있는 예외 안전성 문제 2가지를 설명하시오.
  2. C++ 예외 안전성의 세 가지 보장 수준(기본적인 보장, 강력한 보장, 예외불가 보장)의 차이를 서술하시오.
  3. 복사 후 맞바꾸기(copy-and-swap) 패턴이 위 함수에 어떻게 적용되어 강력한 보장을 달성하는지 설명하시오.

출처: game_dev/cpp/chapter5/2025-09-14-cpp_5_29.md

📝 내 풀이:

  1. 예외 안정성 문제 2가지
    1. bgImage = new Image(imgSrc)에서 예외가 발생하는 경우, 이미지는 없고 imageChanges 변수만 변경된다.
    2. new 실행 도중, 예외가 발생하면, 할당된 메모리에 대한 접근 권한을 잃어버린다.
  2. 세가지 보장 수준의 차이
    1. 기본적인 보장: 예외 발생시, 예외를 다룰 수 있는 함수(사용자에게 책임 전달)로 던진다.
    2. 강력한 보장: 예외 발생 시, lock을 걸기 전의 상태로 되돌린다.
    3. 예외불가 보장: 예외가 절대 발생하지 않을 것을 보장한다.
  3. 복사 후 맞바꾸기
    • bgImage를 delete 하기 전, copy한다.
    • 정상적인 동작이라면 swap하고, 예외 발생시 copy한 값으로 되돌린다.

Q4. 🟢 쉬움

빈칸을 채우시오.

  • ___①은(는) 실행 전 상태로, 코드와 데이터로 구성된 파일이다.
  • __②은(는) ①이 실행되어 메모리에 적재된 상태이며, 코드·데이터 영역 외에 __③(동적 메모리)과 ___④(함수 호출 기록 및 로컬 변수) 영역이 추가된다.
  • 여러 개의 ②가 동시에 실행되는 것을 ___⑤이라 한다.

출처: server/game_server/1/2025-04-25-game_server_1_1.md

📝 내 답: ① 스크립트 ② 스레드 ③ 힙 ④ 스택 ⑤ 멀티스레드


Q5. 🟡 보통

게임 서버 DB를 설계할 때, Character 테이블의 OwnerUserAccountID 컬럼은 UserAccount 테이블의 기본 키(ID)를 참조하는 외래 키이며, 한 유저가 여러 캐릭터를 소유할 수 있다.

이 컬럼에 설정할 인덱스로 가장 적절한 것은?

  • A. 기본 키(Primary Key) — 값이 유일해야 하고 NULL을 허용하지 않는다
  • B. 유니크 인덱스(Unique Index) — 중복 값을 허용하지 않는 인덱스
  • C. 논유니크 인덱스(Non-unique Index) — 중복 값을 허용하면서 검색 속도를 높이는 인덱스
  • D. 인덱스 없음 — 외래 키 컬럼에는 별도 인덱스가 필요 없다

출처: server/game_server/7/2026-03-04-game_server_7_8.md

📝 내 선택: ( C )


✅ 결과

1 2 3 4 5
🔺 🔺

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

댓글남기기