C# 의 이해
언어 스펙
구조체와 클래스 (필드 크기의 합이 16 byte가 넘는 구조체가 Heap 할당이 발생한다는 정보는 잘못되었음에 주의하세요)
인터페이스와 추상, 가상함수
상속과 다형성
배열과 리스트
namespace
partial
객체지향(추상화, 캡슐화, 상속성, 다형성)
지역변수와 전역변수
delegate와 event 차이
유니티와 C#의 관계
메모리
힙 할당 되는 케이스와 아닌 케이스
오브젝트 타입에 밸류 타입을 대입하면 생기는 일
박싱과 언박싱
가비지에 대하여
세대별 가비지 컬렉션
LOH, SOH (라지 오브젝트 힙, 스몰 오브젝트 힙)
최신 기능
패턴 매칭
Nullable
유니티에 대한 이해
기능
코루틴과 Invoke
게임루프와 델타 타임에 대한 이해
CLR과 유니티 Mono
Mono와 IL2CPP
Update, FixedUpdate, LateUpdate
Awake, Start, OnEnable, OnDisable, OnDestroy
최적화
스태틱 게임오브젝트와 배칭
유니티의 가비지 컬렉션
드로우 콜과 배치
렌더링 파이프라인 (큐브 하나를 게임뷰에 그리기 위해 유니티 코어 로직에서 일어나는 일)
경험
String Concat 루프 대책
최적화 전략 수립 과정
코루틴과 비동기에 대하여
스크립트 실행 순서
Fake Null에 대해
Dictionary의 Key로 Enum 사용 (버전 별 상이)
스레드, 유니티 메인 스레드
펀더멘탈
프로세스와 스레드
API란?
값 형식과 참조 형식
메모리구조 (코드영역, 데이터영역, 힙 영역, 스택 영역)
리스트, 딕셔너리, 큐, 스택, SortedList, LinkedList
AOT와 JIT, 인터프리터
컴퓨터 구조에서 캐시 히트와 캐시 미스
L1, L2, L3 캐시
컨텍스트 스위칭
콜스택
보안
PE구조
커널모드와 유저모드
IOCTL
드라이버
프로세스와 모듈, 스레드
언어
C와 C++의 차이점
C#과 C++의 차이점
C++11/C++14/C++17 다뤄본 것
C++ 가상함수 테이블
C++ 스마트포인터
C++ 캐스팅 종류와 작동방식 static_cast, dynamic_cast, interpret_cast, const_cast
C++ stdcall과 cdecl 차이
C++ 구조체 패딩
C++ 이중 포인터를 이용한 이차원 동적할당과 이차원 배열과의 차이점
자료구조
list, vector, map
요소 전체 순회시 가장 빠른 순서대로 나열 및 BigO 표기
삽입 및 삭제의 속도가 빠른 순서대로 나열 및 BigO 표기
랜덤 액세스가 빠른 순서대로 나열 및 BigO 표기
사용해야하는 상황, 하지 말아야 할 상황 구분하기
디자인패턴
싱글톤 패턴
옵저버 패턴
스트레이트지 패턴
팩토리 패턴
빌더 패턴
커맨드 패턴
브리지 패턴
그래픽스
버텍스 셰이더와 픽셀 셰이더
래스터라이저
포워드와 디퍼드 렌더링
디더링
텍스처 압축 포맷
드로우콜
오클루전 컬링과 프러스텀 컬링
소프트마스크
스텐실
알파테스트, 알파블렌딩
알고리즘
DFS 구현 방식
DFS와 다익스트라 차이, 장단점
퀵소트 버블소트
가장 빠른 머지소트 구현법
쿼드트리, 옥트리
네트워크
TCP/UDP 차이
리틀 엔디언, 빅 엔디언
패킷 컨테이너
소켓
P2P, 릴레이, 데디케이트 서버
데드레커닝
락스텝
하나씩 찾아가며 공부해가는 것이 기술 면접 대비에 도움이 됩니다.