251013
·
📖TIL
게임의 정의규칙이 있는 경쟁 또는 놀이 활동으로 , 목표를 달성하거나 즐거움을 얻기 위해 참가자가 능동적으로 행동하는 구조화된 체계단순한 오락 뿐 아니라, 도전 / 보상 / 상호작용을 통해 몰입 , 성취감을 제공하는 복합적 문화 콘텐츠이다. 1. 게임 핵심 시스템 게임 루프 (Game Loop) 규칙 및 퀘스트 시스템 상태 관리 (State Management) 플레이 흐름 제어 2. 인공지능 (AI) NPC 행동 패턴 설계 경로 탐색 알고리즘 (Pathfinding) 정교한 로직 및 반응 시스템 적용 3. 데이터 & 리소스 관리 데이터 저장 및 불러오기 리스크 관리 DB / 백엔드 연동 4. 그래픽 & 비주얼 렌더링 엔진 활용 이펙트 및 쉐이더 애니메이션 시스템 UI / UX 설계 5. 오디오 사운드 ..
스택 ( Stack )
·
⭐C Sharp/메모리 관리
스택 ( Stack )스택 영역은 프로그램이 실행될 때 함수의 호출과 지역 변수 관리를 담당하는 정적 ( static ) 메모리 공간이다.프로그램 실행 중에 함수가 호출될 때 자동으로 할당되고, 함수가 종료되면 자동으로 해제되는 임시 저장소이다.Stack 은 메모리를 LIFO ( Last - In , First - Out 후입선출 ) 방식으로 관리한다.가장 나중에 들어온 함수나 변수가 가장 먼저 제거된다는 뜻이다.함수가 중첩 호출될 때 ( Stack Frame 이 쌓일 때 ) , 각 함수의 지역 변수나 매개변수는 이 Stack 에 차곡차곡 쌓인다. 작동 원리프로그램이 실행되면, 운영체제는 프로세스마다 Stack 영역을 일정 크기로 미리 할당한다.함수가 호출될 때마다 Stack 에 Stack Frame ..
힙 ( Heap )
·
⭐C Sharp/메모리 관리
메모리 구조 힙 ( Heap )힙 ( Heap ) 영역은 프로그램이 실행되는 동안 동적으로 생성되는 데이터 ( 객체 , 배열 등 ) 를 저장하는 메모리 공간이다.이 영역은 컴파일 시점 ( Compile )이 아니라, 실행 시점 ( Runtime )에 메모리 크기와 생명주기가 결정된다는 점이 핵심이다.다시 말해, 스택 ( Stack )과는 달리 메모리 크기가 정해져 있지 않고 프로그램이 실행되는 도중에 크기나 개수가 가변적인 데이터를 저장하기 위한 공용 저장소 역할을 하는 공간이다.C언어 같은 예전 언어들은 사용 후 반드시 개발자가 직접 해제해야 한다. 작동 원리프로그램이 실행되면 운영체제 ( OS ) 는 프로세스에 여러 영역을 나누어 메모리를 할당해준다.대표적으로 Code , Data , Stack ,..
가비지 컬렉터 ( GC )
·
⭐C Sharp/메모리 관리
가비지 컬렉터 ( Garbage Collector , GC )가비지 컬렉터는 메모리 관리 방법 중 하나로,프로그래머가 동적으로 할당한 메모리 영역 중 더 이상 쓰이지 않는 영역을 자동으로 찾아내어 해제하는 기능이다. 존 매카시 ( John McCarthy ) 가 1959년에 LISP 의 메모리 관리를 위해 처음 만들었다고 알려져 있다. 옛날의 언어들은 베이식 ( BASIC )처럼 동적인 메모리 할당 기능이 아예 없거나 C언어처럼 프로그래머가 할당한 뒤 수동으로 해제까지 해 줘야 하는 방식이었는데, 프로그래머가 하는 일이 항상 완벽할 수 없는지라 메모리를 할당해 놓고 필요 없어진 뒤에도 해제를 안 해서 메모리 누수가 발생하는 등 온갖 실수가 일어나 수 많은 버그가 양산되곤 했다. 이러한 문제를 해결하기 위..
sealed class
·
⭐C Sharp/11. 객체 지향
sealed classsealed class 는 상속을 막는 클래스이다sealed 로 선언된 클래스는 다른 클래스가 상속받을 수 없다. 문법sealed class 클래스이름{ // 멤버들...}sealed 키워드는 클래스를 봉인 ( seal ) 한다는 뜻이다주로 더 이상 확장하거나 재정의되면 안 되는 클래스를 만들 때 사용한다. ▼예시 코드sealed class Animal{ public void Speak() { Console.WriteLine("Animal sound"); }}// 오류 발생: sealed 클래스는 상속 불가class Dog : Animal{ public void Bark() { Console.WriteLine("Bow-..
invoke
·
⭐C Sharp/12. 델리게이트
invokeinvoke는 "호출하다" 라는 뜻으로, 주로 메서드나 델리게이트 ( Delegate )를 실행할 때 사용하는 C# 키워드 / 메서드이다.invoke 는 델리게이트나 이벤트 , 쓰레드 , UI 컨트롤 등에 연결된 메서드를 실제로 실행 ( call ) 하는 기능을 담당한다.즉 , "미리 지정된 함수를 실행시킨다" 는 의미로 쓰인다. C# 에서는 다음과 같은 상황에서 쓰인다델리게이트.Invoke( ) : 델리게이트가 가리키는 메서드 호출컨트롤.Invoke( ) : UI 쓰레드 ( 주 쓰레드 ) 에서 안전하게 메서드를 호출할 때 사용메서드.Invoke( ) : Reflection 으로 메서드를 동적으로 실행할 때 사용 문법▼델리게이트에서의 Invokeusing System;delegate void..
삼항연산자부터 null 처리까지
·
⭐C Sharp/03. 연산자
? ( 물음표 기호 ) 의 사용법 정리? 는 C# 에서 조건 , 널 ( Null ) , 안전한 접근 , 기본값 처리 등 여러 상황에서 사용되는 다기능 연산자 기호이다.? 관련 문법은 C# 에서 네 가지로 나뉘며, 헷갈리기 쉬우므로 아래에 정리한다. 전체 요약 표이름문법핵심 기능예시삼항연산자조건 ? 참 : 거짓조건에 따라 값 선택( x > 0 ) ? "양수" : "음수"널러블 타입타입 ? 변수명값 형식에 null 허용int? num = null;? 연산자객체?.멤버null 안전 접근obj?.ToString()?? 연산자A ?? Bnull 일때 기본값 반환name ?? "Unknown" 1. 삼항 연산자 ( Conditional Operator )조건식이 참인지 거짓인지에 따라 두 가지 값 중 하나를 선..
HashSet<T>
·
⭐C Sharp/📂▼자료구조
HashSet해시셋 ( HashSet ) 은 C# 의 'System.Collections.Generic' 네임스페이스 안에 포함된 컬렉션 클래스 중 하나이다.HaseSet 은 중복되지 않는 요소 ( Unique elements )를 저장하는 집합 ( Set ) 형태의 컬렉션이다.내부적으로 해시 테이블 ( Hash Table ) 을 사용하여 빠른 검색 , 추가 , 삭제가 가능하다.즉 , 순서가 없고 중복이 허용되지 않는 데이터 집합이다. 문법HashSet 변수명 = new HashSet(); ▼주요 메서드Add(T item); // 요소 추가Remove(T item); // 요소 제거Contains(T item); // 특정 요소 존재 여부 확인C..
IsNumeric
·
⭐C Sharp/00. 문법
IsNumericIsNumeric 은 입력된 값이 숫자인지 판별하기 위한 기능이다.C# 에는 VB 처럼 IsNumeric() 이라는 내장 함수가 직접적으로 존재하지 않지만,동일한 기능을 double.TryParse() , int.TryParse(0 등을 사용해서 구현할 수 있다.문자열이 숫자로 변환 가능한지를 검사하는 기능을 의미한다 문법bool result = double.TryParse(string input, out double number);input : 검사할 문자열number : 변환된 숫자 ( 성공 시 결과 저장 )반환값 : 변환 성공 시 true , 실패 시 false 예시 코드using System;class Program{ static void Main() { ..