자료구조 : 선형구조와 비선형구조
·
C#
데이터를 저장하고 관리하는 방식에 따라 자료구조는 크게 선형구조와 비선형구조로 나눌 수 있습니다. 각각의 자료구조는 고유한 특성과 장단점을 가지며, 적절한 활용이 필요합니다. 이 글에서는 선형구조와 비선형구조의 대표적인 자료구조들의 특성과 장단점을 자세히 알아보겠습니다. 선형구조 선형구조는 데이터가 연속적으로 나열되는 구조를 말합니다. 배열 (Array) 특성: 연속적인 메모리 위치에 저장됩니다. 인덱스를 사용하여 원하는 위치의 데이터에 쉽게 접근할 수 있습니다. 장점: 빠른 데이터 접근이 가능합니다. 단점: 크기가 고정되어 있어 확장이 어렵습니다. 중간에 데이터를 삭제하거나 삽입할 때 비효율적입니다. int[] numbers = new int[5] {1, 2, 3, 4, 5}; Console.Write..
왜 transform.position.x를 직접적으로 수정 할 수 없을까??
·
Unity
가장 인기 있는 게임 개발 플랫폼 중 하나인 Unity는 유연하고 최적화된 다양한 기능을 제공합니다. 그러나 이러한 유연성을 통해 특정 복잡성을 이해할 필요가 있습니다. 많은 신규 사용자들을 곤혹스럽게 하는 특징 중 하나는 Transform.position 속성의 x 구성 요소(y 또는 z)를 직접 수정할 수 없다는 것입니다. 불변 벡터 Unity에서 transform.position 속성은 월드스페이스에서 GameObject의 위치를 나타내는 Vector3 객체를 반환합니다. 그러나 Vector3 구조는 불변입니다. 불변의 객체나 구조는 만들어진 후에 상태나 값을 수정할 수 없습니다. 즉, transform.position에서 Vector3을 가져오면 실제 위치 데이터에 대한 참조가 아닌 위치의 복사본..
C# : File
·
C#
C#의 영역에서 파일 작업은 필수적입니다. System.IO.File 클래스는 .NET 프레임워크의 필수 구성 요소로서 파일 생성, 읽기, 업데이트 및 삭제에 도움이 되는 다양한 정적 메서드를 제공합니다. 이 블로그 게시물에서는 File 클래스의 핵심 메서드를 분석하고 그 유용성을 보여드리겠습니다. File 클래스 소개 File 클래스는 FileStream 또는 StreamReader/StreamWriter를 수동으로 만들 필요 없이 파일을 관리하는 정적 메서드를 제공합니다. 이 메서드는 다양한 시나리오에서 파일을 처리하는 데 간단하고 효율적으로 설계되었습니다. 자주 사용되는 메서드 File.Create(string path) : 지정한 경로에 파일을 만들거나 덮어씁니다. FileStream myFile..
C# : Path
·
C#
C#에서 파일 경로, 디렉터리 및 URI를 다룰 때 가장 유용한 클래스 중 하나는 System.IO 네임스페이스 내에 있는 Path 클래스입니다. 이 블로그 게시물에서는 Path 클래스의 필수 메서드를 분석하고 일상적인 코딩에서 어떻게 원활하게 사용할 수 있는지 보여드리겠습니다. Path 클래스 소개 Path 클래스는 파일 또는 디렉터리 경로 정보를 포함하는 문자열에 대한 작업을 수행할 수 있는 정적 메서드 및 속성을 제공합니다. 이러한 작업은 본질적으로 플랫폼에 안전합니다. 즉, 메소드는 개발자의 추가적인 노력 없이 다른 운영 체제의 경로 형식을 처리합니다. 메서드 목록 GetFileName(string path) : 지정한 경로 문자열에서 파일 이름 및 확장자를 검색합니다. string path = ..
허프만 알고리즘(Huffman Algorithm)
·
C#/Algorithm
디지털 시대는 JPEG 이미지, MP3 오디오 파일, ZIP 아카이브 등 데이터 압축을 통해 발전합니다. 데이터 압축의 기본 알고리즘 중 하나는 허프만 알고리즘(Huffman Algorithm)입니다. 이 블로그 게시물에서는 Huffman 알고리즘을 이해하고 C#을 사용하여 작동하는 방식을 보여줍니다. 허프만 알고리즘이란 무엇입니까? 허프만 알고리즘은 창시자인 David Huffman의 이름을 따서 명명된 무손실 데이터 압축 방법입니다. 자주 사용되는 기호는 짧은 코드로, 자주 사용되지 않는 기호는 긴 코드로 인코딩하는 방식으로 작동합니다. 영어에서 가장 자주 사용되는 문자인 "e"가 긴 일련의 비트로 인코딩되고 "z"와 같이 거의 사용되지 않는 문자에는 짧은 코드가 제공된다고 상상해 보십시오. 그것은 ..
C#에서 재귀 호출 이해하기
·
C#/Algorithm
재귀는 일단 이해되면 많은 문제에 대한 접근 방식을 크게 단순화할 수 있는 개념입니다. 이를 제대로 파악하기 위해 더 많은 예제를 살펴보고 C#에서 재귀 호출이 작동하는 방식을 자세히 살펴보겠습니다. 재귀란 무엇입니까? 프로그래밍에서의 재귀란 문제를 더 작고 관리하기 쉬운 하위 문제로 나누어 문제를 해결하기 위해 직접 또는 간접적으로 자신을 호출하는 함수를 말합니다. 재귀 함수에는 일반적으로 무한 루프에 빠지지 않도록 종료 조건이 있습니다. 거듭제곱 이 작업은 숫자의 거듭제곱을 계산하는 것입니다. 예를 들어, '3'을 '4'(3^4) 거듭제곱하면 '3 * 3 * 3 * 3 = 81'이 됩니다. 재귀를 사용하여 이 문제를 해결하는 방법은 다음과 같습니다. public static int Power(int ..
Destroy 와 DestroyImmediate
·
Unity
Unity에서 객체 관리는 게임 개발의 핵심 측면입니다. 객체를 생성한 만큼, 객체를 제거해야 할 때가 있습니다. Unity는 게임 객체를 파괴하는 두 가지 기본 메서드인 'Destroy'와 'DestroyImmediate'를 제공합니다. 둘 다 유사한 주요 기능을 수행하지만 서로 다른 방식으로 작동합니다. 차이점에 대해 더 자세히 살펴보겠습니다. Unity의 객체 소멸 Unity에서 게임 개체와 해당 구성 요소는 종종 메모리를 소비합니다. 게임이 실행되면서 수많은 개체를 인스턴스화할 수 있습니다. 그러나 이러한 모든 개체를 메모리에 남겨두면 성능 문제가 발생할 수 있으므로 더 이상 필요하지 않을 때 제거해야 합니다. Destroy 메소드 'Destroy'는 게임 개체, 구성 요소 또는 자산을 삭제하는 ..
Animation : Blend Tree
·
Unity
Unity 세계에서 애니메이션 제작은 단순히 객체를 움직이는 것 이상입니다. 캐릭터와 장면을 생생하게 만들고, 플레이어 입력에 동적으로 반응하며, 다양한 상태 사이를 원활하게 전환하는 것이 중요합니다. 개발자가 여러 애니메이션을 원활하게 혼합할 수 있게 해주는 Unity 애니메이션 시스템의 필수 기능인 블렌드 트리를 만나보세요. 블렌드 트리란 ?? 본질적으로 블렌드 트리는 단일 매개변수를 사용하여 여러 애니메이션을 제어하고 혼합하는 방법입니다. 예를 들어 걷기, 조깅, 질주에 대해 별도의 애니메이션을 사용하는 대신 캐릭터 속도에 따라 이러한 상태 간에 전환하는 하나의 블렌드 트리를 사용할 수 있습니다. 블렌드 트리를 사용하는 이유 원활한 전환: 애니메이션 간의 갑작스러운 전환을 방지하여 더 부드러운 게임..