기술 면접용 질문들/운영체제 관련 맨텀 2023. 3. 20. 18:21
컨텍스트 스위칭이란? 문맥교환(Context Switching) 멀티 프로세스 환경에서 현재의 프로세스 상태(Context)는 보관하고, 다음 순서의 프로세스가 동작하면서 이전에 보관했던 상태를 복구하는 작업을 말한다. 컨텍스트 스위칭은 왜 필요한가? 멀티 프로세스 환경에서 사실은 한 번에 하나의 프로세스만 실행된다. 굉장히 빠르게 바뀌고 있기 때문에 동시에 실행되고 있는 것처럼 보이는 것. 이는 프로세스 스케줄링에 의해서 이루어진다. 실행 중인 프로세스의 CPU 할당 시간이 끝나면 해당 프로세스를 중지시키고 다음 프로세스를 실행해야 한다. 어디에 무엇을 저장하는가? 운영체제가 프로세스의 정보를 저장해놓는 공간인 PCB(Process Control Block)에 정보들이 저장&복구된다. - 프로세스 상태..
기술 면접용 질문들/유니티 관련 맨텀 2023. 3. 17. 14:39
쿼터니언의 정의 쿼터니언(사원수)는 회전 값을 나타내기 위해 복소수를 확장해 만든 수 체계이다. 유니티에서는? 직관적으로 회전값을 나타내기 위해서는 x, y, z의 방향으로 회전값을 각각 더해 각도를 표현하는 오일러(Euler) 체계를 사용한다. 직관적이고 적용하기도 쉬워서 유니티의 인스펙터에서는 오일러 값이 표시되고, 수정할 수 있다. 인스펙터를 Debug 모드로 확인하면 내부 값은 쿼터니언 값으로 관리되는 것을 확인할 수 있다. 주의할 점은 쿼터니언의 각 값들은 바로 어떤 회전값인지 알기 힘들다. 오일러에서 (0, 0, 90) 이었다면 -> 쿼터니언에서 (0, 0, 0.7071068, 0.7071068) 이다. 왜 사용하는데? 짐벌락을 방지하기 위해 사용된다. 짐벌락이란? 오일러체계에서 x, y, z..
기술 면접용 질문들/프로그래밍 관련 맨텀 2023. 1. 8. 16:00
최대 공약수, 최소 공배수는 코딩테스트 등에서 은근 많이 쓰이는 개념이다. 식을 외워두면 금방 구하기 떄문에 특히 최대공약수 공식은 외워 두는게 좋다. 최대공약수 (Greatest Common Divisor, GCD) 유클리드 호재법으로 구할 수 있다. 재귀를 이용하면 짧은 코드를 만들 수 있다. 나머지가 0이 될 때까지 두 수의 자리를 바꿔가면서 구하면 된다. // 최대공약수 재귀 함수. 한쪽이 0이 될 때까지 스왑하면서 나머지를 구한다. public int GCD(int a, int b) { if(b == 0) return a; else return GCD(b, a % b); } 최소공배수 (Least Common Multiple: LCM) 두 수를 곱한다음, 최대공약수로 나눠주기만 하면 되기 때문에..
기술 면접용 질문들/프로그래밍 관련 맨텀 2021. 5. 8. 16:26
왜 두 키워드가 비교될까? const 키워드와 readonly 키워드는 비슷한 기능을 하기 때문에 많이 비교되곤 한다. 두 키워드 모두 최초 값을 정한 뒤에는 값을 변경할 수 없게 만드는 기능을 가지고 있다. public const int myConst = 1000; public readonly int myRead = 2000; 그렇다면 다른점은 무엇일까? 조금 더 자세히 말하자면, const는 컴파일타임 상수를 정의한다. readonly는 런타임 상수를 정의한다. 컴파일타임 상수 const는 컴파일 타임에 변수가 값으로 대체된다. 그래서 반드시 변수의 선언과 동시에 값을 할당하며, 변경할 수 없다. 컴파일 시점에서 결정된 값이 변할 수 없음으로 모든 클래스의 인스턴스가 동일한 값을 가진다. 사용자 정의..
기술 면접용 질문들/유니티 관련 맨텀 2021. 4. 22. 21:34
Awake 인스턴스 직후, 게임 오브젝트가 활성화 상태라면, 스크립트의 enable과 관계없이 최초1회 호출됨. OnEnable 스크립트가 enable라면 게임오브젝트의 활성화 직후에 호출됨. Start 인스턴스가 활성화되면 첫번째 프레임의 업데이트 전의 호출. 게임 오브젝트가 활성화된 상태에서 스크립트가 enable이라면 최초 1회 호출됨. FixedUpdate 유니티에서 설정된 Fixed Timestep 시간간격마다 호출됨. CPU나 GPU병목에 의해 프레임이 지연될경우 프레임마다 여러번 호출될 수 있음. Update 프레임마다 한번 호출됨. LateUpdate Update후 한번 씩 호출됨. 3인칭 카메라같이 Update에 영향을 받아 변경해야 하는 추적에 적절함. yield WaitForEndFr..
기술 면접용 질문들/유니티 관련 맨텀 2021. 4. 22. 21:26
참고서적 : 유니티 그래픽스 최적화 스타트업 최적화를 하다보면 드로우콜(draw call), 배치(batch), 셋 패스 콜(set pass call) 등의 용어를 접하게 된다. 드로우콜(draw call) - 오브젝트가 실제 화면에 렌더링 되려면 CPU가 가지고 있는 정보들이 GPU에 전달 되어야한다. - 이러한 정보들을 전달한 뒤, CPU가 GPU에 렌더링하라고 명령을 보내는 것을 드로우 콜이라 한다. - 오브젝트의 메시 정보 - 텍스쳐 정보 - 쉐이더 정보 - 위치, 스케일 등 트랜스폼 정보 - 기타 등등.. 렌더링 과정 - Storage(HDD, SSD)에 담긴 데이터를 CPU가 읽어 들이고, 파싱하여 GPU에 해당 정보들을 복사한다. - 매 프레임 메모리에 불러오는 과정을 거친다면 과부하가 심해..