본문 바로가기

스파르타코딩클럽64

C# DataTable 간단 사용법 DataTable 생성컬럼 정의로우 추가기본 키(Primary Key)기본 키 설정데이터 추출기본 키를 이용한 접근인덱스를 이용한 접근foreach를 이용한 접근 C#의 DataTable은 데이터베이스 테이블 형태의 테이블을 C#에서도 사용할 수 있도록 해놓은 것이다. 사용법은 데이터베이스와 똑같을테지만… 아쉽게도 아무 데이터베이스도 경험이 없는 나에게는 헷갈리는 것이 많아 이번에 정리를 해보고자 한다. DataTable 생성 using System.Data; DataTable Table = new DataTable(); 컬럼 정의 Table.Columns.Add("Code", typeof(int)); Table.Columns.Add("Type", typeof(ItemType)); Table.Column.. 2023. 8. 22.
C# 연산자 오버로딩과 인덱서(Indexer) 기본적인 연산자 오버로드오버로드 가능한 연산자들1. 단항 연산자2. 이항 연산자3. 비교 연산자오버로드할 수 없는 연산자1. 조건부 논리 연산자2. 인덱스 접근인덱서 (Indexer)3. 변환 연산자 (캐스트)implicit과 explicit4. 이진 연산자5. 불가능한 연산자 class를 열심히 만드는 과정에서, C#에서 기본적으로 지원하는 연산자들에 기능을 부여할 수 있다! vector 클래스를 만든다고 쳤을 때 +가 vector의 합을 계산하도록 기능하게 만들 수 있다는 것. 기본적인 연산자 오버로드 public class Vector2 { private int _x; public int X { get; set; } private int _y; public int Y { get; set; } pub.. 2023. 8. 21.
코드 컨벤션 코딩 스타일이 왜 필요한가?이름규칙camelCasePascalCasesnake_casekebab-case권장 코딩 규칙 코딩 스타일이 왜 필요한가?다양한 이유가 있겠지만 1. 같이 작업하는 팀원들과 원활한 의사소통을 위해 2. 미래의 나를 위해 3. 취직하기 위해 정도가 있겠다. 가독성을 위해 다음과 같은 규칙들이 있다. 이름 규칙Unity 작업 시 권장하는 코딩 규칙 이름규칙camelCase첫 문자는 소문자로 시작, 띄어쓰기 대신 대문자로 단어구분 PascalCase단어의 맨 앞글자를 대문자로 표시 snake_case모두 소문자로 표시하고 _로 단어구분 kebab-case모두 소문자로 표시하고 -로 단어구분 권장 코딩 규칙File은 PascalCase로 Namespaces, Classes, Struct.. 2023. 8. 18.
C# 생성자와 소멸자 그리고 가비지 컬렉터 생성자 (Constructor)소멸자 (Destructor)가비지 컬렉터 (GC) 생성자와 소멸자를 새로 알아본다는 느낌보다는 정확히 언제 호출되는지, 어떻게 작성해야하는지 등의 이야기를 위주로 해보겠다. 생성자 (Constructor) class Person { private string name; private int age; // 매개변수가 없는 디폴트 생성자 public Person() { name = "Unknown"; age = 0; } // 매개변수를 받는 생성자 public Person(string newName, int newAge) { name = newName; age = newAge; } public void PrintInfo() { Console.WriteLine($"Name: {.. 2023. 8. 17.
C# 언어 기본 구조 들어가며기본 구조리터럴 (literal)변수 이름에 대해키워드식별자 규칙코드 컨벤션참고) Visual Studio 단축키 들어가며제목을 기본 구조….라고 했지만, 사실상 C# 및 에디터 잡기술 모음집이다.개발에서 사용되는 각종 언어들의 의미, 그리고 C#은 대부분 Visual Studio를 사용하기 때문에 해당 에디터 단축키 등을 한 게시글에 모아서 정리해보고자 한다. 기본 구조// Hello World.cs using System; namespace HelloWorld { class program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } } } using : 네임스페이스를 사용하기 위한 코드System 네임스페이스.. 2023. 8. 14.
Unity 씬 로드 (Scene Load) 정리 들어가며기본 씬 로딩(Single Mode)Additive ModeLoadSceneAsync 들어가며유니티에 입문하며 다른 게임 개발툴과 비교해서 엄청 편했던 것이 바로 씬 관련 기능들이였다. “다시하기 기능? 씬 다시 로딩하면 되는데?”와 이걸 처음 알았을 때는…. 참 무적 기능이라 생각했다. 게임을 만들면서 여러 씬들을 관리하려다 보니 생각보다 관리해야할만한 부분들이 많이 보였다. 특히 이번에 했던 게임 프로젝트에서 튜터님께서 해주신 피드백 중에 ”난이도 구현 같은 부분들을 씬 로딩이 아닌 프리팹으로 구현해보아라”라는 것이 있었다.씬을 로드하는 것이 생각보다 로딩 시간이 걸리기에 플레이어 입장에서 불편한 경험을 줄 수 있다는 이유에서 였다. 어느 때에 씬 로드가 필요한 지 아닌지는 나의 경험이 필요한.. 2023. 8. 11.
Unity 인보크(Invoke)와 코루틴(Coroutine) 정리 들어가며인보크 기본인보크 사용방법InvokeRepeatingCancelInvokeIsInvoking인보크 주의점코루틴코루틴 사용 방법StartCoroutineStopCoroutine 들어가며이번에 했던 프로젝트를 하고 나서, 가장 많이 느꼈던 점은 Invoke를 너무 남발한 거 같다는 점이다. 해당 함수 때문에 버그가 발생했을 때, 찾기도 버거웠을 뿐더러 (Invoke는 함수를 string으로 받기 때문에 참조 함수 목록에 들어가지 않게 된다.) 시전 타이밍을 스크립트의 코드 순서가 아닌 시간으로 정한다는 것이 게임을 구현하는데 있어 너무 불안요소였다. 따라서 이번에는 아예 Invoke에 대해 정리해보고 어느 때 쓰면 좋을지 알아보는 시간을 가지자. 인보크 기본인보크는 MonoBehaviour 클래스에서.. 2023. 8. 10.
Unity 버튼 UI 정리 들어가면서InteractableTransitionTransition type 1) Color TintTransition type 2) Sprite SwapTransition type 3) AnimationOn Click ()참고) 스크립트에서 동적으로 On Click 등록하기 들어가면서UI의 퀄리티가 가장 체감되는 부분 중에 하나가 버튼인 것 같다.플레이어와 가장 많이 상호작용하게되는 버튼이라 그런 것인가. GameObject → UI → Button기본적으로 버튼 오브젝트 하나에 하위 오브젝트로 텍스트를 하나 달고 나온다. 만든 버튼은 이렇게 클릭 가능하다. 프로퍼티를 조금 살펴보자. Interactable상호작용을 할 수 있냐 아니냐, 즉 클릭 가능하냐 아니냐를 결정한다.끄게 되면 다음과 같이 반투명.. 2023. 8. 9.
Unity 스크립트 프로퍼티 변경 내용이 반영되지 않을 때? 오늘은 스크립트 프로퍼티 변경 내용이 반영되지 않을 때 해결하는 법을 알아보고자 한다.요약하자면, script component 리셋이다. 문제 상황은 이렇다.상황에 맞게 텍스트 띄우는 구현을 하던 도중, 다음과 같이 string array를 선언했다. 내용은 나중에 채워놓을 생각을 하고, 왼쪽대로 써놨다가 오른쪽처럼 바꿨는데 해당 내용이 반영이 안되는 것이 아닌가? (슬프다)“아니 내용을 지웠는데 은 조상님이 써주나?”어딘가 분명 내용이 있긴할텐데, 그거를 까먹고 있었다.스크립트도 컴포넌트라는 것!튜터님께서 알려주셔서 알게 되었다. 해당 내용이 들어있는 오브젝트를 인스펙터에서 보게되면…(잡았다 요놈)이걸 몰라서 한시간을 해멨다….여기서 … → reset을 누르게 되면 반영이 된다. 물론 유니티 에디터에.. 2023. 8. 8.
내일배움캠프 8기를 시작하는 마음 노션 데이터베이스로 TODO list 만들기와이어프레임을 적극 활용하자!깃, 깃허브 사용법 완전 숙지! 오늘이 내일배움캠프 처음 시작인데, 역시 적응이 어렵다. 팀프로젝트가 위주인 캠프이기에 거의 협엽툴들을 다뤄보느라 정신이 없었다. 노션 데이터베이스로 TODO list 만들기이거로 만든 TODO list 좀 히트인 것 같다.그래도 아직 노션을 협업툴로 쓰는 것이 좀 벅찬 것 같다.오늘 가장 헤맸던 이유는… 표랑 데이터베이스가 같은 건줄 알고 있었다.이제라도 제대로 알았으면 됐지. 아무튼 남들이 만들어놓은 템플릿이나 노션에서 기본 제공해주는 템플릿을 적절히 오려붙여 우리 팀의 협업툴로 만들 수 있었다. 매니저님들이 작성하라는 협업 문서에 임베드도 가능하기에 너무 야무지다 생각했다. 매우 좋지 않은가?효율.. 2023. 8. 7.