내일배움캠프 6일차

박나연·2025년 4월 14일

내배캠

목록 보기
6/69

C# 강의 1 ~ 2주차

  나는 C#을 유니티에서 그냥 써보기만 했지 이렇게 본격적으로 C# 언어만 배워본 적은 없었다. 이번 기회에 여러가지를 배울 수 있을 것 같다!

오늘의 키워드 : C# 전격 공부 시작!

1. 편리한 기능

  1. 클래스, 메서드, 변수 등의 이름을 입력할 때 일부를 입력하고 Tab키를 눌러 나머지를 자동완성한다.
  • Console. + Tab = Console.WriteLine
  • 메서드나 변수를 입력하는 도중 Ctrl + Space를 눌러 IntelliSense를 호출하면 해당 메서드나 변수에 대한 정보와 예제를 볼 수 있음(입력하다가 밑에 예제가 보이지 않을 때 사용)
  • for 키워드 + Tab x 2 = for문의 기본적인 코드 템플릿 생성
  1. 한번에 여러줄을 주석처리하고 해체하는 방법
  • Ctrl 누른 상태로 k, c : 여러줄 주석처리
  • Ctrl 누른 상태로 k, u : 주석 해제

2. 입력 받기와 Split 등

  • Console.Writeline : 줄바꿈 문자열
  • Console.Write : 줄바꿈 문자열 x
  • Console.ReadLine : 사용자가 입력한 값을 문자열로 반환
  • Split : 한줄에 여러 값 입력 받기
    예시)
string input = Console.ReadLine();    // "10 20"과 같은 문자열을 입력받음
string[] numbers = input.Split(' ');
  • var : var 키워드를 사용해 변수를 선언하면 변수의 자료형이 자동으로 결정된다.

3. 이스케이프 시퀀스

이스케이프 시퀀스설명
\'작은따옴표 삽입
\"큰따옴표 삽입
\\역슬래시 삽입
\n새 줄(줄바꿈) 삽입
\r현재 줄 맨 앞으로 이동
\t탭 삽입
\b백스페이스 삽입

4. C# 기본 자료형

자료형크기(바이트)
byte1
short2
int4
long8
float4
double8
char2

5. 코드 컨벤션

코드 컨벤션은 개발자들 사이에서 약속된 코드 작성 규칙이다.
1. 식별자 표기법

  • 파스칼방식 : 단어의 첫 글자는 대문자, 이후 단어의 첫 글자도 대문자 ex) ClassName, MethodName
  • 카멜방식 : 단어의 첫 글자는 소문자, 이후 단어의 첫 글자는 대문자 ex) className, methodName
  1. 빈 줄 사용
  • 관련없는 코드 사이는 빈 줄을 사용하여 구분
  • 메서드, 클래스 등의 블록 사이에는 두 줄을 띄어쓰기

6. 명시적 및 암시적 형변환

형변환이란 값의 자료형을 다른 자료형으로 바꾸는 것이다.

구분예시 코드설명
암시적 형변환int a = 100;
long b = a;
작은 타입(int) → 큰 타입(long), 자동 변환
명시적 형변환double x = 3.14;
int y = (int)x;
큰 타입(double) → 작은 타입(int), 개발자가 직접 변환

  ✅ 여기서 든 궁금증... 왜 형변환이 필요하지? 애초에 처음부터 자료형을 제대로 잘 쓰면 되거나 나중에 변수만 바꿔주면 되는것 아닐까?

-> 현실에서는 모든 데이터를 사람이 직접 100% 예측하고 미리 맞추는 게 불가능하다. 성능, 메모리 최적화 때문에 굳이 작은 타입으로 선언하는 경우도 있고, 작업하다보면 타입이 다른 값끼리 계산하거나 비교하는 일이 생길 수 있기 때문이다. 또한 다른 시스템이나 API와 데이터를 주고받을 때, 예를 들어 외부 API에서 float 값을 보내주는데 내 코드는 double타입을 사용중이라면 이럴 때는 형변환이 필수적이다.

7. 문자열 처리 기능 및 메서드

  • 문자열 생성
string str1 = new string('A', 3); //문자 A를 3개로 구성된 문자열 생성 
  • 분할
string[] numbers = input.Split(' ');  // input 문자열을 공백으로 구분
string[] words = str.Split(','); // str 문자열을 쉼표로 구분
  • 검색
string str = "Hello, World!";
int index = str.IndexOf("World"); // str 문자열에서 World 문자열의 첫 번째 인덱스를 찾아 index변수에 저장한다. 즉, index = 7
  • 대체
string str = "Hello, World!";
string newStr = str.Replace("World", "Universe"); // World 문자열을 Universe 문자열로 대체
  • 변환

문자열->숫자

string str = "123";
int num1 = int.Parse(str); // str을 정수형 숫자로 변환 후 num1 변수에 저장

숫자->문자열

int num = 123;
string str = num.ToString();
  • 비교

문자열 대소 비교

문자열의 길이가 중요한 것이 아니라 사전식 순서가 중요하다.

string str1 = "Apple";
string str2 = "Banana";
int compare = string.Compare(str1, str2); //

같다면 0, 왼쪽이 작다면 음수, 왼쪽이 크다면 양수
문자열을 비교했을 때 문자열의 길이가 아닌 각 문자의 아스키 코드 값을 기준으로 비교한다. 위 예시에서는 A가 B보다 아스키 코드 값이 작으므로 -1을 출력한다.

  • 포멧팅

문자열 형식화

string name = "Nana";
string message = string.Format("Hi {0}", name);

문자열 보간

string name = "Nana";
string message = $"Hi {name}";

8. 배열

  • 2차원 배열
    int[,] array3 = new int[2, 3];
  • 3차원 배열
    int[,,] array3D = new int[2, 3, 4]

9. 마무리하며

  대부분의 것들은 다른 언어들이랑 비슷했다. 그런데 2, 3차원 배열을 저런식으로 만드는건 처음 본 것 같아서 역시 배우길 잘했다는 생각이 든다. 아마 내일부터는 조금 강의가 어려워 질 것 같은데 내일도 잘 마무리 했으면 좋겠다.

10. 내일 할 일

  내일은 가능하다면 3 ~ 4주차 강의를 시청하려고 한다. 속전속결!

0개의 댓글