virtual, abstract, interface에 대해
V 는 하나의 기능을 하는 가상 클래스이며 재정의 해서 사용합니다.
A 는 파생클래스의 기틀이 되는 기본 클래스입니다. 재정의를 필히 해야합니다.
I 는 A와 비슷하지만 멤버변수를 사용할수 없습니다. 서로 다른 계층의 타입이어도 같은 기능을 추가하고 싶을 때 사용합니다.
Coroutine
각기 다른 시점에 yield를 반환하여 마치 여러개의 스레드를 동작시키는 것과 같은 효과를 내는것으로 알고 있습니다.
코루틴과 invoke의 차이에 대해
코루틴은 매 프레임마다 돌아갈 지점을 정할수 있지만 Invoke는 내부에 타이머에 의해 체크를 하여 돌아가는 차이점이 있다고 알고 있습니다.
최적화 부분
모바일 게임은 저사양 기기에서 돌아가는것도 중요한데 최적화를 위해 했었던 일들에 대해 설명해봐라
저는 다수의 적이 나와 프레임 드랍이 심히 저하될수 있는 타워 디펜스 프로젝트를 진행했었는데 여기서 다수의 적을 오브젝트 풀링으로 미리 생성해놓고 필요한 만큼 활성화 해서 사용하는 방법을 채택했었습니다.
코루틴을 var 형으로 미리 캐싱해놓고 yield return new를 하지않게 해놓고 사용한적이 있었습니다.
프로세스 및 스레드
프로세스에 대해
컴퓨터에서 실행되고있는 작업 & 프로그램입니다. 각각 독립된 메모리 영역을 할당받습니다.
프로세스와 스레드
스레드는 프로세스 내에서 실행되는 여러 흐름의 단위입니다. Stack만 따로 할당받고 나머지는 공유하는 속성이있습니다.

스레드와 코루틴의 차이
스레드는 여러개의 작업을 병렬로 수행하지만 코루틴은 여러개의 작업을 잘게 쪼개서 나눠 수행하기 때문에 동시에 처리되는 것 처럼 보이게 됩니다.
C# & C++
C# 과 C++의 가장큰 차이
GC라고 생각합니다. C++은 반드시 메모리 할당을 받으면 해제를 시켜야하지만 C#은 GC가 알아서 해제해주는 차이가 있다고 생각합니다.
GC에 대해
메모리의 기법으로 동적으로 할당된 메모리 영역에서 필요없는 부분을 해제시켜주는 기능입니다.
GC최적화를 위해 할수있는일
오브젝트 풀링을 사용하고 코루틴의 New 를 사용을 줄입니다.
foreach문 자제 하는것 정도로 알고있습니다.
GC의 장점과 단점
장점
- 이미 해제된 메모리에 접근하지 않음
- 메모리 누수 같은 버그를 줄이거나 막을 수 있다.
단점
- GC가 일어나는 타이밍이나 점유시간 예측이 어렵다.
- 어떤 메모리를 해제할지 결정하는데 비용이 든다.
'Study' 카테고리의 다른 글
| SEO - 검색 엔진 최적화 (1) | 2022.10.31 |
|---|---|
| 2022.05.24 Study Day + 12 (0) | 2022.05.25 |
| 2022.05.10 Study Day + 11 (0) | 2022.05.11 |
| 2022.05.07 Study Day +10 (0) | 2022.05.09 |
| 2022.05.03 Study Day +9 (0) | 2022.05.03 |