분류 전체보기 44

[C++] 표준 라이브러리 std::find 제대로 알아보기

C++에서 컨테이너 안에서 원하는 값을 찾을 때 흔히 반복문을 직접 돌리곤 합니다. 하지만 매번 for문이나 while문을 쓰는 건 코드도 길어지고 가독성도 떨어집니다. 이럴 때 유용하게 쓸 수 있는 함수가 바로 헤어에 포함된 std::find입니다. 이번 글에선 std::find의 기본 개념과 특징, 장단점, 그리고 예제를 통한 사용법을 살펴보겠습니다. 1. std::find란?std::find는 반복자 범위 안에서 특정 값을 찾아주는 표준 알고리즘 함수입니다. 범위의 시작부터 끝까지 차례대로 검사하며, 조건에 맞는 값이 있으면 그 위치의 반복자를 반환합니다.헤더: 함수 원형:template InputIt find(InputIt first, InputIt last, const T& value);여기서 ..

C++ 2025.09.24

[C++] 표준 라이브러리 std::accumulate 이해하기

C++을 공부하다 보면 헤더에 있는 std::accumulate라는 함수를 만나게 됩니다. 처음에는 "단순히 합을 구하는 함수인가?" 하고 넘어가기 쉬운데, 알고 보면 훨씬 더 범용적으로 활용할 수 있는 강력한 함수입니다. 이번 글에서는 std::accumulate가 무엇인지, 어떤 특징을 가지고 있는지, 그리고 실제 코드 예제를 통해 어떻게 활용할 수 있는지 정리해보는 시간을 가지도록 하겠습니다. 1. std::accumulate란?std::accumulate는 이름 그대로 누적(accumulate)을 수행하는 함수입니다. 보통은 컨테이너에 들어 있는 값들을 차례대로 더해서 합계를 구할 때 많이 사용하지만, 사실 덧셈을 넘어선 일반적인 누적 연산도 할 수 있습니다. 헤더: 기본 형태:T accumul..

C++ 2025.09.15

[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