CS 질문 - 1

2026. 10. 15. 21:34·알고리즘 & cs 테스트
1) 가상함수테이블과 virtual에 대해 설명하시오.
더보기

가상함수 는 부모 클래스의 포인터나 참조로 자식 클래스 객체를 다룰때 실제 객체의 타입에 맞는 함수를 호출할 수 있도록 해주는 기능입니다. 여기서 가상 함수 테이블은 가상 함수들의 주소를 저장해 두는 테이블입니다.

 
2) 오버로딩 오버라이딩 차이 와 상속이 무엇인지 설명하시오.
더보기

오버로딩은 같은 이름의 함수 를 매개변수값을 다르게 해서 여러개 만드는것이고, 오버라이딩이란 부모의 함수를 자식이 다시 재정의 하는것입니다. 상속이란 기존 클래스의 기능을 물려받아 새로운 클래스를 만드는 것입니다.

 
3) 스마트포인터와 RAII에 대해 설명하시오.
더보기

스마트포인터는 동적으로 할당한 객체의 메모리를 자동으로 관리해주는 기능입니다

unique_ptr, shared_ptr, weak_ptr 등이 있습니다

RAII은 자원의 획득과 해체를 객체의 수명에 연결하도록 하는 설계 방식 기법입니다. 객체가 생성될 때 자원을 획득하고

객체가 소멸할 때 자원을 헤제하도록 설계합니다.

 

4) 스택과 힙 메모리의 차이점에 대해 서술하시오

더보기
스택은 함수 호출 시 생성되는 지역 변수와 매개변수 등을 저장하는 영역으로 함수 실행이 끝나면 일반적으로 자동 해제됩니다. 메모리할당과 해제가 빠르지만 사용할수 있는 공간이 제한적이여서 과도하게 사용시 스택 오버플로 현상이 일어납니다
반면 힙은 프로그램 실행 중 동적으로 메모리를 할당하여 사용하는 영역입니다 필요한 시점에 메모리를 할당하고 객체의 수명을 유연하게 관리할수 있지만 메모리관리를 잘 못하면 메모리 누수가 발생할 수 있습니다 이럴때 쓰는것이 바로 스마트포인터입니다.

 

5) 동적할당에 대해 서술하시오.
더보기

동적할당은 프로그램 실행 중에 필요한 메모리 공간을 할당받아 사용하는 방식입니다.

동적할당을 잘 사용하면 메모리 크기와 객체의 수명을 유연하게 관리할수 있습니다 하지만 메모리 관리를 잘 하지 않는다면 즉 해제를 잘 관리하지 않는다면 메모리 누수 현상이 발생할 수 있습니다.

 

6) 가비지 컬렉션이란? 그리고 단점은?

더보기

참조되지 않는 메모리를 자동으로 해제해주는 시스템

프로그래머가 직접 메모리를 해제할때는 해제 시점을 정확히 예측이 가능하지만 가비지 컬렉션 사용시 그 시점을 예측하기 힘들다. 성능저하도 발생할수있으며 가비지 컬렉션이 실행되는 동안 가비지 컬렉션을 담당하는 스레드를 제외한 모든 스레드의 작업을 멈추는 과정을 거치기도 한다. 그래서 가비지 컬렉션이 실행되는 동안 성능이 급격히 저하될수있다.

 

7) 힙과 우선순위 큐의 차이

더보기

힙은 이진트리의 형식을 활용해 빠르게 최대값과 최소값을 찾는 알고리즘,

우선순위 큐는 우선순위가 높은 대상이 가장 앞에 위치하도록 구현된 큐 이다.

우선순위큐를 구현하는 방법중에 힙을 사용하는 방식이 대표적이지만 힙이 아닌 방식으로도 우선순위 큐를  구현 가능하다 

(배열, 링크드리스트 등등)

 

8)클래스, 객체, 인스턴스의 차이

더보기

구현하고자 하는 대상을 객체 라고하며 코드를 통해 객체의 속성을 구체화한 것을 클래스 라고 합니다

코드로 작성된 클래스가 생성되어 메모리에 적재된 것을 인스턴스 라고 합니다

 

9) push_back 과 emplace_back의 차이

더보기

push_back은 자료구조에 삽입하고자 하는 값을 인자로 받기 떄문에 인자 전달 과정에서 복사가 발생할 수 있다

반면 emplace_back은 생성자의 인자를 함수로 받아 내부에서 객체를 생성하게 되어 전달 과정에서 복사가 발생하지않는다

그래서 emplace_back이 성능상 이점을 노릴수 있다.

 

10) 앵커란? (Unreal engine)

더보기

UI를 나타낼때 스크린에 렌더링 되는 위치의 기준을 잡아주는 기능

다양한 해상도에서 자연스럽게 렌더링할수 있게 도와주는 언리얼 엔진의 기능

