내일배움캠프 6일차 TIL, 기초 프로그래밍

황오영·2024년 4월 22일
0

TIL

목록 보기
6/56
post-thumbnail

기초 프로그래밍 수업시작

  • 1주차 미니프로젝트를 마무리하고 이번주부터 본격적인 수업이 시작되었다. 이번주차는 C#프로그래밍에 대해서 배우는 주간이다.
  • C++로 프로그래밍을 시작해 C#은 큰 틀은 비슷하지만 디테일이 다르고 유니티로만 C#을 했어서 항상 기초가 부족한 편이다 라고 생각이 들어 이번 수업을 통해 좀 더 기초를 잘 다지고자 한다.
  • 최근 게임듀오 면접을 봤을 때에도 이와 비슷한 느낌이었다. CS가 부족해 기술면접때 대답을 잘 못했던것이 기억이 난다. 인터페이스와 상속의 차이라던가 클래스와 구조체의 차이 등 이런 지식들을 이번 기회에 잘 다지고자 한다.

C#소개, 개발환경 설정

  • 보통은 visual Studio로 개발을 많이 진행한다. vs code로 쓰시는 분도 있고 글을 작성다하 갑자기 둘의 차이가 궁금해져서 찾아보니 vs code같은경우가 시작 속도가 대체로 빠른편이지만 자체 업데이트가 필요하기도 하지만 기본적으로 vs Code가 좀 더 가벼운 편이라고 한다. Visual Studio가 완성도가 높고 vs code는 구성의 폭이 넓은 정도 라고 하니 이 선택은 IDE와 편집기의 선택문제라고 한다. 거의 개인적인 취향의 문제라고는 하지만 상황에 맞게 쓰는 편이라고한다!

Console.WriteLine

  • c++만해서 입출력받는 방식이 조금 어색했던 부분 cout만 쓰던 나에게 c#출력 함수를 가르쳐주었다.Console.WriteLine() 괄호 안에 쓰고싶은 문자열을쓰면된다!

Console.ReadLine

  • 입력역시 비슷하게 readline으로 문자열을 읽는방식 혹 숫자로 형변환이 필요할 땐 적합하게 parse해주면 된다.

Var

  • var키워드의 경우 변수 선언시 자동으로 자료형을 맞춰준다. 보통 협업에서 남의 코드를 써야하는 경우에서 유용하게 쓴다고한다. 그래도 명확한 변수타입일 땐 잘 명시할것!
  • 문득 성능적인 부분에서 궁금해서 찾아보니 그렇게 성능 차이가 엄청 난다고 하지는 않는다 오히려 가독성이 좋아져서 코드 읽는데 좋다고는 한다. BUT 메모리가 제한적인 환경에서는 var를 남용하면 메모리 성능에 영향을 주니 변수 타입을 명시해야한다!
  • 이것도 거의 팀by팀 사람by사람 같은느낌이다.

비트 연산자

  • 너무나 어려운 비트연산자 항상 잘 기억하기
int a = 0b1100; // 12 (2진수)
int b = 0b1010; // 10 (2진수)

int and = a & b; // 0b1000 (8)
int or = a | b; // 0b1110 (14)
int xor = a ^ b; // 0b0110 (6)

int c = 0b1011; // 11 (2진수)
int leftShift = c << 2; // 0b101100 (44)
int rightShift = c >> 1; // 0b0101 (5)

int d = 0b1100; // 12 (2진수)
int bit3 = (d >> 2) & 0b1; // 1 (3번째 비트)
d |= 0b1000; // 0b1100 | 0b1000 = 0b1100 (12)

연산자 우선순위

  • C#의 주요 연산자 우선순위
    연산자들은 다양한 우선순위를 가지고 있으며, 높은 우선순위의 연산자가 먼저 수행됩니다. 
    
    아래는 C#에서 주로 사용되는 연산자들의 우선순위를 나열한 것입니다.
    
    1. 괄호 (): 괄호로 감싸진 부분은 가장 높은 우선순위로 먼저 계산됩니다.
    2. 단항 연산자: 단항 연산자들(++, --, +, -, ! 등)은 괄호 다음으로 높은 우선순위를 가집니다.
    3. 산술 연산자: 산술 연산자들(*, /, %, +, -)은 단항 연산자보다 우선순위가 낮습니다.
    4. 시프트 연산자: 시프트 연산자(<<, >>)는 산술 연산자보다 우선순위가 낮습니다.
    5. 관계 연산자: 관계 연산자들(<, >, <=, >=, ==, !=)는 시프트 연산자보다 우선순위가 낮습니다.
    6. 논리 연산자: 논리 연산자들(&&, ||)는 관계 연산자보다 우선순위가 낮습니다.
    7. 할당 연산자: 할당 연산자들(=, +=, -=, *=, /= 등)는 논리 연산자보다 우선순위가 낮습니다.
    가볍게만 체크해두기

오늘의 회고

  • 잘 몰랐던 부분을 정리할 수 있어서 좋았었다. 내일은 평소에도 잘 몰랐던 상속, 클래스 구조체 이런부분을 할 예정이라 정신 집중해서 잘 들어야겠다.
  • 조가 바뀌어 새롭게 조원분들을 만났는데 c#을 처음하시는 분들이 많아 이것저것 알려주면서 나도 새롭게 알게 된 부분이 많아서 좋았던 하루였다.
  • 새롭게 이것저것 많이 배워가는 알찬 주간이 되길바라며! 후딱 듣고 인프런 강의 마저 들어야겟다.
  • 계획 지킨대로 잘 지켜보자!
profile
게임개발을 꿈꾸는 개발자

0개의 댓글