전체 글 67

하루

안녕하세요. 박민성입니다. 저는 희한한 꿈을 꾸었습니다. 내용은...꿈눈을 떠보니 기숙사 호실 안이었습니다.꿈속에서 잠이 들었다가 다시 눈을 뜨면서 이야기가 시작됩니다. 깨어나보니 밖이 아주 소란스러웠습니다. 10시 이후로는 자습실이든 호실이든 조용히 해야 했거든요.2층 우측 자습실에서 누군가 웃고 떠드는 소리가 들렸습니다. 저는 상황을 확인하고자 몸을 이끌고 밖으로 나갔습니다.확인해 보니 그곳에는 원래 있어서는 안 되는 여학생과 선생님이 있었습니다. 서로 호실 구역이 나눠져 있어서 구역을 넘으면 안되는 구조였습니다. 어째서인지는 모르겠지만 선생님께서 자의적으로 여학생의 편의를 봐주셔서 2층 자습실에서 자습을 할 수 있게 해주셨습니다. 저는 이것이 기숙사 규정에 어긋나는 행동이라고 말하며, 사감 선생님께..

카테고리 없음 2026.09.20

🌟 C# async / await 비동기 프로그래밍😋 🌟

안녕하세요. 박민성입니다. ☺️ 오늘은 C#의 async / await 비동기 프로그래밍에 대해서 글을 쓰고자 합니다. 🤔학교에서 배우는 네트워크 시간이나 최근 엔진 수업때 사용하여서 공부하게 되었습니다.워낙 주제가 방대하고 알아야 할 것들이 많아서 시간이 오래 걸릴 것 같아서 사실 살짝 미룬 감이 있긴 합니다. 1. async / await란? async / await는 오래 걸리는 작업이 끝날 때까지 프로그램 전체를 멈춰 세우지 않고 기다리는 동안 다른 작업을 할 수 있도록 비동기 코드를 작성하는 C# 기능입니다.private async Task TestAsync(){ Debug.Log("시작"); await Task.Delay(3000); Debug.Log("3초 후");}여기서..

카테고리 없음 2026.08.17

🌟 C# Raw String Literal😋 🌟

안녕하세요. 박민성입니다. ☺️ 오늘은 C#의 Raw String Literal에 대해서 글을 쓰고자 합니다. 🤔전에 String에 대해서 어느 정도는? 자세히 알아보았는데여 오늘은 신기한걸 발견하게 되어공부하고 블로그에 쓰게 되었습니다. 1. Raw String Literal이란? Raw String Literal은 문자열 안의 따옴표, 역슬래시, 여러 줄 텍스트를 이스케이프 문자 없이 거의 그대로 작성할 수 있게 해주는 C# 문법입니다.Raw String Literal은 문자열 내용을 코드에 거의 원문 그대로 적을 수 있다는 점이 가장 큰 장점입니다. 2. 왜 필요할까요~?기존 문자열에서는 따옴표나 줄바꿈을 넣을 때 이스케이프 문자를 많이 써야 했습니다.예를 들어서 JSON을 문자열로 작성하게 된다..

카테고리 없음 2026.08.16

🌟 C# List Pattern😋 🌟

안녕하세요. 박민성입니다. ☺️ 오늘은 C#의 List Pattern에 대해서 글을 쓰고자 합니다. 🤔 1. List Pattern이란? List Pattern은 배열이나 리스트 같은 순차 데이터의 요소와 구조를 패턴으로 검사하는 기능입니다. 전에 작성했던 패턴 매칭의 한 종류입니다.int[] numbers = { 1, 2, 3 };if (numbers is [1, 2, 3]){ Debug.Log("일치");}여기서! [1, 2, 3]은 새로운 배열을 만드는 코드가 아닌 패턴입니다.위 코드는 numbers가 정확히 1, 2, 3이라는 구조를 가지고 있는가요? 를 if로 검사하는 코드입니다. 2. 기본 사용법 컬렉션 is [패턴1, 패턴2, 패턴3] 이런 형태로 사용할 수 있습니다. int[] n..

카테고리 없음 2026.08.15

🌟 C# required 😋 🌟

안녕하세요. 박민성입니다. ☺️ 오늘은 C#의 required에 대해서 글을 쓰고자 합니다. 🤔 1. required란? required는 객체를 생성할 때 특정 필드나 프로퍼티에 값을 반드시 넣도록 강제하는 C# 키워드입니다.public class PlayerData{ public required string Name { get; set; }}이렇게 선언한다면PlayerData player = new PlayerData(); // XXXX이런식으로 객체를 만들 수가 없습니다!!PlayerData player = new PlayerData // OOOO{ Name = "Player"};Name을 required로 선언했기 때문에 "무적권" 그 객체를 만들 때에는 required가 붙은 Na..

