일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 직렬화
- UI
- 프로그래머스
- 스파르타내일배움캠프
- 메서드
- LINQ
- 배열
- FSM
- 스택
- soundmanager
- 람다식
- invokec#events
- BGM
- unity
- c#
- delegate
- 코루틴
- 유한상태머신
- Generic
- skybox
- 비선형자료구조
- 효과음
- inputsystem
- 유니티
- script
- ObjectPool
- 자료구조
- InputManager
- 인터페이스
- 장애물달리기
- Today
- Total
목록전체 글 (71)
Unity 개발일지

[확인문제]1. Stack이 무엇인지 알고 있나요? 어떤 방식으로 작동하는지 설명할 수 있을까요?더보기스택은 LIFO(Last In, First Out 후입선출) 방식으로 동작하는 자료구조로 다음과 같은 방식으로 작동한다.Push : 스택에 데이터를 삽입Pop : 스택의 맨 위에 있는 데이터를 제거하고 반환Peek : 스택의 맨 위에 있는 데이터를 확인한다.(제거하지 않고 확인만)IsEmpty : 스택이 비어있는지 확인한다 2. Stack을 직접 구현해본 경험이 있을까요? 없다면 직접 구현해봅시다. 클래스 및 주요 멤버 변수data타입: T[] (제네릭 타입 배열)역할: 스택의 요소를 저장하는 배열입니다. 스택의 최대 크기는 이 배열의 크기로 제한됩니다. 배열의 초기 크기는 1000으로 설정되어 있습니다..

[확인문제]1. LinkedList가 무엇인지 알고 있나요? 어떤 방식으로 작동하는지 설명할 수 있을까요?더보기LinkedList는 데이터를 저장하는 선형 자료 구조이다. 배열과는 달리, 데이터를 담고 있는 노드 단위로 구성되어 있으며, 각 노드는 다음 노드를 가리키는 링크 를 가지고 있다.따라서 LinkedList의 노드들은 연결되어있는데, 이로 인해 리스트의 순서를 유지할 수 있다. LinkedList는 '단일 연결 리스트'와 '이중 연결 리스트'로 나눌 수 있다.단일 연결 리스트 : 각 노드는 다음 노드를 가리키는 링크만을 가지고 있다.이중 연결 리스트 : 각 노드는 다음 노드를 가리키는 링크뿐만 아니라, 이전 노드를 가리키는 링크도 가지고 있다. 노드(Node) : 각 노드는 데이터와 다음 노드..

[확인문제] 1. 다음 코드에서 제네릭을 사용한 부분을 식별하고, 해당 코드가 제네릭을 사용하지 않았을 때 발생할 수 있는 문제점에 대해 설명하세요.더보기제네릭을 사용한 부분public class Box{ public T Value { get; set; } public void DisplayValue() { Console.WriteLine($"Value: {Value}"); }} 제네릭을 사용하지 않으면 각 데이터 타입에 대해 별도의 클래스를 작성해야한다.제네릭을 사용하면 코드 재사용성을 높이고, 타입 안전성을 보장할 수 있다.제네릭을 사용하지 않으면 런타임에 잘못된 타입이 사용될 수 있어 오류가 발생할 수 있다. 2. 아래 코드가 어떤 기능을 하는지, 어떤 방식으로 동..

[확인 문제] 1. 위의 코드가 문제가 되는 이유를 메모리 관점에서 설명해주세요.더보기위 코드에서 LogMessages는 문자열 연결 연산('+')을 통해 로그 메시지르 추가한다.String은 불변 객체이므로, 매번 새로운 문자열 객체가 생성되고, 이전 문자열이 가비지 컬렉션 대상이 된다.10,000번의 반복문이 실행되면서 많은 양의 메모리 할당과 해제가 반복적으로 발생하여 성능 저하와 메모리 낭비가 발생한다. 2. 아래와 같이 string이 아닌 StringBuilder가 권장되는 이유는 무엇일까요?더보기StringBuilder는 가변 객체로, 내부 버퍼를 사용하여 문자열을 수정한다.문자열 연결 시 새로운 객체를 생성하지 않고, 기존 버퍼를 재사용하므로 메모리 사용이 효율적이고, 성능이 향상된다. [..

[확인문제] 1. 위와 같은 코드에서, 다음과 같이 다중 상속을 하는 것이 가능할까요? 가능/불가능하다면 이유는 무엇일까요?더보기C#에서는 다중 상속이 불가능하다. C#은 다중 상속을 지원하지 않으며, 그 이유는 다중 상속이 복잡성과 모호성을 초래할 수 있기 때문이다. 특히, 여러 기본 클래스가 동일한 메서드를 구현할 경우 어떤 메서드를 상속받아야 할지 모호해진다. 2. 만약 C#에서 다중 상속이 지원되었다면, 클래스 D는 어떤 문제에 직면하게 될까요?더보기클래스 D는 "다이아몬드 문제"에 직면하게 된다. 이는 B와 C가 동일한 부모 클래스 A를 상속받고, D가 B와 C를 상속받을 때 발생한다. B와 C가 A의 동일한 메서드를 오버라이드할 경우, D는 어떤 메서드를 상속받아야 할지 모호해진다. [설명 문..

[확인 문제]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. 참조 형식과 값 형식에 대해 설명..

[확인문제] 1. 위 코드의 출력 결과는 무엇인가요? 그 이유는 무엇인가요?더보기7과 35가 출력된다.첫번째 MathOperation은 Add메서드로 설정되어 3과 4를 더한 결과인 7을 출력두번째 MathOperation은 Multiply메서드로 설정되어 7과 5를 곱한 결과인 35를 출력 2. 위 코드의 Main함수를 아래처럼 바꿔도 같은 방식으로 동작할까요? 그 이유는 무엇인가요?더보기같은 방식으로 동작한다.Func는 C#에서 재공하는 내장 델리게이트 타입 중 하나로 매개변수를 받아 결과를 반환하는 메서드를 나타낸다.Func는 두개의 ins 매개변수를 받아 int 결과를 반환한다.둘 다 동일한 시그니처(매개변수와 반환타입)을 가지므로 동일하게 작동한다. 3. 델리게이트를 사용하여 메서드를 매개변수로..

객체지향에 대해 잘 알고있는지 간단한 문제를 풀어보자.[실전문제]1. 위 코드에서 삼각형 Triangle 클래스를 새로 작성한다고 했을 때, AreaCalculator의 코드를 수정하지 않고, AreaCalculator가 삼각형의 넓이를 계산하도록 만들 수 있을까요?더보기IShape 라는 인터페이스를 정의하여 각 도형 클래스가 해당 인터페이스를 상속하게 하였고, AreaCalculatorExtensions 확장 메서드를 사용하여 AreaCalculator를 수정하지 않고, 삼각형 넓이를 계산할 수 있도록 CalculateTriangleArea 메서드를 작성하였다. 확장 메서드는 특정 클래스의 인스턴스 메서드처럼 호출된다.확장 메서드는 첫 번째 매개변수로 지정된 클래스의 인스턴스를 메서드 호출 대상 객체로..