본문 바로가기

학위공부/기술면접대비

(6)
[기술면접]C# 델리게이트와 이벤트 델리게이트와 이벤트 Delegate 메소드에 대한 참조, 변수가 아닌 메소드 자체를 넘기고 싶을 때 델리게이트를 사용한다. 델리게이트 체인 델리게이트에 메소드를 등록할 떄 += 연산자 또는 Delegate.Combine()메소드를 이용하여 델리게이트 실행시 실행될 메소드를 등록할 수 있다. 이 때 여러개의 메소드를 동시에 참조할 수 있는데 이를 델리게이트 체인이라고 한다. 델리게이트 체인은 참조된 순서대로 함수들을 호출하며, -= 연산자 또는 Delegate.Remove()메소드를 이용하여 체인을 끊을 수 있다. 익명 메소드 델리게이트로 참조할 메소드가 다시 사용할 일이 없다고 판단되면 익명 메소드를 통해 메소드를 연결시켜주는것이 효율적일 수 있다. 익명 메소드는 아래와 같은 형식으로 선언할 수 있다. ..
[기술면접]C# 가비지콜렉션(GC) Garbage Collection 메모리 관리 기법 중의 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 영역을 해제하는 기능. 할당된 힙 안의 객체들의 크기가 임계치를 넘어가는 순간 GC(Garbage Collection)을 수행하여 힙 메모리를 관리함. GC가 수행되는 순간 현재 수행중인 Thread들을 모두 중단시키고 GC Thread를 활성화한다. GC Thread는 힙 상에서 사용 중인 객체 참조 그래프를 생성하고 사용 중인 객체의 위치를 재조정함으로써 사용하지 않는 객체들을 모두 힙 상에서 제거한다. 장점 유효하지 않은 포인터 접근 방지 포인터 이중 해제 방지 메모리 누수 방지 단점 어떤 메모리를 해제할 지 결정하는 데 비용이 든다 GC가 일어나는 타이밍이나 점유 시간을 ..
[기술면접]메모리 관리 전략 메모리 관리 전략 프로세스는 독립된 메모리 공간을 갖고 있고, 운영체제 혹은 다른 프로세스의 메모리 공간에 접근할 수 없는 제약이 걸려 있다. 오로지 운영체제 만이 운영체제 메모리 영역과 사용자 메모리 영역의 접근에 제약을 받지 않는다. Swapping: 메모리의 관리를 위해 사용되는 기법. 표준 Swapping 방식으로는 round-robin과 같은 스케줄링의 다중 프로그래밍 환경에서 CPU 할당 시간이 끝난 프로세스의 메모리를 보조 기억장치(하드디스크)로 내보내고 다른 프로세스의 메모리를 불러 들일 수 있다. swap에는 큰 디스크 전송시간이 필요하기 때문에 현재에는 메모리 공간이 부족할때 Swapping이 시작된다. 단편화(Fragmentation) 프로세스들이 메모리에 적재되고 제거되는 일이 반복..
[기술면접]프로세스와 스레드 프로세스와 스레드 프로세스: 프로그램 메모리 상에서 실행중인 작업 스레드: 프로세스 안에서 실행되는 여러 흐름 단위 기본적으로 프로세스마다 최소 1개의 스레드 소유(메인 스레드 포함) 메모리 영역 Code: 코드 자체를 구성하는 메모리 영역(프로그램 명령) Data: 전역변수, 정적변수, 배열 등data: 초기화 된 데이터가 저장되는 영역bss: 초기화 되지 않은 데이터가 저장되는 영역 Heap: 동적 할당 시 사용 Stack: 지역변수, 매개변수, 리턴 값 등 임시 메모리 영역 스레드데이터영역 (연두색: Heap, Data, 파란색: thread, 노란색: stack) 스레드는 Stack만 따로 할당 받고 나머지 영역은 서로 공유 하나의 프로세스가 생성될 때, 기본적으로 하나의 스레드가 같이 생성됨 프..
[기술면접]크자이공부 SRTRP(스자이공부) 월드 스페이스에서 물체를 월드 좌표에 배치할 때 행렬을 연산하는 순서 이때 하나의 연산을 표현하기 위해 4X4 행렬을 사용하며, 이를 변환행렬이라고 한다. (맨 앞의 S를 '크기'라고 발음하여 크자이공부라고 부르기도 한다) 4X4 행렬을 사용하는 이유 3차원 벡터의 Translation을 표현하기 위해서는 4x4행렬이 필요하다. 왜냐하면 행렬은 위치와 무관하게 오직 방향과 크기만 서술하기 때문이다. 이를 이용하기 위해 3차원 벡터를 (x,y,z,1)과 같은 형태의 4차원 벡터로 가정하고 연산을 진행하며 이를 동차 좌표계라고 한다. 4차원 벡터의 w값을 0으로 설정하는 경우 이동 변환은 적용되지 않는다. 이동 행렬 이동행렬 회전 행렬 회전행렬 스케일 행렬 스케일 행렬 행렬의 연산 순..
[기술면접]렌더링 파이프라인 Rendering Pipeline 3차원의 가상 세계를 2차원의 이미지로 생성하는데 필요한 일련의 단계들을 렌더링 파이프라인(Rendering Pipeline)이라고 부른다. 그래픽스 파이프라인 과정 입력 조립기 버텍스 셰이더 테셀레이션 지오메트리 셰이더 레스터라이저 픽셀 셰이더 출력 병합기 입력 조립기(Input Assembler) 메모리에서 기하 자료(정점, 인덱스)를 읽어서 기본 도형을 조립한다. Primitive topology 정점들을 어떻게 엮어서 구조를 형성할 것인지 알려주는 수단이 Primitive topology이다. 정점을 두개 씩 엮어서 선분을 형성할 수도 있고, 세 개씩 엮어서 삼각형을 형성할 수도 있다. 거의 대부분 Trianglelist을 Primitive topology로 사용..