[어소트락 게임아카데미] C# 무료 강의

[4] C# 연산자와 메모리구조 (어소트락 게임아카데미 무료 강의 총 48화 중 9화~12화)

개발린마케터 2023. 8. 6. 18:52
반응형

[9화. 연산자]

[9화 코멘트]

 - 산술연산자: 더하기(+), 빼기(-), 곱하기(*), 나누기(/), 나머지 (%)

    * 이 강사분은 초반부 개념은 정말 오래오래 하나하나 설명하시더니 갑자기 함수,연산 들어오니 설명을 위해서 함수와 연산자를 왔다 갔다 하면서 혼자 진도 빼는 기분이 든다. 미리 다른 강의에서 배운 내용이라 이해가 다 됐지만 처음 배웠다면 당황 스러웠을 듯. 

 - 비교연산자: 논리형 bool => true 혹은 false 로만 리턴, 크거나(>), 작거나(<), 같거나(==), 다르거나(!=) 등을 참과 거짓으로 표현

 - 논리연산자: bool => 참과 거짓을 연산하는 연산자, and(&&), or(||), XOR(^ => 배타적, 다르다면 true 같다면 false), Not(!; => 반대로 뒤집힘. true면 false false이면 true)

 - 축약연산자: +=, -=, /=, *=  

 

[10화. 실행되는 함수의 메모리 구조]

 

[10화 코멘트]

 - 메모리는 C#을 배워야 하기 때문에 알아야 하는 게 아니라 모든 프로그래밍의 근간이 되는 개념이기 때문에 알아야 한다. 

   => SBS아카데미 강사분도 뭐 하나 할 때마다 메모리 구조를 설명해서 왜 매번 그렇게까지 설명을 하나 했는데 정말 중요한가보다...

 - 객체를 만들었다는 건 메모리를 지불했다는 것의 의미

 - 코드(code) / 데이터(data) / 힙(heap) / 스택(stack) 의 4중 구조

 - 프로그램의 실행과 종료의 사이클을 시계열로 한번 쭉 설명해주는 부분은 이해가 잘 됐다

 

[11화. 값형의 메모리 구조 및 처리 개념]

 

[11화 코멘트]

 - value를 0으로 선언하고, 함수에서 데미지로 -1,000을 주고, 제일 마지막에 Console.WriteLine(value)를 하면 얼마가 나오나? 0 혹은 -1,000?

    => 왜 0인가?

    => 함수 안에서 벌어지는 일은 함수 안에서 일어나는 일일 뿐이다 

    => 함수 안에서 일어난 연산이 함수 밖에 영향을 주지 않는다

    => 영향을 주려면 리턴을 해야 한다. 값형의 처리

Value = NewPlayer.Test(Value);

 

[12화. 레퍼런스의 메모리 구조 및 처리 개념]

[12화 코멘트]

 - 플레이어가 자신의 공격력으로 몬스터를 공격했는데 함수를 실행하고 나니 왜 플레이어 HP가 깎였냐?

 - 처음에 배울 때는 하나하나 메모리 그림을 그려가면서 생각을 해보는 게 좋다.

 - 주소를 참조해서 원본을 수정했기 때문에 결국 플레이어의 HP가 깎였다.

 - 그림을 무조건 하나하나 그리면서 논리적 사고를 통해서 어떻게 되고 있는지 이해하는 게 중요하다. 뭐를 만들면 이건 어디에서 생기고, 뭐를 바꾸면 어디에서 바꾼건지 이해하려는 노력이 필요하다.

 - 그래서 값형과 레퍼런스형을 구분할 줄 알아야 하고, 어떻게 쓸지 알아야 한다. 

반응형