일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- InputManager
- BGM
- UI
- 코루틴
- script
- FSM
- invokec#events
- 스택
- 람다식
- c#
- 스파르타내일배움캠프
- 장애물달리기
- 프로그래머스
- 자료구조
- 메서드
- Generic
- delegate
- 비선형자료구조
- 효과음
- LINQ
- skybox
- 유한상태머신
- unity
- 직렬화
- 인터페이스
- 유니티
- 배열
- inputsystem
- soundmanager
- ObjectPool
- Today
- Total
목록분류 전체보기 (65)
Unity 개발일지
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cgyVgw/btsIzxBS37R/cWXHv6TEpKkQyokqtKjsh0/img.png)
[확인문제] 1. Time.timeScale을 0으로 하면 Update와 FixedUpdate는 모두 호출이 되지 않을까요? 그 이유는 무엇일까요?더보기Update와 FixedUpdate 모두 호출되지 않는다.Time.timeScale은 게임의 시간 흐름을 제어하며, 0으로 설정하면 일반적인 프레임 업데이트가 멈춘다.따라서, Time.timeScale을 0으로 사용하면 게임을 일시정지하거나 특정 이펙트를 구현하는 데 유용할 수 있으나 게임 오브젝트의 로직을 제어하는데 사용해서는 안된다. 로직 제어에는 Start, Awake, OnEnable, OnDisable과 같은 MonoBehaviour 생명주기 메서드를 사용해야한다.2. Update의 호출주기에 영향을 주는 것은 무엇일까요?더보기프레임 레이트Upd..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/wg8FQ/btsIy5xElZp/TmKFeb47JzMgUEaklzKi6k/img.png)
[확인문제] 1. Queue가 무엇인지 알고있나요? 어떤 방식으로 작동하는지 설명할 수 있을까요?더보기FIFO(First In First Out 선입선출) 방식으로 작동하는 자료구조로 다음과 같은 방식으로 작동한다. Enqueue : Queue의 맨 뒤에 데이터를 삽입Dequeue : Queue의 맨 앞에 있는 데이터를 제거하고 반환Peek : Queue의 맨 앞에 있는 데이터를 확인(제거하지 않고 확인만)IsEmpty : Queue가 비어있는지 확인 2. Queue를 직접 구현해본 경험이 있을까요? 없다면 직접 구현해봅시다.클래스 및 주요 멤버 변수data타입: T[] (제네릭 타입 배열)역할: 큐의 요소를 저장하는 배열입니다. 큐의 최대 크기는 이 배열의 크기로 제한됩니다. 배열의 초기 크기는 100..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bX0Aaq/btsIy3Nkyr2/uXiK3RXSSNpwgQzDYStVi1/img.png)
[확인문제]1. Stack이 무엇인지 알고 있나요? 어떤 방식으로 작동하는지 설명할 수 있을까요?더보기스택은 LIFO(Last In, First Out 후입선출) 방식으로 동작하는 자료구조로 다음과 같은 방식으로 작동한다.Push : 스택에 데이터를 삽입Pop : 스택의 맨 위에 있는 데이터를 제거하고 반환Peek : 스택의 맨 위에 있는 데이터를 확인한다.(제거하지 않고 확인만)IsEmpty : 스택이 비어있는지 확인한다 2. Stack을 직접 구현해본 경험이 있을까요? 없다면 직접 구현해봅시다. 클래스 및 주요 멤버 변수data타입: T[] (제네릭 타입 배열)역할: 스택의 요소를 저장하는 배열입니다. 스택의 최대 크기는 이 배열의 크기로 제한됩니다. 배열의 초기 크기는 1000으로 설정되어 있습니다..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/4ReUj/btsIsdKn79l/vSrFt9dsST0mLWuMzg0lu0/img.png)
[확인문제]1. LinkedList가 무엇인지 알고 있나요? 어떤 방식으로 작동하는지 설명할 수 있을까요?더보기LinkedList는 데이터를 저장하는 선형 자료 구조이다. 배열과는 달리, 데이터를 담고 있는 노드 단위로 구성되어 있으며, 각 노드는 다음 노드를 가리키는 링크 를 가지고 있다.따라서 LinkedList의 노드들은 연결되어있는데, 이로 인해 리스트의 순서를 유지할 수 있다. LinkedList는 '단일 연결 리스트'와 '이중 연결 리스트'로 나눌 수 있다.단일 연결 리스트 : 각 노드는 다음 노드를 가리키는 링크만을 가지고 있다.이중 연결 리스트 : 각 노드는 다음 노드를 가리키는 링크뿐만 아니라, 이전 노드를 가리키는 링크도 가지고 있다. 노드(Node) : 각 노드는 데이터와 다음 노드..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/xTxEu/btsIsHp6xGK/tK4IUEEVVLMhEgG4lE95gK/img.png)
[확인문제] 1. 다음 코드에서 제네릭을 사용한 부분을 식별하고, 해당 코드가 제네릭을 사용하지 않았을 때 발생할 수 있는 문제점에 대해 설명하세요.더보기제네릭을 사용한 부분public class Box{ public T Value { get; set; } public void DisplayValue() { Console.WriteLine($"Value: {Value}"); }} 제네릭을 사용하지 않으면 각 데이터 타입에 대해 별도의 클래스를 작성해야한다.제네릭을 사용하면 코드 재사용성을 높이고, 타입 안전성을 보장할 수 있다.제네릭을 사용하지 않으면 런타임에 잘못된 타입이 사용될 수 있어 오류가 발생할 수 있다. 2. 아래 코드가 어떤 기능을 하는지, 어떤 방식으로 동..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/LVlv3/btsIqQt918c/e2Gpd4Jigb41V8Nwd56C7K/img.png)
[확인 문제] 1. 위의 코드가 문제가 되는 이유를 메모리 관점에서 설명해주세요.더보기위 코드에서 LogMessages는 문자열 연결 연산('+')을 통해 로그 메시지르 추가한다.String은 불변 객체이므로, 매번 새로운 문자열 객체가 생성되고, 이전 문자열이 가비지 컬렉션 대상이 된다.10,000번의 반복문이 실행되면서 많은 양의 메모리 할당과 해제가 반복적으로 발생하여 성능 저하와 메모리 낭비가 발생한다. 2. 아래와 같이 string이 아닌 StringBuilder가 권장되는 이유는 무엇일까요?더보기StringBuilder는 가변 객체로, 내부 버퍼를 사용하여 문자열을 수정한다.문자열 연결 시 새로운 객체를 생성하지 않고, 기존 버퍼를 재사용하므로 메모리 사용이 효율적이고, 성능이 향상된다. [..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/t3ZIb/btsInNj765h/1lh7yJVJ9NmaiwuA2P55nK/img.png)
[확인문제] 1. 위와 같은 코드에서, 다음과 같이 다중 상속을 하는 것이 가능할까요? 가능/불가능하다면 이유는 무엇일까요?더보기C#에서는 다중 상속이 불가능하다. C#은 다중 상속을 지원하지 않으며, 그 이유는 다중 상속이 복잡성과 모호성을 초래할 수 있기 때문이다. 특히, 여러 기본 클래스가 동일한 메서드를 구현할 경우 어떤 메서드를 상속받아야 할지 모호해진다. 2. 만약 C#에서 다중 상속이 지원되었다면, 클래스 D는 어떤 문제에 직면하게 될까요?더보기클래스 D는 "다이아몬드 문제"에 직면하게 된다. 이는 B와 C가 동일한 부모 클래스 A를 상속받고, D가 B와 C를 상속받을 때 발생한다. B와 C가 A의 동일한 메서드를 오버라이드할 경우, D는 어떤 메서드를 상속받아야 할지 모호해진다. [설명 문..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ypOB8/btsImOcMJte/KbV8KyADjQAO6grr5qK2Y0/img.png)
[확인 문제]1. 다음 struct 코드와 class 코드의 결과를 예측해보고, 이유를 생각해봅시다.더보기[Struct 의 결과]Point 1 X: 10Point 2 X: 30 [이유]Point는 struct로 정의되어 있어 값 형식이다.point2는 point1의 값을 복사받아 독립적인 인스턴스가 된다.따라서 point2.X를 수정해도 point1.X는 영향을 받지 않는다. [Class 의 결과]Point 1 X: 30Point 2 X: 30 [이유] Point는 class로 정의되어있어 참조 형식이다.point2는 point1과 동일한 인스턴스를 참조하게 된다.따라서 point2.X를 수정하면 point1.X도 영향을 받아 동일한 값을 갖게 된다. [설명 문제]1. 참조 형식과 값 형식에 대해 설명..