본문 바로가기

멋쟁이사자처럼 유니티 부트캠프 3일차 추가학습 (c# 기본 개념 맛보기)

@salmu2025. 5. 15. 17:37
반응형

[수업내용]

1. 각종 유용한 기본 단축키

2. C# 기본 용어/개념- 표기법, 변수, 상수, 정적변수, 클래스, 접근제한자, 매개변수, 생성자,

3. C# 기본 문법 예시 - 변수 타입, 연산자, 조건문

 

 

*주목표. 기본 용어 추가 이해

 

 

[추가 학습 내용]

1.1  기본 단축키 모음

개발을 할 때 필수인 단축키 맛보기를 진행했는데, 윈도우와 맥의 단축키는 달라서 개별적으로 정리를 해야했다. (Mac , Rider)

 

실행 취소

뒤로 가기 (Undo) Command (⌘) + Z
앞으로 가기 (Redo) Command (⌘) + Shift + Z

 

 

주요 단축키

한 줄 주석 처리 Command (⌘) + /
줄 복사 (아래에 복제) Option (⌥) + Shift + ↓
줄 복사 (위에 복제) Option (⌥) + Shift + ↑
줄 위/아래로 이동 Option (⌥) + ↑ 또는
뒤로 가기 (코드 이동 이력) Command (⌘) + [
앞으로 가기 (코드 이동 이력) Command (⌘) + ]
여러 커서 선택 (멀티 커서) Option (⌥) + 클릭
빠른 코드 자동완성 (예: cs + Tab) 예: cw 입력 후 TabConsole.WriteLine(); (템플릿 기반 스니펫)
현재 줄 삭제 Command (⌘) + Delete

 

 

이동 관련 단축키

Command + ← 커서를 현재 줄의 맨 앞으로 이동
Command + → 커서를 현재 줄의 맨 끝으로 이동
Command + ↑ 문서의 맨 위로 이동
Command + ↓ 문서의 맨 아래로 이동

 

 

 

+(4일차 내용) 

참조 위치로 이동 (정의로 이동) Command +D 해당 변수, 함수, 클래스 등이 선언된 위치(정의 위치)로 이동

 

 

 

반응형

 

 

 

 

3.1 변수 타입 

- 숫자 변수는 주로 int, float을 사용 

 

- float, double 차이는?

항목 float double
크기 4바이트 (32비트) 8바이트 (64비트)
정밀도 소수점 약 7자리 소수점 약 15~16자리
성능 더 빠름 더 느림
기본값 0.0f 0.0 (접미사 생략 가능)
Unity 사용 여부 Unity API에서 기본 사용 거의 사용하지 않음 (예외적 상황에만 사용)

 

 

  • 0.0 → 자동으로 double
  • 0.0d → 명시적으로 double (생략 가능)
  • 0.0ffloat (접미사 필수!)

 

-bool 과 boolean

bool 줄임말 C, C++, C#, Python, JavaScript 참/거짓 값을 표현하는 기본 데이터 타입
boolean 정식 명칭 Java, SQL, 일부 스크립트 동일하게 참/거짓을 나타냄

 

 

 

3.2 var (변수)를 쓰는 경우

var컴파일 타임에 타입을 결정할 수 있어야만 사용할 수 있다.

즉, 코드를 작성해서 빌드(컴파일)할 때, 컴파일러가 변수의 타입을 바로 유추할 수 있어야 한다는 뜻이다.

초기값 없이 선언하거나, null을 넣는 경우에는 타입을 유추할 수 없기 때문에 var를 쓸 수 없다.

변수의 타입이 한눈에 명확한 경우 var를 써도 코드가 이해되기 쉽다.

 

3.3 const  = 컴파일 타임 상수

const컴파일 타임 상수이다.

말 그대로 코드를 실행하기 전에, 컴파일할 때 값이 확정되어야 하는 상수를 뜻한다.

  • 한 번 값이 정해지면 프로그램 실행 중 절대 바뀌지 않는다.
  • 선언과 동시에 값을 지정해야 한다. (지정하지 않으면 컴파일 에러)
  • 메모리에 상수로 박혀 있어서 빠르게 접근 가능하다.
  • 보통 숫자나 문자열 등, 간단한 고정값을 사용할 때 쓰인다.

 

 

3.4 const 와 readonly

항목 const readonly
값 설정 시점 컴파일 타임 런타임 (생성자 포함)
수정 가능 여부 절대 불가 생성자 내에서 1회 설정 가능
사용 용도 고정된 값 객체마다 다른 불변 값
타입 제한 리터럴(숫자, 문자 등)만 어떤 타입이든 가능 (객체 포함)

 

 

 

 

3.5 정적변수 

static을 붙이면, 클래스가 처음 로드될 때 한 번만 메모리에 올라가는 변수가 된다.

즉, 프로그램 실행 전에 메모리에 자리를 잡고, 모든 인스턴스가 공유하게 된다.

키워드 static
생성 시점 클래스 로드 시 (프로그램 실행 전)
메모리 딱 한 번 생성, 모든 인스턴스가 공유
사용 용도 공통 데이터 저장, 전역 상태 관리
접근 방법 클래스명.변수명
  • 객체를 만들지 않아도 사용할 수 있다.
  • 여러 인스턴스가 하나의 값을 공유한다.
  • 변하지 않는 값이나, 전체에서 공통으로 써야 하는 값에 적합하다.
class GameManager
{
    public static int PlayerCount = 0;
}

 

 

3.6 클래스 

클래스는 함수와 변수로 이루어진 집합이다.

클래스 안에 정의된 구성 요소들을 멤버라고 부른다.

 

- 종류

멤버 변수 데이터를 담는 역할을 한다 (string name, int level 등)
멤버 메서드 기능을 수행하는 함수이다 (PrintInfo() 등)

 

 

 

3.7 접근제한자 = 변수나 함수의 보안레벨 설정

(생략) 또는 internal 같은 프로젝트(어셈블리) 안에서만 접근 가능
public 어디서든 접근 가능 (다른 프로젝트에서도 사용 가능)

 

C#에서 클래스를 선언할 때 접근 제한자를 명시하지 않으면,

기본적으로 internal로 간주된다.

internal class Monster
{
    string name;
    int level;

    void PrintInfo()
    {
        Console.WriteLine($"{name}, {level}");
    }
}

 

  • 이 클래스는 같은 프로젝트 내에서만 사용 가능하다.
  • 외부 프로젝트에서 사용하려면 public class Monster로 선언해야 한다.

 

 

3.8 $의 활용 (문자 열 안 변수 삽입)

C#에서 문자열 안에 변수를 직접 삽입할 수 있는 편리한 문법이 있다. 바로 $ 문자열 보간 (interpolation)이다.

string name = "기사단장";
int level = 99;

Console.WriteLine($"캐릭터 : {name}, 레벨 : {level} 생성 완료");

 

위 코드는 다음과 완전히 같은 의미이다:

Console.WriteLine("캐릭터 : " + name + ", 레벨 : " + level + " 생성 완료");

하지만 +를 계속 쓰는 방식은 가독성이 떨어지고, 실수도 잦다.

$ 보간 문자열은 컴파일 타임에 타입 검사도 가능해서 안정성이 높다.

 

 

*기본 코드를 적어보고 기본 문법들을 체험해보았다. 지금은 생소하지만 나중엔 구구단처럼 익숙해지지 않을까라는 생각이 들었다.

단축키를 손에 익히고 더 많은 단축키를 알아봐야겠다. C# 언어에 대해서도 더 알아보아야겠다.

 

반응형
salmu
@salmu :: SMU 각종 기록

목차