분류 전체보기 42

[Unity] 재사용 스크롤 뷰 - 수정(Recyclable Scroll View)

유니티에서 스크롤 뷰를 사용할 때, 많은 양의 데이터를 표시하는 것은 성능에 큰 부담을 줄 수 있습니다. 예를 들어 수백 개, 수천 개의 아이템을 스크롤 뷰에 추가하면, 메모리 사용량과 성능 문제가 발생할 수 있습니다. 이때 사용하는 최적화 기법이 바로 재사용 스크롤 뷰(Recyclable Scroll View)입니다.   1. 재사용 스크롤 뷰의 개념재사용 스크롤 뷰는 화면에 보이는 아이템만 UI요소로 생성하고, 보이지 않는 슬롯은 재사용하는 방식으로 동작합니다. 기본적인 스크롤 뷰는 모든 아이템을 한꺼번에 생성하는 방식이라, 아이템이 많을수록 메모리 사용량과 CPU 부하가 증가하게 됩니다.반면, 재사용 스크롤 뷰는 보이는 아이템만 생성하고, 사용자가 스크롤하면 이미 생성된 슬롯을 재배치하여 화면에 맞..

Unity 공부 2024.10.08

[C#] LINQ(Language Integrated Query)

C#에서 LINQ는 데이터를 쉽게 검색, 필터링, 정렬, 변환할 수 있도록 돕는 기능입니다. LINQ는 데이터를 쿼리하는 방식에 통일성을 제공하며, 데이터베이스, 컬렉션, XML, Entity Framework 등 다양한 데이터 소스에 적용할 수 있습니다. 이번 글에서는 LINQ가 무엇인지, 그 특징과 장점, 그리고 사용 방법을 설명하겠습니다.   1. LINQ란?LINQ는 C# 언어에서 데이터를 쿼리하는 표준화된 방법을 제공하는 기능입니다. LINQ는 컬렉션, 배열, 데이터베이스, XML, 파일 등 여러 데이터 소스에 대해 일관된 방식으로 데이터를 검색할 수 있게 해줍니다.LINQ는 SQL 쿼리 문법과 비슷한 방식으로 데이터를 쿼리할 수 있도록 지원하며,  데이터베이스에 국한되지 않고 메모리에 있는 컬..

CS 공부 2024.09.20

[C#] 확장 메서드(Extension Methods)

C#에서 확장 메서드(Extension Method)는 기존의 클래스나 구조체를 변경하지 않고, 새로운 메서드를 추가할 수 있는 기능입니다. 이 기능을 통해 기존 코드에 손을 대지 않고도 클래스의 동작을 확장할 수 있으며, 특히 LINQ에서 자주 사용되는 기능이기도 합니다.이번 글에서는 C#의 확장 메서드가 무엇인지, 그 특징과 사용 이유, 실제로 어떻게 구현하고 사용하는지에 대해 설명하겠습니다.   1. 확장 메서드란?확장 메서드는 기존 클래스나 구조체를 변경하지 않고도, 새로운 메서드를 추가하여 동작을 확장할 수 있게 해줍니다. 이 메서드는 정적(static) 클래스 안에서 정의되며, 첫 번째 매개변수로 this 키워드를 사용해 확장할 대상을 지정합니다.기본적으로 C#에서 제공하는 클래스나, 사용자가..

CS 공부 2024.09.13

[Unity] 생명주기(Life Cycle)

Unity에서 MonoBehaviour는 모든 스크립트가 상속받는 기본 클래스입니다. 게임 오브젝트의 동작을 정의하고 제어할 때 사용되며, 이 클래스의 메서드들은 특정한 순서에 따라 생명주기(lifecycle)동안 자동으로 호출됩니다. 이 생명주기를 이해하면, 게임 오브젝트가 언제 어떻게 동작하는지를 제어할 수 있고, 효율적인 로직을 작성할 수 있습니다. MonoBehaviour에 대해서는 다음에 알아보도록 하고, 이번 글에서는 생명주기에 대해서 알아보겠습니다.   1. 생명주기란?Unity의 생명주기는 게임 오브젝트의 상태에 따라 특정 시점에 호출되는 일련의 메서드들로 이루어져 있습니다. 이러한 메서드들은 게임 오브젝트가 생성, 활성화, 업데이트, 비활성화, 삭제되는 과정에서 순차적으로 호출됩니다.이 ..

CS 공부 2024.09.04

[C#] 참조 매개변수 전달 (ref, out)

C#에서 ref와 out 키워드는 메서드에서 매개변수를 참조로 전달할 때 사용됩니다. 일반적으로 메서드는 매개변수의 값을 복사하여 전달하는 값 전달 방식을 사용하지만, ref와 out을 사용하면 참조 전달이 가능합니다. 이를 통해 메서드가 호출된 변수의 값을 직접 변경할 수 있습니다. 이 글에서는 ref와 out 키워드의 사용법, 차이점, 그리고 예제를 통해 알아보도록 하겠습니다!   1. ref 키워드란?ref(Reference)키워드는 메서드에 매개변수를 참조로 전달할 때 사용됩니다. 이 키워드를 사용하면 메서드가 호출된 변수의 기존 값에 접근하고, 이를 수정할 수 있습니다. 즉, 매개변수는 복사본이 아닌 실제 변수에 대한 참조를 전달받기 때문에, 메서드 내부에서 변경된 값이 메서드 외부에서도 반영이..

CS 공부 2024.08.31

[Unity] 속성(Attribute)

Unity에서 Attribute(속성)는 클래스, 메서드, 변수 등의 요소에 메타데이터를 추가하여, 특정 기능을 부여하거나 Unity 에디터에서의 동작을 제어하는 데 사용됩니다. 이 글에서는 Unity에서 자주 사용되는 Attribute에 대해 설명하며, 각각의 사용 방법과 예제를 통해 알아보겠습니다.   1. Attribute(속성)란?Attribute는 클래스, 메서드, 필드 또는 프로퍼티에 추가되는 메타데이터입니다. 이 메타데이터는 런타임 또는 컴파일 타임에 특정 기능을 적용하거나, Unity 에디터에서의 동작을 변경하는 역할을 합니다. 예를 들어, Unity에서 SerializeField, Range, Tooltip과 같은 Attribute는 에디터에서 변수를 시각화하고 편집하는 방식을 제어합니다..

Unity 공부 2024.08.24

[C#] 오버로딩과 오버라이딩 (Overloading & Overriding)

C#은 객체 지향 프로그래밍 언어로, 다형성(Polymorphism)을 지원합니다. 다형성의 중요한 두가지 개념이 바로 오버로딩(Overloading)과 오버라이딩(Overriding)인데요. 이 글에서는 오버로딩과 오버라이딩이 무엇인지, 그 특징과 사용 이유, 그리고 실제 예제와 함께 사용하는 방법에 대해 알아보겠습니다.   1. 오버로딩(Overloading) 이란?오버로딩(Overloading)은 같은 이름의 메서드를 여러 개 정의하는 기법으로, 메서드의 매개변수의 수나 타입을 다르게 설정하여 동일한 메서드 이름을 여러 용도로 사용할 수 있게 해줍니다. C#에서는 메서드 오버로딩뿌만 아니라 생성자 오버로딩도 지원합니다. 오버로딩을 통해 함수 이름을 재사용할 수 있어 코드의 가독성과 유지보수성을 높일..

CS 공부 2024.08.20

[C#] 람다식(Lambda Expression)

C#에서람다식(Lambda Expression)은 코드의 간결성과 가독성을 높여주는 강력한 기능입니다. 이번 글에서는 람다식이 무엇인지, 어떤 특징이 있는지, 왜 사용하는지, 그리고 어떻게 사용하는지를 예제 코드와 함께 설명하겠습니다.  1. 람다식이란?람다식은 익명 함수(Anonymous Function)의 한 종류로서, 코드를 간단하게 표현하기 위해 사용됩니다. 이름 없는 메서드를 간단히 표현할 수 있으며, 함수를 매개 변수로 전달하거나 즉시 실행해야 하는 경우에 유용합니다. 람다식은 다음과 같은 형식으로 표현됩니다:(parameters) => expression여기서 "parameters'는 입력 매개변수를, 'expresstion'은 실행할 코드 블록을 나타냅니다. 일반적으로 람다식은 짧고 간단한..

CS 공부 2024.08.16

[C#] 변수 종류와 키워드

C#은 객체 지향 프로그래밍 언어로, 다양한 종류의 변수를 지원합니다. 변수는 데이터의 값을 저장하기 위해 사용되며, 변수의 범위와 수명에 따라 전역 변수, 지역 변수, 정적 변수, 매개 변수 등으로 나뉩니다. 또한 readonly와 const 키워드는 변수의 불변성을 보장하기 위해 사용됩니다. 이번 글에서는 각 변수의 특성과 사용법에 대해 자세히 설명하고, 관련 예제 코드를 함께 보여드리겠습니다.  1. 전역 변수(Global Variable)전역 변수는 클래스 내부, 메서드 외부에 선언되어 클래스의 모든 메서드에서 접근할 수 있는 변수입니다. 그러나 이 변수는 클래스의 인스턴스와 밀접하게 연관되어 있으며, 클래스의 인스턴스가 생성될 때 힙(Heap) 메모리에 할당되고, 인스턴스가 소멸될 때 함께 해제..

CS 공부 2024.08.09

[C#] 클래스와 구조체 (Class & Structure)

C#은 객체 지향 프로그래밍(OOP)을 기반으로 하는 언어로, 클래스와 구조체는 데이터를 정의하고 조작하는 두 가지 주요 방식 입니다. 둘 다 데이터와 메서드를 포함할 수 있지만, 사용되는 방식과 목적에는 중요한 차이점이 있습니다.   1. 클래스(Class)클래스는 객체 지향 프로그래밍의 핵심 개념으로, 객체의 청사진(buleprint) 역할을 합니다. 클래스는 데이터(필드)와 기능(메서드)을 포함할 수 있으며, 이를 통해 객체를 생성할 수 있습니다. 참조 타입: 클래스는 참조 타입입니다. 객체는 힙(heap) 메모리에 할당되며, 객체에 대한 참조(reference)가 변수에 저장됩니다.상속 가능: 상속을 통해 다른 클래스의 멤버를 확장할 수 있습니다.생성자: 생성자를 통해 객체가 생성될 때 초기화할 ..

CS 공부 2024.08.04