목록전체 글 (233)
Deff_Dev
어드레서블에 대해 공부를 하고 현재 진행 중인 프로젝트에 적용시켰다.구현 unit 리소스들은 게임 시작시 데이터를 받아오고, ui들은 필요할 때마다 어드레서블에서 해당 리소스를 동적 생성하는 것을 구현했다. 어드레서블에 대해 이해가 잘 되지않는다면 아래의 글을 참고하길 바란다. [Unity/C#] 어드레서블 (Addressable)모바일 게임을 빌드할 때, 게임에 들어가는 모든 리소스를 빌드 파일에 포함시킨다면 어떤 일이 벌어질까? 물론 2D 게임의 경우 리소스 용량이 크지 않아 큰 문제가 되지 않을 수 있다. 하지만 3Ddeff-dev.tistory.com 어드레서블과 비동기 처리에 대해 완벽하게 이해를 하고 코드를 작성한 것이 아니고 공부 목적으로 여러 방법 찾아가면서 구현한 내용이니 비 효율적인 부..
제네릭이란 무엇인가요?제네릭(Generic)은 데이터 형식을 일반화하여 코드의 유연성을 높이는 기능일반화 ⇒ 특수한 개념으로부터 공통된 개념을 찾아 묶는 것 → 데이터 형식제네릭을 사용하면 데이터 형식에 의존하지 않는 클래스를 작성할 수 있어, 코드 재사용성과 타입 안정성을 높일 수 있다. [Unity/C#] 일반화 프로그래밍 (Generic)일반화란 ?- 특수한 개념으로부터 공통된 개념을 찾아 묶는 것 이러한 일반화를 이용하는 프로그래밍이 일반화 프로그래밍 ! 일반화 프로그래밍의 일반화 대상 ▶ 데이터 형식 (Data Type)일반화deff-dev.tistory.com람다식(Lambda Expression)이 무엇인지 설명해주세요.(input-parameters) => expression // 식 람다..
가비지 컬렉터란 무엇인가요?가비지 컬렉터는 CLR의 메모리 관리 소프트웨어로, 할당할 힙 메모리 공간이 부족할 때, 가비지 컬렉터가 힙 메모리를 돌며 사용하지 않는 메모리를 회수한다.참조형 변수를 선언하는 경우 stack영역의 주소값과 heap영역의 실제 값이 나뉘게 된다. 프로그램을 실행하던 중 stack영역의 값을 pop하는 경우 heap 영역의 실제 값은 쓰이지 않지만 메모리 공간에 남아있게 된다. 이를 자동으로 추적하여 메모리를 회수한다.가비지 컬렉터의 장점과 단점에 대해 설명해주세요.프로그래머가 직접 메모리 해제를 안 해줘도 알아서 GC가 돌면서 메모리를 해제하기 때문에 편리하다.가비지 컬렉터가 실행되는 동안 프로그램의 성능이 일시적으로 저하될 수 있으며, 가비지 컬렉터는 힙 메모리가 부족할 때..
모바일 게임을 빌드할 때, 게임에 들어가는 모든 리소스를 빌드 파일에 포함시킨다면 어떤 일이 벌어질까? 물론 2D 게임의 경우 리소스 용량이 크지 않아 큰 문제가 되지 않을 수 있다. 하지만 3D 게임에서는 이야기가 달라진다. 기본적으로 3D 모델은 용량이 크고 무겁기 때문에, 게임에 필요한 모든 리소스를 빌드 파일에 포함시키면, 빌드 파일의 용량은 급격히 커질 것이다. 예전에는 구글 플레이스토어의 업로드 용량 제한이 200MB였지만, 지금은 2GB로 늘어나 조금은 여유가 생겼다. 하지만 여전히 볼륨이 있는 게임을 업로드하기에는 부담스러운 용량 제한이다. 이 때문에 많은 게임 개발자들은 게임에 들어가는 리소스를 빌드 파일에 포함시키지 않는 방법을 선택하고 있다. 모바일 게임을 설치하고 처음 실행할 때 추..
클래스를 다른 클래스로 상속하기 위한 방법은 무엇인가요?public class C {}public class D : C // 상속{ }클래스를 선언할 때, 클래스 이름 옆에 : 상속 받을 클래스 이름 작성하면된다.클래스 상속에서 다이아몬드 문제(diamond problem)가 발생하는 이유와 이를 해결하는 방법에 대해 설명해주세요.다이아몬드 문제는 두 개의 다른 하위 클래스가 동일한 상위 클래스를 상속받고, 이를 다시 다중 상속받는 클래스에서 발생한다. 이러한 구조로 인해 다중 상속을 받는 클래스는 동일한 상위 클래스의 인스턴스를 두 번 상속받게 되어, 메서드 호출이나 속성 참조 시 어떤 경로를 통해 상속받은 것인지 모호해진다.C#, Java은 다중 상속을 지원하지 않고 단일 상속만 지원하여 다이아..