ABOUT ME

유니티 공부하면서 쓰는 블로그입니다.

Today
Yesterday
Total
  • [Unity]유니티 입문하기 5-1(C# 기초개념 - 토큰)
    프로그래밍 2023. 7. 23. 00:29

    이전 글에서는 스크립트를 오브젝트에 부착해서 콘솔에 메시지를 출력해 보았습니다.

    스크립트는 C#언어로 작성되는데, C# 언어를 모르는 채로 다룰 수는 없겠죠.

    이번 글에서는 C# 언어의 기초 개념에 대해서 간단하게 알아보겠습니다.


    토큰(Token)

    토큰은 문법적으로 더 이상 나눌 수 없는 언어요소를 의미합니다.

    이렇게 말로만 설명하면 어려우니, 저번에 만들었던 스크립트에 있던 "public class" 부분으로 예시를 들어봅시다.

     

    public class는 public과 class로 나뉘어도 여전히 각자의 뜻과 역할을 가지고 있습니다.
    하지만 만약 여기서 public을 'publ'과 'ic'로 쪼갠다고 하면, 원래 단어가 가지고 있던 역할을 잃어버리고 아무 의미가 없는 문자열로 바뀌게 됩니다. 따라서 public과 class는 토큰이라고 할 수 있죠.

     

    C# 언어에는 예약어, 식별자, 리터럴, 연산자, 구분자 5가지 종류의 토큰이 존재합니다.
    이런 토큰들을 전부 다 외울 필요는 없고, 특정한 토큰을 보고 이것이 어떤 종류인지 알아볼 수 있는 정도면 충분합니다.

    한번 차근차근 알아봅시다.

     

    예약어(키워드)

    예약어란 컴파일러가 해석할 수 있도록 미리 정의해 둔 토큰입니다.

    저번에 생성한 스크립트에 있던 public, class, void 등등이 전부 미리 정의되어 특별한 의미를 가진 예약어이죠.
    예약어에는 다양한 종류가 있고, 자주 쓰이는 예약어 정도는 알아두면 좋습니다.

    abstract as base bool break byte case catch char checked
    class const continue demical default delegate do double else enum
    event explicit extern FALSE finally fixed float for foreach goto
    if implicit in int interface internal is lock long namespace
    new null object operator out override params private protected public
    readonly ref return sbyte sealed short sizeof stackalloc static string
    struct switch this throw TRUE try typeof unit ulong unchecked
    unsaffe ushort using using static virtual void volatile while add alias
    ascending async await by descending dynamic equals from get global
    group into join let nameof on        

     

    식별자

    식별자는 앞으로 등장할 프로그래밍 언어의 요소들에 부여하는 이름입니다.

    프로그래밍을 할 때 우리가 사용할 값들을 변수라는 그릇에 담아 사용하는데, 이 그릇에 붙여주는 이름이 식별자입니다. 

     

    int a;
    int b;

    예를 들어, 변수 두개를 정의하는 코드는 다음과 같습니다.

    int는 지금 정의하는 변수가 정수를 담을 것임을 나타내는 예약어이고, a와 b가 각 변수에 붙여준 이름이 됩니다.

     

    식별자는 사용자가 직접 '부여하는' 이름이므로, 임의로 설정이 가능합니다.

    하지만 컴파일러가 식별자를 구분하는 데에 문제가 생기지 않도록, 몇 가지 규칙은 있습니다.

    1. 문자 또는 언더바(_)로 시작해야 한다.

    2. 공백을 포함할 수 없다.

    3. 예약어는 식별자로 이용할 수 없다.

    4. 대소문자를 구분한다. (A와 a는 다른 식별자이다.)

     

    리터럴

    리터럴은 영어로 '문자 그대로의'라는 뜻을 가지고 있습니다.

    그처럼, 리터럴 토큰은 어떤 숫자나 문자가 가진 값 그 자체를 의미하게 됩니다.

    이러한 값은 변하지 않고, 변화시킬 수 없으므로 상수(constant)라고도 부릅니다.

    식별자를 설명할 때 '변수라는 그릇에 붙이는 이름'이라는 표현을 했는데,

    리터럴은 그 그릇에 담기는 값 그 차제입니다.

    int a = 1;

    위 코드가 선언한 변수에 값을 담는 코드인데,

    여기서 '1' 이 1이라는 값 그 자체를 나타내는 리터럴입니다.

     

    연산자

    방금 적은 코드에서, int, a, 1은 무엇인지 배웠지만 '='에 대해서는 언급하지 않았는데, '='이 바로 대표적인 연산자입니다.

    연산자는 1+1과 같이 특정 연산을 수행하기 위해서 사용되는 기호를 의미하며, 연산에 사용되는 요소(예시에서는 1)를 피연산자라고 부릅니다.

    분류 연산자
    산술 연산자(더하기, 빼기 등의 산술 연산) +, -, *, /, %, ++, --
    대입 연산자(오른쪽 피연산자의 값을 왼쪽 피연산자에 대입) =
    비교 연산자(왼쪽 피연산자와 오른쪽 피연산자를 비교) ==, !=, <, >, <=, >=
    논리 연산자(AND, OR, NOT 등의 논리 연산) &, |, &&, ||

    연산자에는 다음과 같은 종류가 있으며, 각 연산자들의 역할에 대해서는 간단히 적어놨지만 다음에 더 자세히 다뤄보도록 하겠습니다.

     

    구분자

    구분자는 특정 요소들을 문법적으로 구분하기 위해서 쓰이는 기호입니다.

    예를 들어 저번에 활용한 Debug.Log("콘솔 창 테스트")에서 출력할 값을 다른 코드와 구분하기 위해 사용하는 괄호가 있습니다.

    구분자에는 요소를 구분하기 위한 괄호( (), {}, [] ),

    각 명령문의 끝을 나타내는 세미콜론( ; ),

    마지막으로 컴파일러가 읽어 들이지 않는 주석을 나타내는 구분자( //, /* */ )도 있습니다.

Designed by Tistory.