11) 객체 지향,  절차지향이란 둘의 차이?

더보기

객체지향과 절차지향의 차이는 프로그래밍을 바라보는 시점에 존재

객체지향이란 데이터와 기능을 묶어서 프로그램을 구성하는 방식

절차지향이란 프로그램이 수행할 작업을 순서와 절차에 따라 구성하는 방식

절차지향은 작업의 순서를 중심으로, 객체지향은 객체와 객체의 역할을 중심으로 구성됩니다

 

한마디로 객체지향은 사물을 보는 시각으로 프로그래밍을 하고자 하는 방법론

 

12) 메시와 머티리얼이란?

더보기

메시란 대상이 화면에 어느만큼 그려져야 하는지 결정짓는 데이터, 여러개의 버텍스로 구성되어있습니다

머티리얼은 메시에 의해 정해진 영역을어떤 색상으로 그려야하는지를 결정짓는 데이터

 

13)오브젝트 풀링이란?

더보기

오브젝트가 필요할 때 마다 동적으로 할당하는건 런타임 성능의 저하를 유발할수 있기 때문에

미리 대량의 메모리를 할당해놓고 필요할 때마다 사용하는 최적화 기법입니다.

 

14) UDP와 TCP의 차이

더보기

UDP는 비연결 지향형 프로토콜 TCP는 연결 지향형 프로토콜 

TCP의 경우 안전한 데이터 송수신을 위해 3 way handshake로 서로 연결합니다

패킷의 송수진 과정에서의 패킷 신뢰성을 보장한다.

UDP는 별도의 처리 없이 데이터를 목적지로 보내기때문에 신뢰성이 보장되어있지않다

하지만 송수신 속력이 UDF가 TCP보다 훨씬 빠르다

TCP는 파일 전송등 신뢰성이 필요할때사용되고 UDP는 동영상 스트리밍 등 속도가 중요한 경우에 사용된다

 

15) 상속을 사용하는 이유

더보기

상속을 사용하는 주 목적은 코드의 재사용입니다

한클래스에 정의된 내용을 다른 클래스에도 똑같이 정의해야한다면 클래스의 상속을 통해 기능을 물려받아

사용할수있습니다.

저작자표시 비영리 변경금지 (새창열림)

'알고리즘 & cs 테스트' 카테고리의 다른 글

CS 질문 - 2  (0) 2026.10.16
CS질문관련 정리된 Github블로그  (0) 2026.09.14
전위, 중위, 후위 트리  (0) 2026.05.05
완전탐색과 백트래킹  (0) 2026.04.21
LinkedList(연결 리스트)  (0) 2026.04.13
'알고리즘 & cs 테스트' 카테고리의 다른 글
  • CS 질문 - 2
  • CS질문관련 정리된 Github블로그
  • 전위, 중위, 후위 트리
  • 완전탐색과 백트래킹
lucodev
lucodev
언리얼 포폴개발 일기
  • lucodev
    루코 개발테이블
    lucodev
  • 전체
    오늘
    어제
    • 분류 전체보기 (267)
      • Unreal 프로젝트 다이어리 (137)
        • 첫번째 프로젝트 (73)
        • 두번째 프로젝트 (63)
      • 토이 프로젝트 (2)
        • 세번째 프로젝트 (2)
      • Unreal 팁 (8)
      • Unreal 디버깅 (9)
        • C++ 팁 (1)
      • C++ 프로그래머스 & 백준 (73)
        • Stack,Queue (8)
        • Hash (4)
        • Heap (2)
        • Sort (5)
        • Brute Force, BackTracking (6)
        • Greedy (2)
        • BFS , DFS (10)
        • Graph (2)
        • Dynamic Programming (1)
        • C++ Math (2)
        • 기타 문제 (14)
        • C++ 백준 (13)
        • 문자열 (1)
      • 알고리즘 & cs 테스트 (8)
      • 취준일기 (1)
      • 개인 코테 & 스타디 <비공개> (29)
        • 코드 개인보관함 (9)
        • 코딩테스트+@ (11)
        • 알고리즘 스타디 (6)
        • 알고리즘 스타디 과제 (3)
        • 비공개 (0)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • 링크

  • 공지사항

  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 태그

    언리얼 컷씬
    언리얼 세키로
    unreal
    언리얼 behaviortree
    언리얼 상호작용
    unreal 세키로
    언리얼 인벤토리
    언리얼
    언리얼 parkour
    언리얼 ui
    언리얼 behavior tree
    언리얼 시퀀스
    언리얼 인터렉션
    unreal 인벤토리
    언리얼 비헤이비어트리
    unreal 파쿠르
    unreal 상호작용
    언리얼 AI
    unreal inventory
    언리얼 파쿠르
  • hELLO· Designed By정상우.v4.10.3
lucodev
CS 질문 - 1
상단으로

티스토리툴바