분류 전체보기 504

[C#] 네이밍 규칙 / naming convention

네이밍 관례와 표준 표준은 아니며 각 회사 혹은 팀마다 다른 방식으로 사용할 수 있습니다. 파스칼 표기법 : 모든 단어에서 첫 번째 문자가 대문자이며 나머지는 소문자이다. 예) BackColor 카멜 표기법 : 최초에 사용된 단어를 제외한 첫번째 문자가 대문자이며 나머지는 소문자이다. 예) backColor 클래스 명에는 파스칼 표기법을 사용한다. /* * @brief : 클래스 명에는 파스칼 표기법을 사용한다. */ public class BitCoin { public BitCoin() { } } 함수 명에는 파스칼 표기법을 사용한다. void ToTheMoon(int money) { // Todo.. } 변수와 함수 파라미터에는 카멜 표기법을 사용한다. int totalCount = 100000000..

VisualStudio/C# 2022.08.22

[C#] 명시적 형변환 && 암시적 형변환

1. 형변환 어떤 자료형으로 선언된 변수를 다른 자료형으로 변환하는 것을 형변환이라고 한다. 이 때, 코드에 직접 변환 될 자료형을 입력해야 하는 것을 '명시적 형변환'이라고 하고, 변환 될 자료형을 입력하지 않아도 되는 형변환을 '암시적 형변환'이라고 한다. 2. 암시적 형변환 암시적 형변환은 작은 범위의 자료형에서 넓은 범위의 자료형으로 변환할 때 일어난다. 예를 들어, int 타입과 long 타입을 비교해보자. int 타입보다 long 타입이 더 넓은 범위의 정수를 담을 수 있다. 따라서, int 타입으로 선언된 변수는 아래와 같이 long 타입으로 선언된 변수로 변환될 수 있다. int a = 1; long b = a; 하지만 반대의 경우는 어떨까? long 타입으로 선언된 변수는 int 타입 변..

VisualStudio/C# 2022.08.22

[Unity][개념] RequireComponent란?

Unity - Scripting API: RequireComponent When you add a script which uses RequireComponent to a GameObject, the required component will automatically be added to the GameObject. This is useful to avoid setup errors. For example a script might require that a Rigidbody is always added to the same G docs.unity3d.com RequireComponent RequireComponent속성은 요구되는 컴포넌트를 종속성으로 자동으로 추가해줍니다. RequireComponent를..

Unity 2022.08.22

[C#] StringBuilder VS StringBuffer

StringBuilder는 문자열의 저장 및 변경을 위한 메모리 공간을 지닌 클래스이다. 문자열 데이터의 추가를 위한 append와 중간에 삽입을 위한 insert 메소드를 제공한다. append는 문자열을 순서대로 저장할 때 insert는 문자열을 중간에 저장할 때 위의 메소드를 통해 메모리 버퍼에 문자열을 쌓고나서 toString을 이용해 문자열을 만든다. 기본 16개의 문자저장 메모리 버퍼를 생성한다. 물론 아래와 같이 임의로 지정할 수도 있다. public StringBuilder(int capacity); // capacity 만큼의 문자저장 버퍼를 생성 문자열이 들어간 버퍼를 만들수도 있다. public StringBuilder(String str); // 문자를 저장한 문자저장 버퍼를 생성 ..

VisualStudio/C# 2022.08.22

[CS] 컴파일(Compile)이란?

서론 C, C++, Java 프로그래밍을 해봤으면 작성한 소스 코드를 빌드(Build) 혹은 컴파일(Compile)해서 실행해봤거나 코드를 잘못 작성하여 컴파일 에러가 났던 경험이 있을 것이다. 정확하게 컴파일이 어떠한 일을 하는지 모르고 막연하게 "컴파일을 하면 소스 코드의 문법을 검사하고 실행하나 보다"라고 생각했다면 이참에 자세히 알아보자. ※ 그림이나 예시는 리눅스 환경의 C언어 컴파일 과정을 중심으로 이야기하므로 언어, 환경에 따라 차이가 있을 수 있다. 컴파일의 정의 컴파일은 인간이 이해할 수 있는 언어로 작성된 소스 코드(고수준 언어 : C, C++, Java 등)를 CPU가 이해할 수 있는 언어(저수준 언어 : 기계어)로 번역(변환)하는 작업을 말한다. 우리가 C, C++, Java로 작성..

CS 2022.08.19

[CS] 프로그래밍 언어와 빌드 과정 [Build Process]

⦁ Build 란? 먼저 빌드 과정(Build Process)에 대해 간략하게 알아보고 가도록 합시다. Build 라는 단어가 '무언가를 짓다'라는 뜻인 것은 모두가 알 겁니다. 우리가 건물을 짓는다고 할 때, 설계도를 기반으로 기초공사를 하고 철근을 세우고, 벽을 세우고, 도색하고... 이러한 과정을 거쳐 집이 완성되는 과정을 짓는다고 하죠. 또 다른 예시로는 해외판 책을 우리나라 말로 번역하는 과정이라고 생각할 수도 있겠습니다. 프로그래밍에서도 마찬가지입니다. 컴퓨터는 근본적으로는 0과 1밖에 모릅니다. 우리가 작성하는 코드들은 거의 대부분 고급언어를 사용하기 때문에 결국에는 컴퓨터(CPU)가 이해할 수 있도록 번역을 해주어야겠죠. (C, Java, C++ 등 어셈블리를 제외한 대부분 언어가 고급언어..

CS 2022.08.19

[C#] EVENT 사용이유(객체 메소드와 차이점)

이벤트를 발생시키는 게시자는 구독자가 해당 이벤트를 어떻게 처리할 것인지 알 필요가 없습니다. 단지 구독자가 미리 등록해 놓은 함수(Function)들의 목록에 따라 호출하기만 하면 됩니다. 이벤트를 처리하는 구독자는 계속해서 게시자의 행동을 검사(Check)하지 않아도 됩니다. 이벤트가 발생하는 시점을 알기 위해 노력할 필요가 없고, 이벤트가 발생했을 때 호출될 메서드(Method)만 등록하면 됩니다. 이것은 구독자가 기다리고 있는 어떤 상황(Event)이 실제로 발생하면, 그 즉시 게시자가 알아서 구독자의 이벤트 처리 함수를 호출해주기 때문입니다. 따라서 구독자는 이벤트가 발생했을때 어떻게 처리할지에 대해서만 집중할 수 있게 됩니다. 이벤트 게시자와 구독자의 구조를 잘 활용하면, 서로의 상태를 검사하..

VisualStudio/C# 2022.08.18

[Unity][개념] MonoBehaviour 총정리 및 생명주기(Lifecycle)

1. 모노 (Mono) .Net은 마이크로 소프트(MicroSoft)에서 C언어에 자바의 장점을 수용하여 개발한 MS Windows 프로그램 개발 및 실행 환경이자 언어이다. 네트워크와 UI 등의 많은 작업을 캡슐화 하여 코딩의 효율성을 극대화 한 .Net 의 강력한 기능을 사용하기 위해서는 .Net 프레임워크가 설치 된 윈도우 환경이 있어야 했다. 이에 윈도우가 아닌 다른 플랫폼에서 .Net 프레임워크를 사용하기 위해 개발된 것이 얼마 전 MS에서 인수한 자마린(Xamarin) 사의 Mono 이다. Mono 는 .Net 프레임워크(framework) 의 오픈소스 개발 플랫폼으로서 크로스플랫폼(Cross-platform) 어플리케이션의 개발을 지원하며 C#과 CLI (Common Language Infr..

Unity 2022.08.11

[Unity][방법] 스크립터블 오브젝트(Scriptable Object) 기본 사용법

[이 포스트의 내용은 유튜브 영상으로도 시청하실 수 있습니다] 스크립터블 오브젝트(Scriptable Object)는 유니티에서 제공하는 대량의 데이터를 저장하는 데 사용할 수 있는 데이터 컨테이너이다. 스크립터블 오브젝트를 사용하면 값의 사본이 생성되는 것을 방지하여 프로젝트의 메모리 사용을 줄일 수 있으며 이것은 모노비헤이비어(MonoBehaviour) 스크립트에 변경되지 않는 데이터를 저장하는 프리팹을 사용하는 프로젝트에서 유용하다고 한다. 변경되지 않는 데이터를 사용하는 프리팹의 데이터를 일반 변수로 구현할 경우 인스턴스화 할때마다 프리펩에 이 데이터에 대한 자체 사본이 생성되는데, 스크립터블 오브젝트를 사용하면 메모리에 스크립터블 오브젝트의 데이터 사본만을 저장하고 이를 참조하는 방식으로 작동한..

Unity 2022.08.11

[CS] 메모리구조

프로세스의 메모리 (RAM) 구조는 다음과 같은 형태로 구성된다. 코드 영역 메모리의 코드 영역은 실행할 프로그램의 코드(명령어) 자체가 저장되는 영역이다. 텍스트 영역이라고도 불리는데, 이 영역에서 CPU는 저장된 명령어를 하나씩 가져가서 처리한다. 데이터 영역 메모리의 데이터(data) 영역은 프로그램의 전역 변수와 정적(static) 변수가 저장되는 영역이다. 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸한다. ex) 다음 변수들은 데이터 영역에 저장된다. int global_value = 10; void temp() { static int static_value = 10; } 힙 영역 메모리의 힙(heap) 영역은 운영체제에 의해 메모리 공간이 동적으로 할당되고 해제되는..

CS 2022.08.11