카테고리 없음 2026.08.14

🌟 C# partial😋 🌟

안녕하세요. 박민성입니다. ☺️ 오늘은 C#의 partial에 대해서 글을 쓰고자 합니다. 🤔 1. partial이란? partial은 하나의 클래스 정의를 여러 파일이나 여러 선언으로 나눠서 작성할 수 있게 해주는 키워드입니다.public partial class Player{ private int health = 100;}public partial class Player{ public void TakeDamage(int damage) { health -= damage; }}파일은 두 개지만 컴파일할 때는 하나의 Player 클래스로 합쳐지게 됩니다. 가장 단순한 사용하는 이유는 클래스를 여러 파일로 나눠서 관리하기 위해서 입니다.하지만 중요한 것은 파일만 나눠진 것..

카테고리 없음 2026.08.13

🌟 C# 제네릭(Generic)과 <T>😋 🌟

안녕하세요. 박민성입니다. ☺️ 오늘은 C#의 제네릭(Generic)과 에 대해서 글을 쓰고자 합니다. 🤔제네릭은 Untiy 개발하면서 많이 사용하기 때문에 공부하여 글을 남기고자 합니다. 1. 제네릭이란? 제네릭은 타입을 미리 하나로 고정하지 않고 사용할 때 타입을 정할 수 있게 하는 기능입니다.예를 들어서 일반 메서드라면private void PrintInt(int val){ Debug.Log(val);}private void PrintString(string val){ Debug.Log(val);}타입마다 메서드를 따로 만들어야 합니다.하지만.제네릭을 사용하면private void Print(T val){ Debug.Log(val);}하나로 처리할 수 있습니다.Print(10);P..

카테고리 없음 2026.08.12

🌟 C# ref local, ref return😋 🌟

안녕하세요. 박민성입니다. ☺️ 오늘은 C#의 ref local, ref return대해서 글을 쓰고자 합니다. 🤔 1. 일반 대입은 값을 복사합니다.int[] numbers = { 10, 20, 30 };int val = numbers[0];val = 100;배열의 값을 변수에 가져오면 보통 값이 복사됩니다. val은 100이고 numbers[0]은 10입니다.val의 값을 바꾼다고 해서 numbers[0]은 변하지 않습니다.val는 numbers[0]의 값을 복사했을 뿐이라서 서로 별개이기 때문입니다. 2. ref local이란?ref local은 값을 복사하지 않고 기존 변수의 저장 위치를 직접 참조하는 지역 변수입니다. 약간 C++에 포인터가 생각나는 문법입니다.int[] numbers = { ..

카테고리 없음 2026.08.11

🌟 C# ^와 ..😋 🌟

안녕하세요. 박민성입니다. ☺️ 오늘은 C#의 ^와 ..에 대해서 글을 쓰고자 합니다. 🤔최근 Unity에 대해서 글을 많이 썼는데여 오늘으 C# 문법으로 돌아오게 되었습니다.^와 ..은 인덱스을 사용할때 유용하게 사용될 듯 싶어서 글로 남기고자 합니다. 1. 기존 인덱스 접근 방식int[] numbers = { 10, 20, 30, 40, 50 };int last = numbers[numbers.Length - 1];저는 배열의 마지막 요소에 접근하려면 보통 이렇게 했습니다.배열 길이가 5라면 Length는 5고 마지막 인덱스가 4이니 Length - 1를 사용하면 마지막 원소를 뽑을 수 있습니다. 2. ^ 인덱스란?int[] numbers = { 10, 20, 30, 40, 50 };int last..

카테고리 없음 2026.08.10

🌟 Unity의 Inspector Attribute들 😋 🌟

안녕하세요. 박민성입니다. ☺️ 오늘은 Unity의 Inspector Attribute 묶음 에 대해서 글을 쓰고자 합니다. 🤔유니티 인스펙터 창을 [Header], [TextArea] 등으로 꾸밀 수 가 있습니다.오늘은 그냥 패키지 느낌으로다가 한꺼번에 소개하고자 합니다. 1. Inspector Attribute란? Unity에서는 필드 위에 Attribute를 붙여서 Inspector에서 어떻게 보일지를 바꿀 수 있습니다. Attribute가 변수의 자료형 자체를 바꾸는 것은 아니고 Unity Editor가 해당 필드를 어떻게 보여주고 편집할지에 대한 추가 정보를 제공하는 것입니다. 2. [ Tooltip ] [Tooltip("플레이어의 최대 체력")][SerializeField] private ..

카테고리 없음 2026.08.09